ETH Price: $3,414.46 (-0.68%)
Gas: 6 Gwei

Token

Nandin (NANDI)
 

Overview

Max Total Supply

6,451,660.980013473 NANDI

Holders

186

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5.718510148 NANDI

Value
$0.00
0xc5373877f9c42264dfd72505f51a49511f8cc863
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:
Nandin

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
Website: https://nandin.io/
Docs: https://docs.nandin.io/
Twitter: https://twitter.com/nandin_io
Telegram: https://t.me/nandin_io
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

// File @openzeppelin/contracts/access/[email protected]

// Original license: SPDX_License_Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// File @openzeppelin/contracts/token/ERC20/[email protected]

// Original license: SPDX_License_Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

// File contracts/IUniswap.sol

// Original license: SPDX_License_Identifier: MIT
pragma solidity ^0.8.0;

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

    function token0() external view returns (address);

    function sync() external;
}

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

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

interface IUniswapRouter {
    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);

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

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

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

// File contracts/Token.sol

// Original license: SPDX_License_Identifier: MIT

pragma solidity 0.8.21;

abstract contract ERC20Detailed is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor(
        string memory _tokenName,
        string memory _tokenSymbol,
        uint8 _tokenDecimals
    ) {
        _name = _tokenName;
        _symbol = _tokenSymbol;
        _decimals = _tokenDecimals;
    }

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

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

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

contract Nandin is ERC20Detailed, Ownable {
    uint256 public rebaseFrequency = 30 minutes;
    uint256 public nextRebase;
    uint256 public lastRebase;
    uint256 public finalEpoch = 672; // 14 days
    uint256 public rebaseStartTime;
    uint256 public rebaseEndTime;
    uint256 public currentEpoch;

    bool public autoRebase;

    uint256 public maxAmount;
    uint256 public maxWallet;

    address public taxWallet;
    address public stakingAdress;

    uint256 public feeToLp = 4;
    uint256 public feeToStake = 2;
    uint256 public feeToMarketing = 2;
    uint256 public finalTax = feeToLp + feeToStake + feeToMarketing;

    uint256 private _initialTax = 35;
    uint256 private _reduceTaxAt = 30;

    uint256 private _buyCount = 0;
    uint256 private _sellCount = 0;
    mapping(address => bool) private _bots;

    uint8 private constant DECIMALS = 9;
    uint256 private constant INITIAL_TOKENS_SUPPLY =
        1_000_000 * 10 ** DECIMALS;

    uint256 private constant TOTAL_PARTS =
        type(uint256).max - (type(uint256).max % INITIAL_TOKENS_SUPPLY);

    event Rebase(uint256 indexed time, uint256 totalSupply);
    event RemovedLimits();

    IUniswapRouter public router;
    address public pair;

    bool public limitsInEffect = true;
    bool public tradingEnable = false;

    uint256 private _totalSupply;
    uint256 private _partsPerToken;

    uint256 private swapTokenAtAmount = INITIAL_TOKENS_SUPPLY / 200; // 0.5% of total supply

    mapping(address => uint256) private _partBalances;
    mapping(address => mapping(address => uint256)) private _allowedTokens;
    mapping(address => bool) public isExcludedFromFees;

    modifier validRecipient(address to) {
        require(to != address(0x0));
        _;
    }

    bool inSwap;

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor(
        address _stakingAdress
    ) ERC20Detailed("Nandin", "NANDI", DECIMALS) {
        taxWallet = msg.sender;

        router = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _totalSupply = INITIAL_TOKENS_SUPPLY;
        _partBalances[msg.sender] = TOTAL_PARTS;
        _partsPerToken = TOTAL_PARTS / (_totalSupply);

        maxAmount = (_totalSupply * 2) / 100;
        maxWallet = (_totalSupply * 2) / 100;

        pair = IFactory(router.factory()).createPair(
            address(this),
            router.WETH()
        );

        stakingAdress = _stakingAdress;

        isExcludedFromFees[address(this)] = true;
        isExcludedFromFees[_stakingAdress] = true;
        isExcludedFromFees[address(router)] = true;
        isExcludedFromFees[msg.sender] = true;

        _allowedTokens[address(this)][address(router)] = type(uint256).max;
        _allowedTokens[address(this)][address(this)] = type(uint256).max;
        _allowedTokens[address(msg.sender)][address(router)] = type(uint256)
            .max;

        emit Transfer(
            address(0x0),
            address(msg.sender),
            balanceOf(address(this))
        );
    }

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

    function allowance(
        address owner_,
        address spender
    ) external view override returns (uint256) {
        return _allowedTokens[owner_][spender];
    }

    function balanceOf(address who) public view override returns (uint256) {
        return _partBalances[who] / (_partsPerToken);
    }

    function shouldRebase() public view returns (bool) {
        return
            currentEpoch < finalEpoch &&
            nextRebase > 0 &&
            nextRebase <= block.timestamp &&
            autoRebase;
    }

    function lpSync() internal {
        IPair _pair = IPair(pair);
        _pair.sync();
    }

    function transfer(
        address to,
        uint256 value
    ) external override validRecipient(to) returns (bool) {
        _transferFrom(msg.sender, to, value);
        return true;
    }

    function removeLimits() external onlyOwner {
        require(limitsInEffect, "Limits already removed");
        limitsInEffect = false;
        emit RemovedLimits();
    }

    function excludedFromFees(
        address _address,
        bool _value
    ) external onlyOwner {
        isExcludedFromFees[_address] = _value;
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        address pairAddress = pair;
        require(
            !_bots[sender] && !_bots[recipient] && !_bots[msg.sender],
            "Blacklisted"
        );

        if (
            !inSwap &&
            !isExcludedFromFees[sender] &&
            !isExcludedFromFees[recipient]
        ) {
            require(tradingEnable, "Trading not live");
            if (limitsInEffect) {
                if (sender == pairAddress || recipient == pairAddress) {
                    require(amount <= maxAmount, "Max Tx Exceeded");
                }
                if (recipient != pairAddress) {
                    require(
                        balanceOf(recipient) + amount <= maxWallet,
                        "Max Wallet Exceeded"
                    );
                }
            }

            if (recipient == pairAddress) {
                if (balanceOf(address(this)) >= swapTokenAtAmount) {
                    swapBack();
                }
                if (shouldRebase()) {
                    rebase();
                }
            }

            uint256 taxAmount;

            if (sender == pairAddress) {
                _buyCount += 1;
                taxAmount =
                    (amount *
                        (_buyCount > _reduceTaxAt ? finalTax : _initialTax)) /
                    100;
            } else if (recipient == pairAddress) {
                _sellCount += 1;
                taxAmount =
                    (amount *
                        (_sellCount > _reduceTaxAt ? finalTax : _initialTax)) /
                    100;
            }

            if (taxAmount > 0) {
                _partBalances[sender] -= (taxAmount * _partsPerToken);
                _partBalances[address(this)] += (taxAmount * _partsPerToken);

                emit Transfer(sender, address(this), taxAmount);
                amount -= taxAmount;
            }
        }

        _partBalances[sender] -= (amount * _partsPerToken);
        _partBalances[recipient] += (amount * _partsPerToken);

        emit Transfer(sender, recipient, amount);

        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external override validRecipient(to) returns (bool) {
        if (_allowedTokens[from][msg.sender] != type(uint256).max) {
            require(
                _allowedTokens[from][msg.sender] >= value,
                "Insufficient Allowance"
            );
            _allowedTokens[from][msg.sender] =
                _allowedTokens[from][msg.sender] -
                (value);
        }
        _transferFrom(from, to, value);
        return true;
    }

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) external returns (bool) {
        uint256 oldValue = _allowedTokens[msg.sender][spender];
        if (subtractedValue >= oldValue) {
            _allowedTokens[msg.sender][spender] = 0;
        } else {
            _allowedTokens[msg.sender][spender] = oldValue - (subtractedValue);
        }
        emit Approval(msg.sender, spender, _allowedTokens[msg.sender][spender]);
        return true;
    }

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) external returns (bool) {
        _allowedTokens[msg.sender][spender] =
            _allowedTokens[msg.sender][spender] +
            (addedValue);
        emit Approval(msg.sender, spender, _allowedTokens[msg.sender][spender]);
        return true;
    }

    function approve(
        address spender,
        uint256 value
    ) public override returns (bool) {
        _allowedTokens[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }

    function rebase() internal returns (uint256) {
        uint256 times = (block.timestamp - lastRebase) / rebaseFrequency;

        lastRebase = block.timestamp;
        nextRebase = block.timestamp + rebaseFrequency;

        if (times + currentEpoch > finalEpoch) {
            times = finalEpoch - currentEpoch;
        }

        currentEpoch += times;

        uint256 supplyDelta = (_totalSupply * times * 45409) / 10 ** 7;

        if (supplyDelta == 0) {
            emit Rebase(block.timestamp, _totalSupply);
            return _totalSupply;
        }

        _totalSupply = _totalSupply + supplyDelta;

        _partsPerToken = TOTAL_PARTS / (_totalSupply);

        if (currentEpoch >= finalEpoch) {
            autoRebase = false;
            nextRebase = 0;
            feeToLp = 0;
            finalTax = feeToStake + feeToMarketing;
        }

        lpSync();

        emit Rebase(block.timestamp, _totalSupply);

        return _totalSupply;
    }

    function manualRebase() external {
        require(shouldRebase(), "Not in time");
        rebase();
    }

    function enableTrading() external onlyOwner {
        require(!tradingEnable, "Trading Live Already");
        _bots[0xdB5889E35e379Ef0498aaE126fc2CCE1fbD23216] = true; // Block Banana Gun
        tradingEnable = true;
    }

    function startRebase() external onlyOwner {
        require(currentEpoch == 0 && !autoRebase, "already started");
        rebaseStartTime = block.timestamp;
        rebaseEndTime = block.timestamp + (finalEpoch * rebaseFrequency);
        autoRebase = true;
        nextRebase = block.timestamp + rebaseFrequency;
        lastRebase = block.timestamp;
    }

    function swapBack() public swapping {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance == 0) {
            return;
        }

        if (contractBalance > swapTokenAtAmount) {
            contractBalance = swapTokenAtAmount;
        }

        uint256 amountToSwap = (contractBalance *
            (feeToStake + feeToMarketing)) / finalTax;
        uint256 amountToLp = (contractBalance * feeToLp) / finalTax;

        _swapAndAddliquidity(amountToLp);

        _swapTokensForETH(amountToSwap);

        uint256 ethToStake = (address(this).balance * feeToStake) /
            (feeToStake + feeToMarketing);
        uint256 ethTomarketing = (address(this).balance * feeToMarketing) /
            (feeToStake + feeToMarketing);

        if (ethToStake > 0) {
            (bool success, ) = payable(stakingAdress).call{value: ethToStake}(
                ""
            );
            require(success, "Failed to send ETH to dev wallet");
        }

        if (ethTomarketing > 0) {
            (bool success, ) = payable(taxWallet).call{value: ethTomarketing}(
                ""
            );
            require(success, "Failed to send ETH to dev wallet");
        }
    }

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function _swapAndAddliquidity(uint256 amount) internal {
        if (amount > 0) {
            uint256 half = amount / 2;
            uint256 otherHalf = amount - half;

            uint256 initialBalance = address(this).balance;

            _swapTokensForETH(half);

            uint256 newBalance = address(this).balance - (initialBalance);

            router.addLiquidityETH{value: newBalance}(
                address(this),
                otherHalf,
                0,
                0,
                taxWallet,
                block.timestamp
            );
        }
    }

    function setStakingAdress(address _stakingAdress) external onlyOwner {
        stakingAdress = _stakingAdress;
    }

    function setSwapAtAmount(uint256 _amount) external onlyOwner {
        swapTokenAtAmount = _amount;
    }

    function fetchBalances(address[] memory wallets) external {
        address wallet;
        for (uint256 i = 0; i < wallets.length; i++) {
            wallet = wallets[i];
            emit Transfer(wallet, wallet, 0);
        }
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_stakingAdress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"time","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSupply","type":"uint256"}],"name":"Rebase","type":"event"},{"anonymous":false,"inputs":[],"name":"RemovedLimits","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":"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":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoRebase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"excludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeToLp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeToMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeToStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"}],"name":"fetchBalances","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastRebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextRebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebaseEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebaseFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebaseStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_stakingAdress","type":"address"}],"name":"setStakingAdress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shouldRebase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingAdress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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"},{"stateMutability":"payable","type":"receive"}]

60806040526107086003556102a06006556004600f5560026010556002601155601154601054600f5462000034919062000b8b565b62000040919062000b8b565b6012556023601355601e6014555f6015555f6016556001601960146101000a81548160ff0219169083151502179055505f601960156101000a81548160ff02191690831515021790555060c86009600a6200009c919062000d21565b620f4240620000ac919062000d71565b620000b8919062000de8565b601c55348015620000c7575f80fd5b5060405162004fb038038062004fb08339818101604052810190620000ed919062000e84565b6040518060400160405280600681526020017f4e616e64696e00000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4e414e44490000000000000000000000000000000000000000000000000000008152506009825f90816200016b91906200110f565b5081600190816200017d91906200110f565b508060025f6101000a81548160ff021916908360ff160217905550505050620001bb620001af62000a3460201b60201c565b62000a3b60201b60201c565b33600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200025f919062000d21565b620f42406200026f919062000d71565b601a819055506009600a62000285919062000d21565b620f424062000295919062000d71565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620002c29190620011f3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620002ef91906200122a565b601d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550601a546009600a62000343919062000d21565b620f424062000353919062000d71565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620003809190620011f3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620003ad91906200122a565b620003b9919062000de8565b601b8190555060646002601a54620003d2919062000d71565b620003de919062000de8565b600b8190555060646002601a54620003f7919062000d71565b62000403919062000de8565b600c8190555060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000474573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200049a919062000e84565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000521573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000547919062000e84565b6040518363ffffffff1660e01b81526004016200056692919062001275565b6020604051808303815f875af115801562000583573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620005a9919062000e84565b60195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601f5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601f5f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff601e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff601e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff601e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef62000a163062000b0060201b60201c565b60405162000a259190620012b1565b60405180910390a350620012cc565b5f33905090565b5f600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f601b54601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205462000b4e919062000de8565b9050919050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000b978262000b55565b915062000ba48362000b55565b925082820190508082111562000bbf5762000bbe62000b5e565b5b92915050565b5f8160011c9050919050565b5f808291508390505b600185111562000c225780860481111562000bfa5762000bf962000b5e565b5b600185161562000c0a5780820291505b808102905062000c1a8562000bc5565b945062000bda565b94509492505050565b5f8262000c3c576001905062000d0e565b8162000c4b575f905062000d0e565b816001811462000c64576002811462000c6f5762000ca5565b600191505062000d0e565b60ff84111562000c845762000c8362000b5e565b5b8360020a91508482111562000c9e5762000c9d62000b5e565b5b5062000d0e565b5060208310610133831016604e8410600b841016171562000cdf5782820a90508381111562000cd95762000cd862000b5e565b5b62000d0e565b62000cee848484600162000bd1565b9250905081840481111562000d085762000d0762000b5e565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000d2d8262000b55565b915062000d3a8362000d15565b925062000d697fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c2b565b905092915050565b5f62000d7d8262000b55565b915062000d8a8362000b55565b925082820262000d9a8162000b55565b9150828204841483151762000db45762000db362000b5e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000df48262000b55565b915062000e018362000b55565b92508262000e145762000e1362000dbb565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000e4e8262000e23565b9050919050565b62000e608162000e42565b811462000e6b575f80fd5b50565b5f8151905062000e7e8162000e55565b92915050565b5f6020828403121562000e9c5762000e9b62000e1f565b5b5f62000eab8482850162000e6e565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000f3057607f821691505b60208210810362000f465762000f4562000eeb565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000faa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000f6d565b62000fb6868362000f6d565b95508019841693508086168417925050509392505050565b5f819050919050565b5f62000ff762000ff162000feb8462000b55565b62000fce565b62000b55565b9050919050565b5f819050919050565b620010128362000fd7565b6200102a620010218262000ffe565b84845462000f79565b825550505050565b5f90565b6200104062001032565b6200104d81848462001007565b505050565b5b818110156200107457620010685f8262001036565b60018101905062001053565b5050565b601f821115620010c3576200108d8162000f4c565b620010988462000f5e565b81016020851015620010a8578190505b620010c0620010b78562000f5e565b83018262001052565b50505b505050565b5f82821c905092915050565b5f620010e55f1984600802620010c8565b1980831691505092915050565b5f620010ff8383620010d4565b9150826002028217905092915050565b6200111a8262000eb4565b67ffffffffffffffff81111562001136576200113562000ebe565b5b62001142825462000f18565b6200114f82828562001078565b5f60209050601f83116001811462001185575f841562001170578287015190505b6200117c8582620010f2565b865550620011eb565b601f198416620011958662000f4c565b5f5b82811015620011be5784890151825560018201915060208501945060208101905062001197565b86831015620011de5784890151620011da601f891682620010d4565b8355505b6001600288020188555050505b505050505050565b5f620011ff8262000b55565b91506200120c8362000b55565b9250826200121f576200121e62000dbb565b5b828206905092915050565b5f620012368262000b55565b9150620012438362000b55565b92508282039050818111156200125e576200125d62000b5e565b5b92915050565b6200126f8162000e42565b82525050565b5f6040820190506200128a5f83018562001264565b62001299602083018462001264565b9392505050565b620012ab8162000b55565b82525050565b5f602082019050620012c65f830184620012a0565b92915050565b613cd680620012da5f395ff3fe608060405260043610610275575f3560e01c806370a082311161014e578063a5fc4fdd116100c0578063dd62ed3e11610079578063dd62ed3e146108e6578063e30d7cab14610922578063f2fde38b1461094a578063f783790f14610972578063f887ea401461099c578063f8b45b05146109c65761027c565b8063a5fc4fdd146107da578063a8aa1b3114610804578063a9059cbb1461082e578063b8fd8e731461086a578063bc7e68a314610894578063bf64c7aa146108be5761027c565b806389375abf1161011257806389375abf146106e05780638a8c523c1461070a5780638da5cb5b146107205780639079f9321461074a57806395d89b4114610774578063a457c2d71461079e5761027c565b806370a0823114610624578063715018a614610660578063751039fc14610676578063766718081461068c57806378f353a1146106b65761027c565b80634a62bb65116101e75780635f48f393116101ab5780635f48f3931461056657806361a9d1b11461059057806363eab10a146105a65780636402511e146105d05780636ac5eeee146105f8578063706f86e91461060e5761027c565b80634a62bb65146104825780634dd7c8bf146104ac5780634fbee193146104d657806350f8f613146105125780635ad27d771461053c5761027c565b806323b872dd1161023957806323b872dd146103625780632617cc0e1461039e5780632dc0562d146103c8578063313ce567146103f2578063395093511461041c5780633a98d88e146104585761027c565b806306fdde0314610280578063095ea7b3146102aa57806316697fc5146102e65780631693e8d41461030e57806318160ddd146103385761027c565b3661027c57005b5f80fd5b34801561028b575f80fd5b506102946109f0565b6040516102a19190612c51565b60405180910390f35b3480156102b5575f80fd5b506102d060048036038101906102cb9190612d0f565b610a7f565b6040516102dd9190612d67565b60405180910390f35b3480156102f1575f80fd5b5061030c60048036038101906103079190612daa565b610b6c565b005b348015610319575f80fd5b50610322610bcc565b60405161032f9190612d67565b60405180910390f35b348015610343575f80fd5b5061034c610bdf565b6040516103599190612df7565b60405180910390f35b34801561036d575f80fd5b5061038860048036038101906103839190612e10565b610be8565b6040516103959190612d67565b60405180910390f35b3480156103a9575f80fd5b506103b2610e94565b6040516103bf9190612df7565b60405180910390f35b3480156103d3575f80fd5b506103dc610e9a565b6040516103e99190612e6f565b60405180910390f35b3480156103fd575f80fd5b50610406610ebf565b6040516104139190612ea3565b60405180910390f35b348015610427575f80fd5b50610442600480360381019061043d9190612d0f565b610ed4565b60405161044f9190612d67565b60405180910390f35b348015610463575f80fd5b5061046c6110bc565b6040516104799190612df7565b60405180910390f35b34801561048d575f80fd5b506104966110c2565b6040516104a39190612d67565b60405180910390f35b3480156104b7575f80fd5b506104c06110d5565b6040516104cd9190612df7565b60405180910390f35b3480156104e1575f80fd5b506104fc60048036038101906104f79190612ebc565b6110db565b6040516105099190612d67565b60405180910390f35b34801561051d575f80fd5b506105266110f8565b6040516105339190612df7565b60405180910390f35b348015610547575f80fd5b506105506110fe565b60405161055d9190612df7565b60405180910390f35b348015610571575f80fd5b5061057a611104565b6040516105879190612df7565b60405180910390f35b34801561059b575f80fd5b506105a461110a565b005b3480156105b1575f80fd5b506105ba61115c565b6040516105c79190612d67565b60405180910390f35b3480156105db575f80fd5b506105f660048036038101906105f19190612ee7565b61119b565b005b348015610603575f80fd5b5061060c6111ad565b005b348015610619575f80fd5b50610622611468565b005b34801561062f575f80fd5b5061064a60048036038101906106459190612ebc565b61152b565b6040516106579190612df7565b60405180910390f35b34801561066b575f80fd5b5061067461157e565b005b348015610681575f80fd5b5061068a611591565b005b348015610697575f80fd5b506106a0611630565b6040516106ad9190612df7565b60405180910390f35b3480156106c1575f80fd5b506106ca611636565b6040516106d79190612df7565b60405180910390f35b3480156106eb575f80fd5b506106f461163c565b6040516107019190612df7565b60405180910390f35b348015610715575f80fd5b5061071e611642565b005b34801561072b575f80fd5b50610734611720565b6040516107419190612e6f565b60405180910390f35b348015610755575f80fd5b5061075e611749565b60405161076b9190612d67565b60405180910390f35b34801561077f575f80fd5b5061078861175b565b6040516107959190612c51565b60405180910390f35b3480156107a9575f80fd5b506107c460048036038101906107bf9190612d0f565b6117eb565b6040516107d19190612d67565b60405180910390f35b3480156107e5575f80fd5b506107ee611a62565b6040516107fb9190612e6f565b60405180910390f35b34801561080f575f80fd5b50610818611a87565b6040516108259190612e6f565b60405180910390f35b348015610839575f80fd5b50610854600480360381019061084f9190612d0f565b611aac565b6040516108619190612d67565b60405180910390f35b348015610875575f80fd5b5061087e611afc565b60405161088b9190612df7565b60405180910390f35b34801561089f575f80fd5b506108a8611b02565b6040516108b59190612df7565b60405180910390f35b3480156108c9575f80fd5b506108e460048036038101906108df9190613052565b611b08565b005b3480156108f1575f80fd5b5061090c60048036038101906109079190613099565b611bb1565b6040516109199190612df7565b60405180910390f35b34801561092d575f80fd5b5061094860048036038101906109439190612ebc565b611c33565b005b348015610955575f80fd5b50610970600480360381019061096b9190612ebc565b611c7e565b005b34801561097d575f80fd5b50610986611d00565b6040516109939190612df7565b60405180910390f35b3480156109a7575f80fd5b506109b0611d06565b6040516109bd9190613132565b60405180910390f35b3480156109d1575f80fd5b506109da611d2b565b6040516109e79190612df7565b60405180910390f35b60605f80546109fe90613178565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2a90613178565b8015610a755780601f10610a4c57610100808354040283529160200191610a75565b820191905f5260205f20905b815481529060010190602001808311610a5857829003601f168201915b5050505050905090565b5f81601e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b5a9190612df7565b60405180910390a36001905092915050565b610b74611d31565b80601f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b601960159054906101000a900460ff1681565b5f601a54905090565b5f825f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c21575f80fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff601e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610e7c5782601e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d72906131f2565b60405180910390fd5b82601e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610dff919061323d565b601e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610e87858585611daf565b5060019150509392505050565b60105481565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60025f9054906101000a900460ff16905090565b5f81601e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f599190613270565b601e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925601e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040516110aa9190612df7565b60405180910390a36001905092915050565b60065481565b601960149054906101000a900460ff1681565b60125481565b601f602052805f5260405f205f915054906101000a900460ff1681565b600f5481565b60115481565b600b5481565b61111261115c565b611151576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611148906132ed565b60405180910390fd5b611159612535565b50565b5f60065460095410801561117157505f600454115b801561117f57504260045411155b80156111965750600a5f9054906101000a900460ff165b905090565b6111a3611d31565b80601c8190555050565b600160205f6101000a81548160ff0219169083151502179055505f6111d13061152b565b90505f81036111e0575061144d565b601c548111156111f057601c5490505b5f6012546011546010546112049190613270565b8361120f919061330b565b6112199190613379565b90505f601254600f548461122d919061330b565b6112379190613379565b905061124281612759565b61124b8261286e565b5f60115460105461125c9190613270565b6010544761126a919061330b565b6112749190613379565b90505f6011546010546112879190613270565b60115447611295919061330b565b61129f9190613379565b90505f821115611374575f600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516112ef906133d6565b5f6040518083038185875af1925050503d805f8114611329576040519150601f19603f3d011682016040523d82523d5f602084013e61132e565b606091505b5050905080611372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136990613434565b60405180910390fd5b505b5f811115611447575f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516113c2906133d6565b5f6040518083038185875af1925050503d805f81146113fc576040519150601f19603f3d011682016040523d82523d5f602084013e611401565b606091505b5050905080611445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143c90613434565b60405180910390fd5b505b50505050505b5f60205f6101000a81548160ff021916908315150217905550565b611470611d31565b5f60095414801561148d5750600a5f9054906101000a900460ff16155b6114cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c39061349c565b60405180910390fd5b426007819055506003546006546114e3919061330b565b426114ee9190613270565b6008819055506001600a5f6101000a81548160ff0219169083151502179055506003544261151c9190613270565b60048190555042600581905550565b5f601b54601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115779190613379565b9050919050565b611586611d31565b61158f5f612a78565b565b611599611d31565b601960149054906101000a900460ff166115e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115df90613504565b60405180910390fd5b5f601960146101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b60095481565b60055481565b60035481565b61164a611d31565b601960159054906101000a900460ff161561169a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116919061356c565b60405180910390fd5b600160175f73db5889e35e379ef0498aae126fc2cce1fbd2321673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601960156101000a81548160ff021916908315150217905550565b5f600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5f9054906101000a900460ff1681565b60606001805461176a90613178565b80601f016020809104026020016040519081016040528092919081815260200182805461179690613178565b80156117e15780601f106117b8576101008083540402835291602001916117e1565b820191905f5260205f20905b8154815290600101906020018083116117c457829003601f168201915b5050505050905090565b5f80601e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508083106118f1575f601e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061197a565b82816118fd919061323d565b601e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925601e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054604051611a4f9190612df7565b60405180910390a3600191505092915050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f825f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ae5575f80fd5b611af0338585611daf565b50600191505092915050565b60075481565b60045481565b5f805f90505b8251811015611bac57828181518110611b2a57611b2961358a565b5b602002602001015191508173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f604051611b9191906135f0565b60405180910390a38080611ba490613609565b915050611b0e565b505050565b5f601e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611c3b611d31565b80600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611c86611d31565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ceb906136c0565b60405180910390fd5b611cfd81612a78565b50565b60085481565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b611d39612b3d565b73ffffffffffffffffffffffffffffffffffffffff16611d57611720565b73ffffffffffffffffffffffffffffffffffffffff1614611dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da490613728565b60405180910390fd5b565b5f8060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e73575060175f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ec6575060175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efc90613790565b60405180910390fd5b60205f9054906101000a900460ff16158015611f685750601f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611fbb5750601f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561240457601960159054906101000a900460ff1661200f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612006906137f8565b60405180910390fd5b601960149054906101000a900460ff1615612161578073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061208957508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156120d457600b548311156120d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ca90613860565b60405180910390fd5b5b8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461216057600c54836121148661152b565b61211e9190613270565b111561215f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612156906138c8565b60405180910390fd5b5b5b8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036121c657601c546121a03061152b565b106121ae576121ad6111ad565b5b6121b661115c565b156121c5576121c3612535565b505b5b5f8173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361224857600160155f82825461220c9190613270565b925050819055506064601454601554116122285760135461222c565b6012545b85612237919061330b565b6122419190613379565b90506122c6565b8173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036122c557600160165f82825461228d9190613270565b925050819055506064601454601654116122a9576013546122ad565b6012545b856122b8919061330b565b6122c29190613379565b90505b5b5f81111561240257601b54816122dc919061330b565b601d5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612327919061323d565b92505081905550601b548161233c919061330b565b601d5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546123879190613270565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123eb9190612df7565b60405180910390a380846123ff919061323d565b93505b505b601b5483612412919061330b565b601d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461245d919061323d565b92505081905550601b5483612472919061330b565b601d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546124bd9190613270565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125219190612df7565b60405180910390a360019150509392505050565b5f8060035460055442612548919061323d565b6125529190613379565b905042600581905550600354426125699190613270565b600481905550600654600954826125809190613270565b111561259957600954600654612596919061323d565b90505b8060095f8282546125aa9190613270565b925050819055505f6298968061b16183601a546125c7919061330b565b6125d1919061330b565b6125db9190613379565b90505f810361262a57427f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a21511601a546040516126169190612df7565b60405180910390a2601a5492505050612756565b80601a546126389190613270565b601a81905550601a546009600a61264f9190613a15565b620f424061265d919061330b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6126889190613a5f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6126b3919061323d565b6126bd9190613379565b601b819055506006546009541061270c575f600a5f6101000a81548160ff0219169083151502179055505f6004819055505f600f819055506011546010546127059190613270565b6012819055505b612714612b44565b427f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a21511601a546040516127469190612df7565b60405180910390a2601a54925050505b90565b5f81111561286b575f60028261276f9190613379565b90505f818361277e919061323d565b90505f47905061278d8361286e565b5f814761279a919061323d565b905060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230865f80600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161282296959493929190613a8f565b60606040518083038185885af115801561283e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906128639190613b02565b505050505050505b50565b5f600267ffffffffffffffff81111561288a57612889612f16565b5b6040519080825280602002602001820160405280156128b85781602001602082028036833780820191505090505b50905030815f815181106128cf576128ce61358a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612973573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129979190613b66565b816001815181106129ab576129aa61358a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612a47959493929190613c48565b5f604051808303815f87803b158015612a5e575f80fd5b505af1158015612a70573d5f803e3d5ffd5b505050505050565b5f600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612bae575f80fd5b505af1158015612bc0573d5f803e3d5ffd5b5050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612bfe578082015181840152602081019050612be3565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612c2382612bc7565b612c2d8185612bd1565b9350612c3d818560208601612be1565b612c4681612c09565b840191505092915050565b5f6020820190508181035f830152612c698184612c19565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612cab82612c82565b9050919050565b612cbb81612ca1565b8114612cc5575f80fd5b50565b5f81359050612cd681612cb2565b92915050565b5f819050919050565b612cee81612cdc565b8114612cf8575f80fd5b50565b5f81359050612d0981612ce5565b92915050565b5f8060408385031215612d2557612d24612c7a565b5b5f612d3285828601612cc8565b9250506020612d4385828601612cfb565b9150509250929050565b5f8115159050919050565b612d6181612d4d565b82525050565b5f602082019050612d7a5f830184612d58565b92915050565b612d8981612d4d565b8114612d93575f80fd5b50565b5f81359050612da481612d80565b92915050565b5f8060408385031215612dc057612dbf612c7a565b5b5f612dcd85828601612cc8565b9250506020612dde85828601612d96565b9150509250929050565b612df181612cdc565b82525050565b5f602082019050612e0a5f830184612de8565b92915050565b5f805f60608486031215612e2757612e26612c7a565b5b5f612e3486828701612cc8565b9350506020612e4586828701612cc8565b9250506040612e5686828701612cfb565b9150509250925092565b612e6981612ca1565b82525050565b5f602082019050612e825f830184612e60565b92915050565b5f60ff82169050919050565b612e9d81612e88565b82525050565b5f602082019050612eb65f830184612e94565b92915050565b5f60208284031215612ed157612ed0612c7a565b5b5f612ede84828501612cc8565b91505092915050565b5f60208284031215612efc57612efb612c7a565b5b5f612f0984828501612cfb565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f4c82612c09565b810181811067ffffffffffffffff82111715612f6b57612f6a612f16565b5b80604052505050565b5f612f7d612c71565b9050612f898282612f43565b919050565b5f67ffffffffffffffff821115612fa857612fa7612f16565b5b602082029050602081019050919050565b5f80fd5b5f612fcf612fca84612f8e565b612f74565b90508083825260208201905060208402830185811115612ff257612ff1612fb9565b5b835b8181101561301b57806130078882612cc8565b845260208401935050602081019050612ff4565b5050509392505050565b5f82601f83011261303957613038612f12565b5b8135613049848260208601612fbd565b91505092915050565b5f6020828403121561306757613066612c7a565b5b5f82013567ffffffffffffffff81111561308457613083612c7e565b5b61309084828501613025565b91505092915050565b5f80604083850312156130af576130ae612c7a565b5b5f6130bc85828601612cc8565b92505060206130cd85828601612cc8565b9150509250929050565b5f819050919050565b5f6130fa6130f56130f084612c82565b6130d7565b612c82565b9050919050565b5f61310b826130e0565b9050919050565b5f61311c82613101565b9050919050565b61312c81613112565b82525050565b5f6020820190506131455f830184613123565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061318f57607f821691505b6020821081036131a2576131a161314b565b5b50919050565b7f496e73756666696369656e7420416c6c6f77616e6365000000000000000000005f82015250565b5f6131dc601683612bd1565b91506131e7826131a8565b602082019050919050565b5f6020820190508181035f830152613209816131d0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61324782612cdc565b915061325283612cdc565b925082820390508181111561326a57613269613210565b5b92915050565b5f61327a82612cdc565b915061328583612cdc565b925082820190508082111561329d5761329c613210565b5b92915050565b7f4e6f7420696e2074696d650000000000000000000000000000000000000000005f82015250565b5f6132d7600b83612bd1565b91506132e2826132a3565b602082019050919050565b5f6020820190508181035f830152613304816132cb565b9050919050565b5f61331582612cdc565b915061332083612cdc565b925082820261332e81612cdc565b9150828204841483151761334557613344613210565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61338382612cdc565b915061338e83612cdc565b92508261339e5761339d61334c565b5b828204905092915050565b5f81905092915050565b50565b5f6133c15f836133a9565b91506133cc826133b3565b5f82019050919050565b5f6133e0826133b6565b9150819050919050565b7f4661696c656420746f2073656e642045544820746f206465762077616c6c65745f82015250565b5f61341e602083612bd1565b9150613429826133ea565b602082019050919050565b5f6020820190508181035f83015261344b81613412565b9050919050565b7f616c7265616479207374617274656400000000000000000000000000000000005f82015250565b5f613486600f83612bd1565b915061349182613452565b602082019050919050565b5f6020820190508181035f8301526134b38161347a565b9050919050565b7f4c696d69747320616c72656164792072656d6f766564000000000000000000005f82015250565b5f6134ee601683612bd1565b91506134f9826134ba565b602082019050919050565b5f6020820190508181035f83015261351b816134e2565b9050919050565b7f54726164696e67204c69766520416c72656164790000000000000000000000005f82015250565b5f613556601483612bd1565b915061356182613522565b602082019050919050565b5f6020820190508181035f8301526135838161354a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f6135da6135d56135d0846135b7565b6130d7565b612cdc565b9050919050565b6135ea816135c0565b82525050565b5f6020820190506136035f8301846135e1565b92915050565b5f61361382612cdc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361364557613644613210565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6136aa602683612bd1565b91506136b582613650565b604082019050919050565b5f6020820190508181035f8301526136d78161369e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613712602083612bd1565b915061371d826136de565b602082019050919050565b5f6020820190508181035f83015261373f81613706565b9050919050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f61377a600b83612bd1565b915061378582613746565b602082019050919050565b5f6020820190508181035f8301526137a78161376e565b9050919050565b7f54726164696e67206e6f74206c697665000000000000000000000000000000005f82015250565b5f6137e2601083612bd1565b91506137ed826137ae565b602082019050919050565b5f6020820190508181035f83015261380f816137d6565b9050919050565b7f4d617820547820457863656564656400000000000000000000000000000000005f82015250565b5f61384a600f83612bd1565b915061385582613816565b602082019050919050565b5f6020820190508181035f8301526138778161383e565b9050919050565b7f4d61782057616c6c6574204578636565646564000000000000000000000000005f82015250565b5f6138b2601383612bd1565b91506138bd8261387e565b602082019050919050565b5f6020820190508181035f8301526138df816138a6565b9050919050565b5f8160011c9050919050565b5f808291508390505b600185111561393b5780860481111561391757613916613210565b5b60018516156139265780820291505b8081029050613934856138e6565b94506138fb565b94509492505050565b5f826139535760019050613a0e565b81613960575f9050613a0e565b81600181146139765760028114613980576139af565b6001915050613a0e565b60ff84111561399257613991613210565b5b8360020a9150848211156139a9576139a8613210565b5b50613a0e565b5060208310610133831016604e8410600b84101617156139e45782820a9050838111156139df576139de613210565b5b613a0e565b6139f184848460016138f2565b92509050818404811115613a0857613a07613210565b5b81810290505b9392505050565b5f613a1f82612cdc565b9150613a2a83612e88565b9250613a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613944565b905092915050565b5f613a6982612cdc565b9150613a7483612cdc565b925082613a8457613a8361334c565b5b828206905092915050565b5f60c082019050613aa25f830189612e60565b613aaf6020830188612de8565b613abc60408301876135e1565b613ac960608301866135e1565b613ad66080830185612e60565b613ae360a0830184612de8565b979650505050505050565b5f81519050613afc81612ce5565b92915050565b5f805f60608486031215613b1957613b18612c7a565b5b5f613b2686828701613aee565b9350506020613b3786828701613aee565b9250506040613b4886828701613aee565b9150509250925092565b5f81519050613b6081612cb2565b92915050565b5f60208284031215613b7b57613b7a612c7a565b5b5f613b8884828501613b52565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613bc381612ca1565b82525050565b5f613bd48383613bba565b60208301905092915050565b5f602082019050919050565b5f613bf682613b91565b613c008185613b9b565b9350613c0b83613bab565b805f5b83811015613c3b578151613c228882613bc9565b9750613c2d83613be0565b925050600181019050613c0e565b5085935050505092915050565b5f60a082019050613c5b5f830188612de8565b613c6860208301876135e1565b8181036040830152613c7a8186613bec565b9050613c896060830185612e60565b613c966080830184612de8565b969550505050505056fea26469706673582212204d21a3e3f5b352371c65dbeb381a5cfaf13abaa54b8f0e0c594195f57912ac7f64736f6c634300081500330000000000000000000000007919f2953c62796060dc7e2001c9be31d2c38918

Deployed Bytecode

0x608060405260043610610275575f3560e01c806370a082311161014e578063a5fc4fdd116100c0578063dd62ed3e11610079578063dd62ed3e146108e6578063e30d7cab14610922578063f2fde38b1461094a578063f783790f14610972578063f887ea401461099c578063f8b45b05146109c65761027c565b8063a5fc4fdd146107da578063a8aa1b3114610804578063a9059cbb1461082e578063b8fd8e731461086a578063bc7e68a314610894578063bf64c7aa146108be5761027c565b806389375abf1161011257806389375abf146106e05780638a8c523c1461070a5780638da5cb5b146107205780639079f9321461074a57806395d89b4114610774578063a457c2d71461079e5761027c565b806370a0823114610624578063715018a614610660578063751039fc14610676578063766718081461068c57806378f353a1146106b65761027c565b80634a62bb65116101e75780635f48f393116101ab5780635f48f3931461056657806361a9d1b11461059057806363eab10a146105a65780636402511e146105d05780636ac5eeee146105f8578063706f86e91461060e5761027c565b80634a62bb65146104825780634dd7c8bf146104ac5780634fbee193146104d657806350f8f613146105125780635ad27d771461053c5761027c565b806323b872dd1161023957806323b872dd146103625780632617cc0e1461039e5780632dc0562d146103c8578063313ce567146103f2578063395093511461041c5780633a98d88e146104585761027c565b806306fdde0314610280578063095ea7b3146102aa57806316697fc5146102e65780631693e8d41461030e57806318160ddd146103385761027c565b3661027c57005b5f80fd5b34801561028b575f80fd5b506102946109f0565b6040516102a19190612c51565b60405180910390f35b3480156102b5575f80fd5b506102d060048036038101906102cb9190612d0f565b610a7f565b6040516102dd9190612d67565b60405180910390f35b3480156102f1575f80fd5b5061030c60048036038101906103079190612daa565b610b6c565b005b348015610319575f80fd5b50610322610bcc565b60405161032f9190612d67565b60405180910390f35b348015610343575f80fd5b5061034c610bdf565b6040516103599190612df7565b60405180910390f35b34801561036d575f80fd5b5061038860048036038101906103839190612e10565b610be8565b6040516103959190612d67565b60405180910390f35b3480156103a9575f80fd5b506103b2610e94565b6040516103bf9190612df7565b60405180910390f35b3480156103d3575f80fd5b506103dc610e9a565b6040516103e99190612e6f565b60405180910390f35b3480156103fd575f80fd5b50610406610ebf565b6040516104139190612ea3565b60405180910390f35b348015610427575f80fd5b50610442600480360381019061043d9190612d0f565b610ed4565b60405161044f9190612d67565b60405180910390f35b348015610463575f80fd5b5061046c6110bc565b6040516104799190612df7565b60405180910390f35b34801561048d575f80fd5b506104966110c2565b6040516104a39190612d67565b60405180910390f35b3480156104b7575f80fd5b506104c06110d5565b6040516104cd9190612df7565b60405180910390f35b3480156104e1575f80fd5b506104fc60048036038101906104f79190612ebc565b6110db565b6040516105099190612d67565b60405180910390f35b34801561051d575f80fd5b506105266110f8565b6040516105339190612df7565b60405180910390f35b348015610547575f80fd5b506105506110fe565b60405161055d9190612df7565b60405180910390f35b348015610571575f80fd5b5061057a611104565b6040516105879190612df7565b60405180910390f35b34801561059b575f80fd5b506105a461110a565b005b3480156105b1575f80fd5b506105ba61115c565b6040516105c79190612d67565b60405180910390f35b3480156105db575f80fd5b506105f660048036038101906105f19190612ee7565b61119b565b005b348015610603575f80fd5b5061060c6111ad565b005b348015610619575f80fd5b50610622611468565b005b34801561062f575f80fd5b5061064a60048036038101906106459190612ebc565b61152b565b6040516106579190612df7565b60405180910390f35b34801561066b575f80fd5b5061067461157e565b005b348015610681575f80fd5b5061068a611591565b005b348015610697575f80fd5b506106a0611630565b6040516106ad9190612df7565b60405180910390f35b3480156106c1575f80fd5b506106ca611636565b6040516106d79190612df7565b60405180910390f35b3480156106eb575f80fd5b506106f461163c565b6040516107019190612df7565b60405180910390f35b348015610715575f80fd5b5061071e611642565b005b34801561072b575f80fd5b50610734611720565b6040516107419190612e6f565b60405180910390f35b348015610755575f80fd5b5061075e611749565b60405161076b9190612d67565b60405180910390f35b34801561077f575f80fd5b5061078861175b565b6040516107959190612c51565b60405180910390f35b3480156107a9575f80fd5b506107c460048036038101906107bf9190612d0f565b6117eb565b6040516107d19190612d67565b60405180910390f35b3480156107e5575f80fd5b506107ee611a62565b6040516107fb9190612e6f565b60405180910390f35b34801561080f575f80fd5b50610818611a87565b6040516108259190612e6f565b60405180910390f35b348015610839575f80fd5b50610854600480360381019061084f9190612d0f565b611aac565b6040516108619190612d67565b60405180910390f35b348015610875575f80fd5b5061087e611afc565b60405161088b9190612df7565b60405180910390f35b34801561089f575f80fd5b506108a8611b02565b6040516108b59190612df7565b60405180910390f35b3480156108c9575f80fd5b506108e460048036038101906108df9190613052565b611b08565b005b3480156108f1575f80fd5b5061090c60048036038101906109079190613099565b611bb1565b6040516109199190612df7565b60405180910390f35b34801561092d575f80fd5b5061094860048036038101906109439190612ebc565b611c33565b005b348015610955575f80fd5b50610970600480360381019061096b9190612ebc565b611c7e565b005b34801561097d575f80fd5b50610986611d00565b6040516109939190612df7565b60405180910390f35b3480156109a7575f80fd5b506109b0611d06565b6040516109bd9190613132565b60405180910390f35b3480156109d1575f80fd5b506109da611d2b565b6040516109e79190612df7565b60405180910390f35b60605f80546109fe90613178565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2a90613178565b8015610a755780601f10610a4c57610100808354040283529160200191610a75565b820191905f5260205f20905b815481529060010190602001808311610a5857829003601f168201915b5050505050905090565b5f81601e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b5a9190612df7565b60405180910390a36001905092915050565b610b74611d31565b80601f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b601960159054906101000a900460ff1681565b5f601a54905090565b5f825f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c21575f80fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff601e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610e7c5782601e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d72906131f2565b60405180910390fd5b82601e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610dff919061323d565b601e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610e87858585611daf565b5060019150509392505050565b60105481565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60025f9054906101000a900460ff16905090565b5f81601e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f599190613270565b601e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925601e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040516110aa9190612df7565b60405180910390a36001905092915050565b60065481565b601960149054906101000a900460ff1681565b60125481565b601f602052805f5260405f205f915054906101000a900460ff1681565b600f5481565b60115481565b600b5481565b61111261115c565b611151576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611148906132ed565b60405180910390fd5b611159612535565b50565b5f60065460095410801561117157505f600454115b801561117f57504260045411155b80156111965750600a5f9054906101000a900460ff165b905090565b6111a3611d31565b80601c8190555050565b600160205f6101000a81548160ff0219169083151502179055505f6111d13061152b565b90505f81036111e0575061144d565b601c548111156111f057601c5490505b5f6012546011546010546112049190613270565b8361120f919061330b565b6112199190613379565b90505f601254600f548461122d919061330b565b6112379190613379565b905061124281612759565b61124b8261286e565b5f60115460105461125c9190613270565b6010544761126a919061330b565b6112749190613379565b90505f6011546010546112879190613270565b60115447611295919061330b565b61129f9190613379565b90505f821115611374575f600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516112ef906133d6565b5f6040518083038185875af1925050503d805f8114611329576040519150601f19603f3d011682016040523d82523d5f602084013e61132e565b606091505b5050905080611372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136990613434565b60405180910390fd5b505b5f811115611447575f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516113c2906133d6565b5f6040518083038185875af1925050503d805f81146113fc576040519150601f19603f3d011682016040523d82523d5f602084013e611401565b606091505b5050905080611445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143c90613434565b60405180910390fd5b505b50505050505b5f60205f6101000a81548160ff021916908315150217905550565b611470611d31565b5f60095414801561148d5750600a5f9054906101000a900460ff16155b6114cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c39061349c565b60405180910390fd5b426007819055506003546006546114e3919061330b565b426114ee9190613270565b6008819055506001600a5f6101000a81548160ff0219169083151502179055506003544261151c9190613270565b60048190555042600581905550565b5f601b54601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115779190613379565b9050919050565b611586611d31565b61158f5f612a78565b565b611599611d31565b601960149054906101000a900460ff166115e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115df90613504565b60405180910390fd5b5f601960146101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b60095481565b60055481565b60035481565b61164a611d31565b601960159054906101000a900460ff161561169a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116919061356c565b60405180910390fd5b600160175f73db5889e35e379ef0498aae126fc2cce1fbd2321673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601960156101000a81548160ff021916908315150217905550565b5f600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5f9054906101000a900460ff1681565b60606001805461176a90613178565b80601f016020809104026020016040519081016040528092919081815260200182805461179690613178565b80156117e15780601f106117b8576101008083540402835291602001916117e1565b820191905f5260205f20905b8154815290600101906020018083116117c457829003601f168201915b5050505050905090565b5f80601e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508083106118f1575f601e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061197a565b82816118fd919061323d565b601e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925601e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054604051611a4f9190612df7565b60405180910390a3600191505092915050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f825f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ae5575f80fd5b611af0338585611daf565b50600191505092915050565b60075481565b60045481565b5f805f90505b8251811015611bac57828181518110611b2a57611b2961358a565b5b602002602001015191508173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f604051611b9191906135f0565b60405180910390a38080611ba490613609565b915050611b0e565b505050565b5f601e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611c3b611d31565b80600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611c86611d31565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ceb906136c0565b60405180910390fd5b611cfd81612a78565b50565b60085481565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b611d39612b3d565b73ffffffffffffffffffffffffffffffffffffffff16611d57611720565b73ffffffffffffffffffffffffffffffffffffffff1614611dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da490613728565b60405180910390fd5b565b5f8060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e73575060175f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ec6575060175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efc90613790565b60405180910390fd5b60205f9054906101000a900460ff16158015611f685750601f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611fbb5750601f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561240457601960159054906101000a900460ff1661200f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612006906137f8565b60405180910390fd5b601960149054906101000a900460ff1615612161578073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061208957508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156120d457600b548311156120d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ca90613860565b60405180910390fd5b5b8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461216057600c54836121148661152b565b61211e9190613270565b111561215f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612156906138c8565b60405180910390fd5b5b5b8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036121c657601c546121a03061152b565b106121ae576121ad6111ad565b5b6121b661115c565b156121c5576121c3612535565b505b5b5f8173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361224857600160155f82825461220c9190613270565b925050819055506064601454601554116122285760135461222c565b6012545b85612237919061330b565b6122419190613379565b90506122c6565b8173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036122c557600160165f82825461228d9190613270565b925050819055506064601454601654116122a9576013546122ad565b6012545b856122b8919061330b565b6122c29190613379565b90505b5b5f81111561240257601b54816122dc919061330b565b601d5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612327919061323d565b92505081905550601b548161233c919061330b565b601d5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546123879190613270565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123eb9190612df7565b60405180910390a380846123ff919061323d565b93505b505b601b5483612412919061330b565b601d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461245d919061323d565b92505081905550601b5483612472919061330b565b601d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546124bd9190613270565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125219190612df7565b60405180910390a360019150509392505050565b5f8060035460055442612548919061323d565b6125529190613379565b905042600581905550600354426125699190613270565b600481905550600654600954826125809190613270565b111561259957600954600654612596919061323d565b90505b8060095f8282546125aa9190613270565b925050819055505f6298968061b16183601a546125c7919061330b565b6125d1919061330b565b6125db9190613379565b90505f810361262a57427f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a21511601a546040516126169190612df7565b60405180910390a2601a5492505050612756565b80601a546126389190613270565b601a81905550601a546009600a61264f9190613a15565b620f424061265d919061330b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6126889190613a5f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6126b3919061323d565b6126bd9190613379565b601b819055506006546009541061270c575f600a5f6101000a81548160ff0219169083151502179055505f6004819055505f600f819055506011546010546127059190613270565b6012819055505b612714612b44565b427f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a21511601a546040516127469190612df7565b60405180910390a2601a54925050505b90565b5f81111561286b575f60028261276f9190613379565b90505f818361277e919061323d565b90505f47905061278d8361286e565b5f814761279a919061323d565b905060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230865f80600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161282296959493929190613a8f565b60606040518083038185885af115801561283e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906128639190613b02565b505050505050505b50565b5f600267ffffffffffffffff81111561288a57612889612f16565b5b6040519080825280602002602001820160405280156128b85781602001602082028036833780820191505090505b50905030815f815181106128cf576128ce61358a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612973573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129979190613b66565b816001815181106129ab576129aa61358a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612a47959493929190613c48565b5f604051808303815f87803b158015612a5e575f80fd5b505af1158015612a70573d5f803e3d5ffd5b505050505050565b5f600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612bae575f80fd5b505af1158015612bc0573d5f803e3d5ffd5b5050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612bfe578082015181840152602081019050612be3565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612c2382612bc7565b612c2d8185612bd1565b9350612c3d818560208601612be1565b612c4681612c09565b840191505092915050565b5f6020820190508181035f830152612c698184612c19565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612cab82612c82565b9050919050565b612cbb81612ca1565b8114612cc5575f80fd5b50565b5f81359050612cd681612cb2565b92915050565b5f819050919050565b612cee81612cdc565b8114612cf8575f80fd5b50565b5f81359050612d0981612ce5565b92915050565b5f8060408385031215612d2557612d24612c7a565b5b5f612d3285828601612cc8565b9250506020612d4385828601612cfb565b9150509250929050565b5f8115159050919050565b612d6181612d4d565b82525050565b5f602082019050612d7a5f830184612d58565b92915050565b612d8981612d4d565b8114612d93575f80fd5b50565b5f81359050612da481612d80565b92915050565b5f8060408385031215612dc057612dbf612c7a565b5b5f612dcd85828601612cc8565b9250506020612dde85828601612d96565b9150509250929050565b612df181612cdc565b82525050565b5f602082019050612e0a5f830184612de8565b92915050565b5f805f60608486031215612e2757612e26612c7a565b5b5f612e3486828701612cc8565b9350506020612e4586828701612cc8565b9250506040612e5686828701612cfb565b9150509250925092565b612e6981612ca1565b82525050565b5f602082019050612e825f830184612e60565b92915050565b5f60ff82169050919050565b612e9d81612e88565b82525050565b5f602082019050612eb65f830184612e94565b92915050565b5f60208284031215612ed157612ed0612c7a565b5b5f612ede84828501612cc8565b91505092915050565b5f60208284031215612efc57612efb612c7a565b5b5f612f0984828501612cfb565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f4c82612c09565b810181811067ffffffffffffffff82111715612f6b57612f6a612f16565b5b80604052505050565b5f612f7d612c71565b9050612f898282612f43565b919050565b5f67ffffffffffffffff821115612fa857612fa7612f16565b5b602082029050602081019050919050565b5f80fd5b5f612fcf612fca84612f8e565b612f74565b90508083825260208201905060208402830185811115612ff257612ff1612fb9565b5b835b8181101561301b57806130078882612cc8565b845260208401935050602081019050612ff4565b5050509392505050565b5f82601f83011261303957613038612f12565b5b8135613049848260208601612fbd565b91505092915050565b5f6020828403121561306757613066612c7a565b5b5f82013567ffffffffffffffff81111561308457613083612c7e565b5b61309084828501613025565b91505092915050565b5f80604083850312156130af576130ae612c7a565b5b5f6130bc85828601612cc8565b92505060206130cd85828601612cc8565b9150509250929050565b5f819050919050565b5f6130fa6130f56130f084612c82565b6130d7565b612c82565b9050919050565b5f61310b826130e0565b9050919050565b5f61311c82613101565b9050919050565b61312c81613112565b82525050565b5f6020820190506131455f830184613123565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061318f57607f821691505b6020821081036131a2576131a161314b565b5b50919050565b7f496e73756666696369656e7420416c6c6f77616e6365000000000000000000005f82015250565b5f6131dc601683612bd1565b91506131e7826131a8565b602082019050919050565b5f6020820190508181035f830152613209816131d0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61324782612cdc565b915061325283612cdc565b925082820390508181111561326a57613269613210565b5b92915050565b5f61327a82612cdc565b915061328583612cdc565b925082820190508082111561329d5761329c613210565b5b92915050565b7f4e6f7420696e2074696d650000000000000000000000000000000000000000005f82015250565b5f6132d7600b83612bd1565b91506132e2826132a3565b602082019050919050565b5f6020820190508181035f830152613304816132cb565b9050919050565b5f61331582612cdc565b915061332083612cdc565b925082820261332e81612cdc565b9150828204841483151761334557613344613210565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61338382612cdc565b915061338e83612cdc565b92508261339e5761339d61334c565b5b828204905092915050565b5f81905092915050565b50565b5f6133c15f836133a9565b91506133cc826133b3565b5f82019050919050565b5f6133e0826133b6565b9150819050919050565b7f4661696c656420746f2073656e642045544820746f206465762077616c6c65745f82015250565b5f61341e602083612bd1565b9150613429826133ea565b602082019050919050565b5f6020820190508181035f83015261344b81613412565b9050919050565b7f616c7265616479207374617274656400000000000000000000000000000000005f82015250565b5f613486600f83612bd1565b915061349182613452565b602082019050919050565b5f6020820190508181035f8301526134b38161347a565b9050919050565b7f4c696d69747320616c72656164792072656d6f766564000000000000000000005f82015250565b5f6134ee601683612bd1565b91506134f9826134ba565b602082019050919050565b5f6020820190508181035f83015261351b816134e2565b9050919050565b7f54726164696e67204c69766520416c72656164790000000000000000000000005f82015250565b5f613556601483612bd1565b915061356182613522565b602082019050919050565b5f6020820190508181035f8301526135838161354a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f6135da6135d56135d0846135b7565b6130d7565b612cdc565b9050919050565b6135ea816135c0565b82525050565b5f6020820190506136035f8301846135e1565b92915050565b5f61361382612cdc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361364557613644613210565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6136aa602683612bd1565b91506136b582613650565b604082019050919050565b5f6020820190508181035f8301526136d78161369e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613712602083612bd1565b915061371d826136de565b602082019050919050565b5f6020820190508181035f83015261373f81613706565b9050919050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f61377a600b83612bd1565b915061378582613746565b602082019050919050565b5f6020820190508181035f8301526137a78161376e565b9050919050565b7f54726164696e67206e6f74206c697665000000000000000000000000000000005f82015250565b5f6137e2601083612bd1565b91506137ed826137ae565b602082019050919050565b5f6020820190508181035f83015261380f816137d6565b9050919050565b7f4d617820547820457863656564656400000000000000000000000000000000005f82015250565b5f61384a600f83612bd1565b915061385582613816565b602082019050919050565b5f6020820190508181035f8301526138778161383e565b9050919050565b7f4d61782057616c6c6574204578636565646564000000000000000000000000005f82015250565b5f6138b2601383612bd1565b91506138bd8261387e565b602082019050919050565b5f6020820190508181035f8301526138df816138a6565b9050919050565b5f8160011c9050919050565b5f808291508390505b600185111561393b5780860481111561391757613916613210565b5b60018516156139265780820291505b8081029050613934856138e6565b94506138fb565b94509492505050565b5f826139535760019050613a0e565b81613960575f9050613a0e565b81600181146139765760028114613980576139af565b6001915050613a0e565b60ff84111561399257613991613210565b5b8360020a9150848211156139a9576139a8613210565b5b50613a0e565b5060208310610133831016604e8410600b84101617156139e45782820a9050838111156139df576139de613210565b5b613a0e565b6139f184848460016138f2565b92509050818404811115613a0857613a07613210565b5b81810290505b9392505050565b5f613a1f82612cdc565b9150613a2a83612e88565b9250613a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613944565b905092915050565b5f613a6982612cdc565b9150613a7483612cdc565b925082613a8457613a8361334c565b5b828206905092915050565b5f60c082019050613aa25f830189612e60565b613aaf6020830188612de8565b613abc60408301876135e1565b613ac960608301866135e1565b613ad66080830185612e60565b613ae360a0830184612de8565b979650505050505050565b5f81519050613afc81612ce5565b92915050565b5f805f60608486031215613b1957613b18612c7a565b5b5f613b2686828701613aee565b9350506020613b3786828701613aee565b9250506040613b4886828701613aee565b9150509250925092565b5f81519050613b6081612cb2565b92915050565b5f60208284031215613b7b57613b7a612c7a565b5b5f613b8884828501613b52565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613bc381612ca1565b82525050565b5f613bd48383613bba565b60208301905092915050565b5f602082019050919050565b5f613bf682613b91565b613c008185613b9b565b9350613c0b83613bab565b805f5b83811015613c3b578151613c228882613bc9565b9750613c2d83613be0565b925050600181019050613c0e565b5085935050505092915050565b5f60a082019050613c5b5f830188612de8565b613c6860208301876135e1565b8181036040830152613c7a8186613bec565b9050613c896060830185612e60565b613c966080830184612de8565b969550505050505056fea26469706673582212204d21a3e3f5b352371c65dbeb381a5cfaf13abaa54b8f0e0c594195f57912ac7f64736f6c63430008150033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007919f2953c62796060dc7e2001c9be31d2c38918

-----Decoded View---------------
Arg [0] : _stakingAdress (address): 0x7919F2953c62796060Dc7e2001c9bE31D2C38918

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007919f2953c62796060dc7e2001c9be31d2c38918


Deployed Bytecode Sourcemap

9285:13005:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9009:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17524:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13611:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10600:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12457:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16080:567;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9801:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9700:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9195:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17166:350;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9448:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10560:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9877:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10945:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9768:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9837:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9636:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18781:109;;;;;;;;;;;;;:::i;:::-;;12892:219;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21896:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19506:1251;;;;;;;;;;;;;:::i;:::-;;19134:364;;;;;;;;;;;;;:::i;:::-;;12750:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2914:103;;;;;;;;;;;;;:::i;:::-;;13428:175;;;;;;;;;;;;;:::i;:::-;;9569:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9416:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9334:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18898:228;;;;;;;;;;;;;:::i;:::-;;2273:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9605:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9100:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16655:503;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9731:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10532:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13221:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9497:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9384:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22011:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12567:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21770:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3172:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9534:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10497;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9667:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9009:83;9046:13;9079:5;9072:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9009:83;:::o;17524:241::-;17623:4;17678:5;17640:14;:26;17655:10;17640:26;;;;;;;;;;;;;;;:35;17667:7;17640:35;;;;;;;;;;;;;;;:43;;;;17720:7;17699:36;;17708:10;17699:36;;;17729:5;17699:36;;;;;;:::i;:::-;;;;;;;;17753:4;17746:11;;17524:241;;;;:::o;13611:157::-;2159:13;:11;:13::i;:::-;13754:6:::1;13723:18;:28;13742:8;13723:28;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;13611:157:::0;;:::o;10600:33::-;;;;;;;;;;;;;:::o;12457:102::-;12512:7;12539:12;;12532:19;;12457:102;:::o;16080:567::-;16223:4;16210:2;11073:3;11059:18;;:2;:18;;;11051:27;;;;;;16280:17:::1;16244:14;:20;16259:4;16244:20;;;;;;;;;;;;;;;:32;16265:10;16244:32;;;;;;;;;;;;;;;;:53;16240:337;;16376:5;16340:14;:20;16355:4;16340:20;;;;;;;;;;;;;;;:32;16361:10;16340:32;;;;;;;;;;;;;;;;:41;;16314:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;16559:5;16506:14;:20;16521:4;16506:20;;;;;;;;;;;;;;;:32;16527:10;16506:32;;;;;;;;;;;;;;;;:59;;;;:::i;:::-;16454:14;:20;16469:4;16454:20;;;;;;;;;;;;;;;:32;16475:10;16454:32;;;;;;;;;;;;;;;:111;;;;16240:337;16587:30;16601:4;16607:2;16611:5;16587:13;:30::i;:::-;;16635:4;16628:11;;16080:567:::0;;;;;;:::o;9801:29::-;;;;:::o;9700:24::-;;;;;;;;;;;;;:::o;9195:83::-;9236:5;9261:9;;;;;;;;;;;9254:16;;9195:83;:::o;17166:350::-;17273:4;17393:10;17341:14;:26;17356:10;17341:26;;;;;;;;;;;;;;;:35;17368:7;17341:35;;;;;;;;;;;;;;;;:63;;;;:::i;:::-;17290:14;:26;17305:10;17290:26;;;;;;;;;;;;;;;:35;17317:7;17290:35;;;;;;;;;;;;;;;:114;;;;17441:7;17420:66;;17429:10;17420:66;;;17450:14;:26;17465:10;17450:26;;;;;;;;;;;;;;;:35;17477:7;17450:35;;;;;;;;;;;;;;;;17420:66;;;;;;:::i;:::-;;;;;;;;17504:4;17497:11;;17166:350;;;;:::o;9448:31::-;;;;:::o;10560:33::-;;;;;;;;;;;;;:::o;9877:63::-;;;;:::o;10945:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;9768:26::-;;;;:::o;9837:33::-;;;;:::o;9636:24::-;;;;:::o;18781:109::-;18833:14;:12;:14::i;:::-;18825:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18874:8;:6;:8::i;:::-;;18781:109::o;12892:219::-;12937:4;12989:10;;12974:12;;:25;:56;;;;;13029:1;13016:10;;:14;12974:56;:102;;;;;13061:15;13047:10;;:29;;12974:102;:129;;;;;13093:10;;;;;;;;;;;12974:129;12954:149;;12892:219;:::o;21896:107::-;2159:13;:11;:13::i;:::-;21988:7:::1;21968:17;:27;;;;21896:107:::0;:::o;19506:1251::-;11166:4;11157:6;;:13;;;;;;;;;;;;;;;;;;19553:23:::1;19579:24;19597:4;19579:9;:24::i;:::-;19553:50;;19637:1;19618:15;:20:::0;19614:59:::1;;19655:7;;;19614:59;19707:17;;19689:15;:35;19685:103;;;19759:17;;19741:35;;19685:103;19800:20;19888:8;;19869:14;;19856:10;;:27;;;;:::i;:::-;19824:15;:60;;;;:::i;:::-;19823:73;;;;:::i;:::-;19800:96;;19907:18;19958:8;;19947:7;;19929:15;:25;;;;:::i;:::-;19928:38;;;;:::i;:::-;19907:59;;19979:32;20000:10;19979:20;:32::i;:::-;20024:31;20042:12;20024:17;:31::i;:::-;20068:18;20155:14;;20142:10;;:27;;;;:::i;:::-;20114:10;;20090:21;:34;;;;:::i;:::-;20089:81;;;;:::i;:::-;20068:102;;20181:22;20276:14;;20263:10;;:27;;;;:::i;:::-;20231:14;;20207:21;:38;;;;:::i;:::-;20206:85;;;;:::i;:::-;20181:110;;20321:1;20308:10;:14;20304:215;;;20340:12;20366:13;;;;;;;;;;;20358:27;;20393:10;20358:82;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20339:101;;;20463:7;20455:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;20324:195;20304:215;20552:1;20535:14;:18;20531:219;;;20571:12;20597:9;;;;;;;;;;;20589:23;;20620:14;20589:82;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20570:101;;;20694:7;20686:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;20555:195;20531:219;19542:1215;;;;;11181:1;11202:5:::0;11193:6;;:14;;;;;;;;;;;;;;;;;;19506:1251::o;19134:364::-;2159:13;:11;:13::i;:::-;19211:1:::1;19195:12;;:17;:32;;;;;19217:10;;;;;;;;;;;19216:11;19195:32;19187:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;19276:15;19258;:33;;;;19350:15;;19337:10;;:28;;;;:::i;:::-;19318:15;:48;;;;:::i;:::-;19302:13;:64;;;;19390:4;19377:10;;:17;;;;;;;;;;;;;;;;;;19436:15;;19418;:33;;;;:::i;:::-;19405:10;:46;;;;19475:15;19462:10;:28;;;;19134:364::o:0;12750:134::-;12812:7;12861:14;;12839:13;:18;12853:3;12839:18;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;12832:44;;12750:134;;;:::o;2914:103::-;2159:13;:11;:13::i;:::-;2979:30:::1;3006:1;2979:18;:30::i;:::-;2914:103::o:0;13428:175::-;2159:13;:11;:13::i;:::-;13490:14:::1;;;;;;;;;;;13482:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;13559:5;13542:14;;:22;;;;;;;;;;;;;;;;;;13580:15;;;;;;;;;;13428:175::o:0;9569:27::-;;;;:::o;9416:25::-;;;;:::o;9334:43::-;;;;:::o;18898:228::-;2159:13;:11;:13::i;:::-;18962::::1;;;;;;;;;;;18961:14;18953:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;19063:4;19011:5;:49;19017:42;19011:49;;;;;;;;;;;;;;;;:56;;;;;;;;;;;;;;;;;;19114:4;19098:13;;:20;;;;;;;;;;;;;;;;;;18898:228::o:0;2273:87::-;2319:7;2346:6;;;;;;;;;;;2339:13;;2273:87;:::o;9605:22::-;;;;;;;;;;;;;:::o;9100:87::-;9139:13;9172:7;9165:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9100:87;:::o;16655:503::-;16767:4;16784:16;16803:14;:26;16818:10;16803:26;;;;;;;;;;;;;;;:35;16830:7;16803:35;;;;;;;;;;;;;;;;16784:54;;16872:8;16853:15;:27;16849:198;;16935:1;16897:14;:26;16912:10;16897:26;;;;;;;;;;;;;;;:35;16924:7;16897:35;;;;;;;;;;;;;;;:39;;;;16849:198;;;17019:15;17007:8;:28;;;;:::i;:::-;16969:14;:26;16984:10;16969:26;;;;;;;;;;;;;;;:35;16996:7;16969:35;;;;;;;;;;;;;;;:66;;;;16849:198;17083:7;17062:66;;17071:10;17062:66;;;17092:14;:26;17107:10;17092:26;;;;;;;;;;;;;;;:35;17119:7;17092:35;;;;;;;;;;;;;;;;17062:66;;;;;;:::i;:::-;;;;;;;;17146:4;17139:11;;;16655:503;;;;:::o;9731:28::-;;;;;;;;;;;;;:::o;10532:19::-;;;;;;;;;;;;;:::o;13221:199::-;13337:4;13324:2;11073:3;11059:18;;:2;:18;;;11051:27;;;;;;13354:36:::1;13368:10;13380:2;13384:5;13354:13;:36::i;:::-;;13408:4;13401:11;;13221:199:::0;;;;;:::o;9497:30::-;;;;:::o;9384:25::-;;;;:::o;22011:239::-;22080:14;22110:9;22122:1;22110:13;;22105:138;22129:7;:14;22125:1;:18;22105:138;;;22174:7;22182:1;22174:10;;;;;;;;:::i;:::-;;;;;;;;22165:19;;22221:6;22204:27;;22213:6;22204:27;;;22229:1;22204:27;;;;;;:::i;:::-;;;;;;;;22145:3;;;;;:::i;:::-;;;;22105:138;;;;22069:181;22011:239;:::o;12567:175::-;12676:7;12703:14;:22;12718:6;12703:22;;;;;;;;;;;;;;;:31;12726:7;12703:31;;;;;;;;;;;;;;;;12696:38;;12567:175;;;;:::o;21770:118::-;2159:13;:11;:13::i;:::-;21866:14:::1;21850:13;;:30;;;;;;;;;;;;;;;;;;21770:118:::0;:::o;3172:238::-;2159:13;:11;:13::i;:::-;3295:1:::1;3275:22;;:8;:22;;::::0;3253:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3374:28;3393:8;3374:18;:28::i;:::-;3172:238:::0;:::o;9534:28::-;;;;:::o;10497:::-;;;;;;;;;;;;;:::o;9667:24::-;;;;:::o;2438:132::-;2513:12;:10;:12::i;:::-;2502:23;;:7;:5;:7::i;:::-;:23;;;2494:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2438:132::o;13776:2296::-;13902:4;13919:19;13941:4;;;;;;;;;;;13919:26;;13979:5;:13;13985:6;13979:13;;;;;;;;;;;;;;;;;;;;;;;;;13978:14;:35;;;;;13997:5;:16;14003:9;13997:16;;;;;;;;;;;;;;;;;;;;;;;;;13996:17;13978:35;:57;;;;;14018:5;:17;14024:10;14018:17;;;;;;;;;;;;;;;;;;;;;;;;;14017:18;13978:57;13956:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;14106:6;;;;;;;;;;;14105:7;:51;;;;;14130:18;:26;14149:6;14130:26;;;;;;;;;;;;;;;;;;;;;;;;;14129:27;14105:51;:98;;;;;14174:18;:29;14193:9;14174:29;;;;;;;;;;;;;;;;;;;;;;;;;14173:30;14105:98;14087:1774;;;14238:13;;;;;;;;;;;14230:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;14291:14;;;;;;;;;;;14287:437;;;14340:11;14330:21;;:6;:21;;;:49;;;;14368:11;14355:24;;:9;:24;;;14330:49;14326:145;;;14422:9;;14412:6;:19;;14404:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;14326:145;14506:11;14493:24;;:9;:24;;;14489:220;;14609:9;;14599:6;14576:20;14586:9;14576;:20::i;:::-;:29;;;;:::i;:::-;:42;;14542:147;;;;;;;;;;;;:::i;:::-;;;;;;;;;14489:220;14287:437;14757:11;14744:24;;:9;:24;;;14740:257;;14821:17;;14793:24;14811:4;14793:9;:24::i;:::-;:45;14789:104;;14863:10;:8;:10::i;:::-;14789:104;14915:14;:12;:14::i;:::-;14911:71;;;14954:8;:6;:8::i;:::-;;14911:71;14740:257;15013:17;15061:11;15051:21;;:6;:21;;;15047:495;;15106:1;15093:9;;:14;;;;;;;:::i;:::-;;;;;;;;15270:3;15207:12;;15195:9;;:24;:49;;15233:11;;15195:49;;;15222:8;;15195:49;15160:6;:85;;;;:::i;:::-;15159:114;;;;:::i;:::-;15126:147;;15047:495;;;15312:11;15299:24;;:9;:24;;;15295:247;;15358:1;15344:10;;:15;;;;;;;:::i;:::-;;;;;;;;15523:3;15460:12;;15447:10;;:25;:50;;15486:11;;15447:50;;;15475:8;;15447:50;15412:6;:86;;;;:::i;:::-;15411:115;;;;:::i;:::-;15378:148;;15295:247;15047:495;15574:1;15562:9;:13;15558:292;;;15634:14;;15622:9;:26;;;;:::i;:::-;15596:13;:21;15610:6;15596:21;;;;;;;;;;;;;;;;:53;;;;;;;:::i;:::-;;;;;;;;15713:14;;15701:9;:26;;;;:::i;:::-;15668:13;:28;15690:4;15668:28;;;;;;;;;;;;;;;;:60;;;;;;;:::i;:::-;;;;;;;;15779:4;15754:42;;15763:6;15754:42;;;15786:9;15754:42;;;;;;:::i;:::-;;;;;;;;15825:9;15815:19;;;;;:::i;:::-;;;15558:292;14215:1646;14087:1774;15908:14;;15899:6;:23;;;;:::i;:::-;15873:13;:21;15887:6;15873:21;;;;;;;;;;;;;;;;:50;;;;;;;:::i;:::-;;;;;;;;15972:14;;15963:6;:23;;;;:::i;:::-;15934:13;:24;15948:9;15934:24;;;;;;;;;;;;;;;;:53;;;;;;;:::i;:::-;;;;;;;;16022:9;16005:35;;16014:6;16005:35;;;16033:6;16005:35;;;;;;:::i;:::-;;;;;;;;16060:4;16053:11;;;13776:2296;;;;;:::o;17773:1000::-;17809:7;17829:13;17878:15;;17864:10;;17846:15;:28;;;;:::i;:::-;17845:48;;;;:::i;:::-;17829:64;;17919:15;17906:10;:28;;;;17976:15;;17958;:33;;;;:::i;:::-;17945:10;:46;;;;18031:10;;18016:12;;18008:5;:20;;;;:::i;:::-;:33;18004:99;;;18079:12;;18066:10;;:25;;;;:::i;:::-;18058:33;;18004:99;18131:5;18115:12;;:21;;;;;;;:::i;:::-;;;;;;;;18149:19;18204:7;18195:5;18187;18172:12;;:20;;;;:::i;:::-;:28;;;;:::i;:::-;18171:40;;;;:::i;:::-;18149:62;;18243:1;18228:11;:16;18224:125;;18273:15;18266:37;18290:12;;18266:37;;;;;;:::i;:::-;;;;;;;;18325:12;;18318:19;;;;;;18224:125;18391:11;18376:12;;:26;;;;:::i;:::-;18361:12;:41;;;;18447:12;;10184:1;10262:2;:14;;;;:::i;:::-;10250:9;:26;;;;:::i;:::-;10354:17;:41;;;;:::i;:::-;10333:17;:63;;;;:::i;:::-;18432:28;;;;:::i;:::-;18415:14;:45;;;;18493:10;;18477:12;;:26;18473:185;;18533:5;18520:10;;:18;;;;;;;;;;;;;;;;;;18566:1;18553:10;:14;;;;18592:1;18582:7;:11;;;;18632:14;;18619:10;;:27;;;;:::i;:::-;18608:8;:38;;;;18473:185;18670:8;:6;:8::i;:::-;18703:15;18696:37;18720:12;;18696:37;;;;;;:::i;:::-;;;;;;;;18753:12;;18746:19;;;;17773:1000;;:::o;21157:605::-;21236:1;21227:6;:10;21223:532;;;21254:12;21278:1;21269:6;:10;;;;:::i;:::-;21254:25;;21294:17;21323:4;21314:6;:13;;;;:::i;:::-;21294:33;;21344:22;21369:21;21344:46;;21407:23;21425:4;21407:17;:23::i;:::-;21447:18;21493:14;21468:21;:40;;;;:::i;:::-;21447:61;;21525:6;;;;;;;;;;;:22;;;21555:10;21593:4;21617:9;21645:1;21665;21685:9;;;;;;;;;;;21713:15;21525:218;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21239:516;;;;21223:532;21157:605;:::o;20765:384::-;20833:21;20871:1;20857:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20833:40;;20902:4;20884;20889:1;20884:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20928:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20918:4;20923:1;20918:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20954:6;;;;;;;;;;;:57;;;21026:11;21052:1;21068:4;21095;21115:15;20954:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20822:327;20765:384;:::o;3570:191::-;3644:16;3663:6;;;;;;;;;;;3644:25;;3689:8;3680:6;;:17;;;;;;;;;;;;;;;;;;3744:8;3713:40;;3734:8;3713:40;;;;;;;;;;;;3633:128;3570:191;:::o;746:98::-;799:7;826:10;819:17;;746:98;:::o;13119:94::-;13157:11;13177:4;;;;;;;;;;;13157:25;;13193:5;:10;;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13146:67;13119:94::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:116::-;3516:21;3531:5;3516:21;:::i;:::-;3509:5;3506:32;3496:60;;3552:1;3549;3542:12;3496:60;3446:116;:::o;3568:133::-;3611:5;3649:6;3636:20;3627:29;;3665:30;3689:5;3665:30;:::i;:::-;3568:133;;;;:::o;3707:468::-;3772:6;3780;3829:2;3817:9;3808:7;3804:23;3800:32;3797:119;;;3835:79;;:::i;:::-;3797:119;3955:1;3980:53;4025:7;4016:6;4005:9;4001:22;3980:53;:::i;:::-;3970:63;;3926:117;4082:2;4108:50;4150:7;4141:6;4130:9;4126:22;4108:50;:::i;:::-;4098:60;;4053:115;3707:468;;;;;:::o;4181:118::-;4268:24;4286:5;4268:24;:::i;:::-;4263:3;4256:37;4181:118;;:::o;4305:222::-;4398:4;4436:2;4425:9;4421:18;4413:26;;4449:71;4517:1;4506:9;4502:17;4493:6;4449:71;:::i;:::-;4305:222;;;;:::o;4533:619::-;4610:6;4618;4626;4675:2;4663:9;4654:7;4650:23;4646:32;4643:119;;;4681:79;;:::i;:::-;4643:119;4801:1;4826:53;4871:7;4862:6;4851:9;4847:22;4826:53;:::i;:::-;4816:63;;4772:117;4928:2;4954:53;4999:7;4990:6;4979:9;4975:22;4954:53;:::i;:::-;4944:63;;4899:118;5056:2;5082:53;5127:7;5118:6;5107:9;5103:22;5082:53;:::i;:::-;5072:63;;5027:118;4533:619;;;;;:::o;5158:118::-;5245:24;5263:5;5245:24;:::i;:::-;5240:3;5233:37;5158:118;;:::o;5282:222::-;5375:4;5413:2;5402:9;5398:18;5390:26;;5426:71;5494:1;5483:9;5479:17;5470:6;5426:71;:::i;:::-;5282:222;;;;:::o;5510:86::-;5545:7;5585:4;5578:5;5574:16;5563:27;;5510:86;;;:::o;5602:112::-;5685:22;5701:5;5685:22;:::i;:::-;5680:3;5673:35;5602:112;;:::o;5720:214::-;5809:4;5847:2;5836:9;5832:18;5824:26;;5860:67;5924:1;5913:9;5909:17;5900:6;5860:67;:::i;:::-;5720:214;;;;:::o;5940:329::-;5999:6;6048:2;6036:9;6027:7;6023:23;6019:32;6016:119;;;6054:79;;:::i;:::-;6016:119;6174:1;6199:53;6244:7;6235:6;6224:9;6220:22;6199:53;:::i;:::-;6189:63;;6145:117;5940:329;;;;:::o;6275:::-;6334:6;6383:2;6371:9;6362:7;6358:23;6354:32;6351:119;;;6389:79;;:::i;:::-;6351:119;6509:1;6534:53;6579:7;6570:6;6559:9;6555:22;6534:53;:::i;:::-;6524:63;;6480:117;6275:329;;;;:::o;6610:117::-;6719:1;6716;6709:12;6733:180;6781:77;6778:1;6771:88;6878:4;6875:1;6868:15;6902:4;6899:1;6892:15;6919:281;7002:27;7024:4;7002:27;:::i;:::-;6994:6;6990:40;7132:6;7120:10;7117:22;7096:18;7084:10;7081:34;7078:62;7075:88;;;7143:18;;:::i;:::-;7075:88;7183:10;7179:2;7172:22;6962:238;6919:281;;:::o;7206:129::-;7240:6;7267:20;;:::i;:::-;7257:30;;7296:33;7324:4;7316:6;7296:33;:::i;:::-;7206:129;;;:::o;7341:311::-;7418:4;7508:18;7500:6;7497:30;7494:56;;;7530:18;;:::i;:::-;7494:56;7580:4;7572:6;7568:17;7560:25;;7640:4;7634;7630:15;7622:23;;7341:311;;;:::o;7658:117::-;7767:1;7764;7757:12;7798:710;7894:5;7919:81;7935:64;7992:6;7935:64;:::i;:::-;7919:81;:::i;:::-;7910:90;;8020:5;8049:6;8042:5;8035:21;8083:4;8076:5;8072:16;8065:23;;8136:4;8128:6;8124:17;8116:6;8112:30;8165:3;8157:6;8154:15;8151:122;;;8184:79;;:::i;:::-;8151:122;8299:6;8282:220;8316:6;8311:3;8308:15;8282:220;;;8391:3;8420:37;8453:3;8441:10;8420:37;:::i;:::-;8415:3;8408:50;8487:4;8482:3;8478:14;8471:21;;8358:144;8342:4;8337:3;8333:14;8326:21;;8282:220;;;8286:21;7900:608;;7798:710;;;;;:::o;8531:370::-;8602:5;8651:3;8644:4;8636:6;8632:17;8628:27;8618:122;;8659:79;;:::i;:::-;8618:122;8776:6;8763:20;8801:94;8891:3;8883:6;8876:4;8868:6;8864:17;8801:94;:::i;:::-;8792:103;;8608:293;8531:370;;;;:::o;8907:539::-;8991:6;9040:2;9028:9;9019:7;9015:23;9011:32;9008:119;;;9046:79;;:::i;:::-;9008:119;9194:1;9183:9;9179:17;9166:31;9224:18;9216:6;9213:30;9210:117;;;9246:79;;:::i;:::-;9210:117;9351:78;9421:7;9412:6;9401:9;9397:22;9351:78;:::i;:::-;9341:88;;9137:302;8907:539;;;;:::o;9452:474::-;9520:6;9528;9577:2;9565:9;9556:7;9552:23;9548:32;9545:119;;;9583:79;;:::i;:::-;9545:119;9703:1;9728:53;9773:7;9764:6;9753:9;9749:22;9728:53;:::i;:::-;9718:63;;9674:117;9830:2;9856:53;9901:7;9892:6;9881:9;9877:22;9856:53;:::i;:::-;9846:63;;9801:118;9452:474;;;;;:::o;9932:60::-;9960:3;9981:5;9974:12;;9932:60;;;:::o;9998:142::-;10048:9;10081:53;10099:34;10108:24;10126:5;10108:24;:::i;:::-;10099:34;:::i;:::-;10081:53;:::i;:::-;10068:66;;9998:142;;;:::o;10146:126::-;10196:9;10229:37;10260:5;10229:37;:::i;:::-;10216:50;;10146:126;;;:::o;10278:148::-;10350:9;10383:37;10414:5;10383:37;:::i;:::-;10370:50;;10278:148;;;:::o;10432:175::-;10541:59;10594:5;10541:59;:::i;:::-;10536:3;10529:72;10432:175;;:::o;10613:266::-;10728:4;10766:2;10755:9;10751:18;10743:26;;10779:93;10869:1;10858:9;10854:17;10845:6;10779:93;:::i;:::-;10613:266;;;;:::o;10885:180::-;10933:77;10930:1;10923:88;11030:4;11027:1;11020:15;11054:4;11051:1;11044:15;11071:320;11115:6;11152:1;11146:4;11142:12;11132:22;;11199:1;11193:4;11189:12;11220:18;11210:81;;11276:4;11268:6;11264:17;11254:27;;11210:81;11338:2;11330:6;11327:14;11307:18;11304:38;11301:84;;11357:18;;:::i;:::-;11301:84;11122:269;11071:320;;;:::o;11397:172::-;11537:24;11533:1;11525:6;11521:14;11514:48;11397:172;:::o;11575:366::-;11717:3;11738:67;11802:2;11797:3;11738:67;:::i;:::-;11731:74;;11814:93;11903:3;11814:93;:::i;:::-;11932:2;11927:3;11923:12;11916:19;;11575:366;;;:::o;11947:419::-;12113:4;12151:2;12140:9;12136:18;12128:26;;12200:9;12194:4;12190:20;12186:1;12175:9;12171:17;12164:47;12228:131;12354:4;12228:131;:::i;:::-;12220:139;;11947:419;;;:::o;12372:180::-;12420:77;12417:1;12410:88;12517:4;12514:1;12507:15;12541:4;12538:1;12531:15;12558:194;12598:4;12618:20;12636:1;12618:20;:::i;:::-;12613:25;;12652:20;12670:1;12652:20;:::i;:::-;12647:25;;12696:1;12693;12689:9;12681:17;;12720:1;12714:4;12711:11;12708:37;;;12725:18;;:::i;:::-;12708:37;12558:194;;;;:::o;12758:191::-;12798:3;12817:20;12835:1;12817:20;:::i;:::-;12812:25;;12851:20;12869:1;12851:20;:::i;:::-;12846:25;;12894:1;12891;12887:9;12880:16;;12915:3;12912:1;12909:10;12906:36;;;12922:18;;:::i;:::-;12906:36;12758:191;;;;:::o;12955:161::-;13095:13;13091:1;13083:6;13079:14;13072:37;12955:161;:::o;13122:366::-;13264:3;13285:67;13349:2;13344:3;13285:67;:::i;:::-;13278:74;;13361:93;13450:3;13361:93;:::i;:::-;13479:2;13474:3;13470:12;13463:19;;13122:366;;;:::o;13494:419::-;13660:4;13698:2;13687:9;13683:18;13675:26;;13747:9;13741:4;13737:20;13733:1;13722:9;13718:17;13711:47;13775:131;13901:4;13775:131;:::i;:::-;13767:139;;13494:419;;;:::o;13919:410::-;13959:7;13982:20;14000:1;13982:20;:::i;:::-;13977:25;;14016:20;14034:1;14016:20;:::i;:::-;14011:25;;14071:1;14068;14064:9;14093:30;14111:11;14093:30;:::i;:::-;14082:41;;14272:1;14263:7;14259:15;14256:1;14253:22;14233:1;14226:9;14206:83;14183:139;;14302:18;;:::i;:::-;14183:139;13967:362;13919:410;;;;:::o;14335:180::-;14383:77;14380:1;14373:88;14480:4;14477:1;14470:15;14504:4;14501:1;14494:15;14521:185;14561:1;14578:20;14596:1;14578:20;:::i;:::-;14573:25;;14612:20;14630:1;14612:20;:::i;:::-;14607:25;;14651:1;14641:35;;14656:18;;:::i;:::-;14641:35;14698:1;14695;14691:9;14686:14;;14521:185;;;;:::o;14712:147::-;14813:11;14850:3;14835:18;;14712:147;;;;:::o;14865:114::-;;:::o;14985:398::-;15144:3;15165:83;15246:1;15241:3;15165:83;:::i;:::-;15158:90;;15257:93;15346:3;15257:93;:::i;:::-;15375:1;15370:3;15366:11;15359:18;;14985:398;;;:::o;15389:379::-;15573:3;15595:147;15738:3;15595:147;:::i;:::-;15588:154;;15759:3;15752:10;;15389:379;;;:::o;15774:182::-;15914:34;15910:1;15902:6;15898:14;15891:58;15774:182;:::o;15962:366::-;16104:3;16125:67;16189:2;16184:3;16125:67;:::i;:::-;16118:74;;16201:93;16290:3;16201:93;:::i;:::-;16319:2;16314:3;16310:12;16303:19;;15962:366;;;:::o;16334:419::-;16500:4;16538:2;16527:9;16523:18;16515:26;;16587:9;16581:4;16577:20;16573:1;16562:9;16558:17;16551:47;16615:131;16741:4;16615:131;:::i;:::-;16607:139;;16334:419;;;:::o;16759:165::-;16899:17;16895:1;16887:6;16883:14;16876:41;16759:165;:::o;16930:366::-;17072:3;17093:67;17157:2;17152:3;17093:67;:::i;:::-;17086:74;;17169:93;17258:3;17169:93;:::i;:::-;17287:2;17282:3;17278:12;17271:19;;16930:366;;;:::o;17302:419::-;17468:4;17506:2;17495:9;17491:18;17483:26;;17555:9;17549:4;17545:20;17541:1;17530:9;17526:17;17519:47;17583:131;17709:4;17583:131;:::i;:::-;17575:139;;17302:419;;;:::o;17727:172::-;17867:24;17863:1;17855:6;17851:14;17844:48;17727:172;:::o;17905:366::-;18047:3;18068:67;18132:2;18127:3;18068:67;:::i;:::-;18061:74;;18144:93;18233:3;18144:93;:::i;:::-;18262:2;18257:3;18253:12;18246:19;;17905:366;;;:::o;18277:419::-;18443:4;18481:2;18470:9;18466:18;18458:26;;18530:9;18524:4;18520:20;18516:1;18505:9;18501:17;18494:47;18558:131;18684:4;18558:131;:::i;:::-;18550:139;;18277:419;;;:::o;18702:170::-;18842:22;18838:1;18830:6;18826:14;18819:46;18702:170;:::o;18878:366::-;19020:3;19041:67;19105:2;19100:3;19041:67;:::i;:::-;19034:74;;19117:93;19206:3;19117:93;:::i;:::-;19235:2;19230:3;19226:12;19219:19;;18878:366;;;:::o;19250:419::-;19416:4;19454:2;19443:9;19439:18;19431:26;;19503:9;19497:4;19493:20;19489:1;19478:9;19474:17;19467:47;19531:131;19657:4;19531:131;:::i;:::-;19523:139;;19250:419;;;:::o;19675:180::-;19723:77;19720:1;19713:88;19820:4;19817:1;19810:15;19844:4;19841:1;19834:15;19861:85;19906:7;19935:5;19924:16;;19861:85;;;:::o;19952:158::-;20010:9;20043:61;20061:42;20070:32;20096:5;20070:32;:::i;:::-;20061:42;:::i;:::-;20043:61;:::i;:::-;20030:74;;19952:158;;;:::o;20116:147::-;20211:45;20250:5;20211:45;:::i;:::-;20206:3;20199:58;20116:147;;:::o;20269:238::-;20370:4;20408:2;20397:9;20393:18;20385:26;;20421:79;20497:1;20486:9;20482:17;20473:6;20421:79;:::i;:::-;20269:238;;;;:::o;20513:233::-;20552:3;20575:24;20593:5;20575:24;:::i;:::-;20566:33;;20621:66;20614:5;20611:77;20608:103;;20691:18;;:::i;:::-;20608:103;20738:1;20731:5;20727:13;20720:20;;20513:233;;;:::o;20752:225::-;20892:34;20888:1;20880:6;20876:14;20869:58;20961:8;20956:2;20948:6;20944:15;20937:33;20752:225;:::o;20983:366::-;21125:3;21146:67;21210:2;21205:3;21146:67;:::i;:::-;21139:74;;21222:93;21311:3;21222:93;:::i;:::-;21340:2;21335:3;21331:12;21324:19;;20983:366;;;:::o;21355:419::-;21521:4;21559:2;21548:9;21544:18;21536:26;;21608:9;21602:4;21598:20;21594:1;21583:9;21579:17;21572:47;21636:131;21762:4;21636:131;:::i;:::-;21628:139;;21355:419;;;:::o;21780:182::-;21920:34;21916:1;21908:6;21904:14;21897:58;21780:182;:::o;21968:366::-;22110:3;22131:67;22195:2;22190:3;22131:67;:::i;:::-;22124:74;;22207:93;22296:3;22207:93;:::i;:::-;22325:2;22320:3;22316:12;22309:19;;21968:366;;;:::o;22340:419::-;22506:4;22544:2;22533:9;22529:18;22521:26;;22593:9;22587:4;22583:20;22579:1;22568:9;22564:17;22557:47;22621:131;22747:4;22621:131;:::i;:::-;22613:139;;22340:419;;;:::o;22765:161::-;22905:13;22901:1;22893:6;22889:14;22882:37;22765:161;:::o;22932:366::-;23074:3;23095:67;23159:2;23154:3;23095:67;:::i;:::-;23088:74;;23171:93;23260:3;23171:93;:::i;:::-;23289:2;23284:3;23280:12;23273:19;;22932:366;;;:::o;23304:419::-;23470:4;23508:2;23497:9;23493:18;23485:26;;23557:9;23551:4;23547:20;23543:1;23532:9;23528:17;23521:47;23585:131;23711:4;23585:131;:::i;:::-;23577:139;;23304:419;;;:::o;23729:166::-;23869:18;23865:1;23857:6;23853:14;23846:42;23729:166;:::o;23901:366::-;24043:3;24064:67;24128:2;24123:3;24064:67;:::i;:::-;24057:74;;24140:93;24229:3;24140:93;:::i;:::-;24258:2;24253:3;24249:12;24242:19;;23901:366;;;:::o;24273:419::-;24439:4;24477:2;24466:9;24462:18;24454:26;;24526:9;24520:4;24516:20;24512:1;24501:9;24497:17;24490:47;24554:131;24680:4;24554:131;:::i;:::-;24546:139;;24273:419;;;:::o;24698:165::-;24838:17;24834:1;24826:6;24822:14;24815:41;24698:165;:::o;24869:366::-;25011:3;25032:67;25096:2;25091:3;25032:67;:::i;:::-;25025:74;;25108:93;25197:3;25108:93;:::i;:::-;25226:2;25221:3;25217:12;25210:19;;24869:366;;;:::o;25241:419::-;25407:4;25445:2;25434:9;25430:18;25422:26;;25494:9;25488:4;25484:20;25480:1;25469:9;25465:17;25458:47;25522:131;25648:4;25522:131;:::i;:::-;25514:139;;25241:419;;;:::o;25666:169::-;25806:21;25802:1;25794:6;25790:14;25783:45;25666:169;:::o;25841:366::-;25983:3;26004:67;26068:2;26063:3;26004:67;:::i;:::-;25997:74;;26080:93;26169:3;26080:93;:::i;:::-;26198:2;26193:3;26189:12;26182:19;;25841:366;;;:::o;26213:419::-;26379:4;26417:2;26406:9;26402:18;26394:26;;26466:9;26460:4;26456:20;26452:1;26441:9;26437:17;26430:47;26494:131;26620:4;26494:131;:::i;:::-;26486:139;;26213:419;;;:::o;26638:102::-;26680:8;26727:5;26724:1;26720:13;26699:34;;26638:102;;;:::o;26746:848::-;26807:5;26814:4;26838:6;26829:15;;26862:5;26853:14;;26876:712;26897:1;26887:8;26884:15;26876:712;;;26992:4;26987:3;26983:14;26977:4;26974:24;26971:50;;;27001:18;;:::i;:::-;26971:50;27051:1;27041:8;27037:16;27034:451;;;27466:4;27459:5;27455:16;27446:25;;27034:451;27516:4;27510;27506:15;27498:23;;27546:32;27569:8;27546:32;:::i;:::-;27534:44;;26876:712;;;26746:848;;;;;;;:::o;27600:1073::-;27654:5;27845:8;27835:40;;27866:1;27857:10;;27868:5;;27835:40;27894:4;27884:36;;27911:1;27902:10;;27913:5;;27884:36;27980:4;28028:1;28023:27;;;;28064:1;28059:191;;;;27973:277;;28023:27;28041:1;28032:10;;28043:5;;;28059:191;28104:3;28094:8;28091:17;28088:43;;;28111:18;;:::i;:::-;28088:43;28160:8;28157:1;28153:16;28144:25;;28195:3;28188:5;28185:14;28182:40;;;28202:18;;:::i;:::-;28182:40;28235:5;;;27973:277;;28359:2;28349:8;28346:16;28340:3;28334:4;28331:13;28327:36;28309:2;28299:8;28296:16;28291:2;28285:4;28282:12;28278:35;28262:111;28259:246;;;28415:8;28409:4;28405:19;28396:28;;28450:3;28443:5;28440:14;28437:40;;;28457:18;;:::i;:::-;28437:40;28490:5;;28259:246;28530:42;28568:3;28558:8;28552:4;28549:1;28530:42;:::i;:::-;28515:57;;;;28604:4;28599:3;28595:14;28588:5;28585:25;28582:51;;;28613:18;;:::i;:::-;28582:51;28662:4;28655:5;28651:16;28642:25;;27600:1073;;;;;;:::o;28679:281::-;28737:5;28761:23;28779:4;28761:23;:::i;:::-;28753:31;;28805:25;28821:8;28805:25;:::i;:::-;28793:37;;28849:104;28886:66;28876:8;28870:4;28849:104;:::i;:::-;28840:113;;28679:281;;;;:::o;28966:176::-;28998:1;29015:20;29033:1;29015:20;:::i;:::-;29010:25;;29049:20;29067:1;29049:20;:::i;:::-;29044:25;;29088:1;29078:35;;29093:18;;:::i;:::-;29078:35;29134:1;29131;29127:9;29122:14;;28966:176;;;;:::o;29148:807::-;29397:4;29435:3;29424:9;29420:19;29412:27;;29449:71;29517:1;29506:9;29502:17;29493:6;29449:71;:::i;:::-;29530:72;29598:2;29587:9;29583:18;29574:6;29530:72;:::i;:::-;29612:80;29688:2;29677:9;29673:18;29664:6;29612:80;:::i;:::-;29702;29778:2;29767:9;29763:18;29754:6;29702:80;:::i;:::-;29792:73;29860:3;29849:9;29845:19;29836:6;29792:73;:::i;:::-;29875;29943:3;29932:9;29928:19;29919:6;29875:73;:::i;:::-;29148:807;;;;;;;;;:::o;29961:143::-;30018:5;30049:6;30043:13;30034:22;;30065:33;30092:5;30065:33;:::i;:::-;29961:143;;;;:::o;30110:663::-;30198:6;30206;30214;30263:2;30251:9;30242:7;30238:23;30234:32;30231:119;;;30269:79;;:::i;:::-;30231:119;30389:1;30414:64;30470:7;30461:6;30450:9;30446:22;30414:64;:::i;:::-;30404:74;;30360:128;30527:2;30553:64;30609:7;30600:6;30589:9;30585:22;30553:64;:::i;:::-;30543:74;;30498:129;30666:2;30692:64;30748:7;30739:6;30728:9;30724:22;30692:64;:::i;:::-;30682:74;;30637:129;30110:663;;;;;:::o;30779:143::-;30836:5;30867:6;30861:13;30852:22;;30883:33;30910:5;30883:33;:::i;:::-;30779:143;;;;:::o;30928:351::-;30998:6;31047:2;31035:9;31026:7;31022:23;31018:32;31015:119;;;31053:79;;:::i;:::-;31015:119;31173:1;31198:64;31254:7;31245:6;31234:9;31230:22;31198:64;:::i;:::-;31188:74;;31144:128;30928:351;;;;:::o;31285:114::-;31352:6;31386:5;31380:12;31370:22;;31285:114;;;:::o;31405:184::-;31504:11;31538:6;31533:3;31526:19;31578:4;31573:3;31569:14;31554:29;;31405:184;;;;:::o;31595:132::-;31662:4;31685:3;31677:11;;31715:4;31710:3;31706:14;31698:22;;31595:132;;;:::o;31733:108::-;31810:24;31828:5;31810:24;:::i;:::-;31805:3;31798:37;31733:108;;:::o;31847:179::-;31916:10;31937:46;31979:3;31971:6;31937:46;:::i;:::-;32015:4;32010:3;32006:14;31992:28;;31847:179;;;;:::o;32032:113::-;32102:4;32134;32129:3;32125:14;32117:22;;32032:113;;;:::o;32181:732::-;32300:3;32329:54;32377:5;32329:54;:::i;:::-;32399:86;32478:6;32473:3;32399:86;:::i;:::-;32392:93;;32509:56;32559:5;32509:56;:::i;:::-;32588:7;32619:1;32604:284;32629:6;32626:1;32623:13;32604:284;;;32705:6;32699:13;32732:63;32791:3;32776:13;32732:63;:::i;:::-;32725:70;;32818:60;32871:6;32818:60;:::i;:::-;32808:70;;32664:224;32651:1;32648;32644:9;32639:14;;32604:284;;;32608:14;32904:3;32897:10;;32305:608;;;32181:732;;;;:::o;32919:831::-;33182:4;33220:3;33209:9;33205:19;33197:27;;33234:71;33302:1;33291:9;33287:17;33278:6;33234:71;:::i;:::-;33315:80;33391:2;33380:9;33376:18;33367:6;33315:80;:::i;:::-;33442:9;33436:4;33432:20;33427:2;33416:9;33412:18;33405:48;33470:108;33573:4;33564:6;33470:108;:::i;:::-;33462:116;;33588:72;33656:2;33645:9;33641:18;33632:6;33588:72;:::i;:::-;33670:73;33738:3;33727:9;33723:19;33714:6;33670:73;:::i;:::-;32919:831;;;;;;;;:::o

Swarm Source

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