ETH Price: $2,475.37 (+1.38%)

Token

RSP Finance (RSP)
 

Overview

Max Total Supply

1,079,186,715,427.691799454 RSP

Holders

143

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,052,276,166.50085693 RSP

Value
$0.00
0x23d614c0774e2461eaf7876b66b6f98481e450b4
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:
RSPToken

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-11
*/

// SPDX-License-Identifier: MIT

/*
RSP Finance is a unique protocol on Ethereum, it is a perfect combination of Reverse Split Protocol and Revenue Shares Protocol.

Website: http://rsp.finance/
Twitter: https://twitter.com/rsp_finance
Telegram: https://t.me/rsp_finance
Announcement: https://t.me/RSPannouncement
*/

pragma solidity 0.8.21;

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint256);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function transfer(address to, uint256 value) external returns (bool);

    function approve(address spender, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

interface InterfaceLP {
    function sync() external;

    function mint(address to) external returns (uint liquidity);
}

interface IDividendTracker {
    function accumulativeDividendOf(
        address _owner
    ) external view returns (uint256);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function balanceOf(address account) external view returns (uint256);

    function decimals() external view returns (uint8);

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) external returns (bool);

    function distributeDividends(uint256 amount) external;

    function dividendOf(address _owner) external view returns (uint256);

    function excludeFromDividends(address account, bool value) external;

    function excludedFromDividends(address) external view returns (bool);

    function getAccount(
        address account
    ) external view returns (address, uint256, uint256, uint256, uint256);

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) external returns (bool);

    function lastClaimTimes(address) external view returns (uint256);

    function owner() external view returns (address);

    function processAccount(address account) external returns (bool);

    function renounceOwnership() external;

    function setBalance(address account, uint256 newBalance) external;

    function setup() external;

    function token() external view returns (address);

    function totalDividendsDistributed() external view returns (uint256);

    function totalDividendsWithdrawn() external view returns (uint256);

    function transfer(address to, uint256 amount) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);

    function transferOwnership(address newOwner) external;

    function withdrawDividend() external;

    function withdrawableDividendOf(
        address _owner
    ) external view returns (uint256);

    function withdrawnDividendOf(
        address _owner
    ) external view returns (uint256);
}

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

interface IDEXRouter {
    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;
}

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

contract Ownable {
    address private _owner;

    event OwnershipRenounced(address indexed previousOwner);

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

    constructor() {
        _owner = msg.sender;
    }

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

    modifier onlyOwner() {
        require(msg.sender == _owner, "Not owner");
        _;
    }

    function renounceOwnership() public onlyOwner {
        emit OwnershipRenounced(_owner);
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0));
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

library Address {
    /**
     * @dev The ETH balance of the account is not enough to perform the operation.
     */
    error AddressInsufficientBalance(address account);

    /**
     * @dev There's no code at `target` (it is not a contract).
     */
    error AddressEmptyCode(address target);

    /**
     * @dev A call to an address target failed. The target may have reverted.
     */
    error FailedInnerCall();

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        if (address(this).balance < amount) {
            revert AddressInsufficientBalance(address(this));
        }

        (bool success, ) = recipient.call{value: amount}("");
        if (!success) {
            revert FailedInnerCall();
        }
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain `call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason or custom error, it is bubbled
     * up by this function (like regular Solidity function calls). However, if
     * the call reverted with no returned reason, this function reverts with a
     * {FailedInnerCall} error.
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     */
    function functionCall(
        address target,
        bytes memory data
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        if (address(this).balance < value) {
            revert AddressInsufficientBalance(address(this));
        }
        (bool success, bytes memory returndata) = target.call{value: value}(
            data
        );
        return verifyCallResultFromTarget(target, success, returndata);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     */
    function functionStaticCall(
        address target,
        bytes memory data
    ) internal view returns (bytes memory) {
        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResultFromTarget(target, success, returndata);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     */
    function functionDelegateCall(
        address target,
        bytes memory data
    ) internal returns (bytes memory) {
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResultFromTarget(target, success, returndata);
    }

    /**
     * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target
     * was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an
     * unsuccessful call.
     */
    function verifyCallResultFromTarget(
        address target,
        bool success,
        bytes memory returndata
    ) internal view returns (bytes memory) {
        if (!success) {
            _revert(returndata);
        } else {
            // only check if target is a contract if the call was successful and the return data is empty
            // otherwise we already know that it was a contract
            if (returndata.length == 0 && target.code.length == 0) {
                revert AddressEmptyCode(target);
            }
            return returndata;
        }
    }

    /**
     * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the
     * revert reason or with a default {FailedInnerCall} error.
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata
    ) internal pure returns (bytes memory) {
        if (!success) {
            _revert(returndata);
        } else {
            return returndata;
        }
    }

    /**
     * @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}.
     */
    function _revert(bytes memory returndata) private pure {
        // Look for revert reason and bubble it up if present
        if (returndata.length > 0) {
            // The easiest way to bubble the revert reason is using memory via assembly
            /// @solidity memory-safe-assembly
            assembly {
                let returndata_size := mload(returndata)
                revert(add(32, returndata), returndata_size)
            }
        } else {
            revert FailedInnerCall();
        }
    }
}

contract RSPToken is ERC20Detailed, Ownable {
    uint256 public rebaseFrequency = 2 hours;
    uint256 public nextRebase;
    uint256 public finalRebase;
    bool public autoRebase = true;
    bool public rebaseStarted = false;
    uint256 public rebasesThisCycle;
    uint256 public lastRebaseThisCycle;

    uint256 public maxTxnAmount;
    uint256 public maxWallet;

    address public taxWallet;
    uint256 public finalTax = 5;

    uint256 private _initialTax = 25;
    uint256 private _reduceTaxAt = 25;

    uint256 private _buyCount = 0;
    uint256 private _sellCount = 0;

    mapping(address => bool) public isExcludedFromFees;

    uint8 private constant DECIMALS = 9;
    uint256 public constant DIVIDEND_SUPPLY = 100_000_000 * 10 ** 18;
    uint256 private constant INITIAL_TOKENS_SUPPLY =
        10_797_518_620_650 * 10 ** DECIMALS;
    
    uint256 private constant FINAL_TOTAL_SUPPLY = 100_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();

    IDEXRouter public immutable router;
    IDividendTracker public dividendTracker;
    address public immutable pair;

    bool public limitsInEffect = true;
    bool public tradingIsLive = false;
    bool public claimStatus = false;

    uint256 private _totalSupply;
    uint256 private _partsPerToken;
    uint256 internal constant magnitude = 2 ** 128;

    uint256 private partsSwapThreshold = ((TOTAL_PARTS / 100000) * 25);

    mapping(address => uint256) private _partBalances;
    mapping(address => mapping(address => uint256)) private _allowedTokens;

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

    bool inSwap;

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

    constructor(
        address _dividendTracker
    ) ERC20Detailed("RSP Finance", "RSP", DECIMALS) {
        taxWallet = msg.sender;

        finalRebase = type(uint256).max;
        nextRebase = type(uint256).max;

        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        dividendTracker = IDividendTracker(_dividendTracker);

        _totalSupply = INITIAL_TOKENS_SUPPLY;
        _partBalances[msg.sender] = TOTAL_PARTS;
        _partsPerToken = TOTAL_PARTS / (_totalSupply);

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

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

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

        dividendTracker.setup();
        dividendTracker.excludeFromDividends(address(dividendTracker), true);
        dividendTracker.excludeFromDividends(address(this), true);
        dividendTracker.excludeFromDividends(owner(), true);
        dividendTracker.excludeFromDividends(address(0xdead), true);
        dividendTracker.excludeFromDividends(address(router), true);
        dividendTracker.excludeFromDividends(pair, 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
            nextRebase <= block.timestamp ||
            (autoRebase &&
                rebaseStarted &&
                rebasesThisCycle < 5 &&
                lastRebaseThisCycle + 60 <= block.timestamp);
    }

    function lpSync() internal {
        InterfaceLP _pair = InterfaceLP(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;

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

            if (recipient == pairAddress) {
                if (
                    balanceOf(address(this)) >=
                    partsSwapThreshold / (_partsPerToken)
                ) {
                    try this.swapBack() {} catch {}
                }
                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);

        uint256 senderPercentage = (balanceOf(sender) * magnitude) /
            _totalSupply;

        uint256 recipientPercentage = (balanceOf(recipient) * magnitude) /
            _totalSupply;
        
        try
            dividendTracker.setBalance(
                sender,
                (DIVIDEND_SUPPLY * senderPercentage) / magnitude
            )
        {} catch {}
        try
            dividendTracker.setBalance(
                recipient,
                (DIVIDEND_SUPPLY * recipientPercentage) / magnitude
            )
        {} catch {}

        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 time = block.timestamp;

        uint256 supplyDelta = (_totalSupply * 2) / 100;
        if (nextRebase < block.timestamp) {
            rebasesThisCycle = 1;
            nextRebase += rebaseFrequency;
        } else {
            rebasesThisCycle += 1;
            lastRebaseThisCycle = block.timestamp;
        }

        if (supplyDelta == 0) {
            emit Rebase(time, _totalSupply);
            return _totalSupply;
        }

        _totalSupply = _totalSupply - supplyDelta;

        if (nextRebase >= finalRebase) {
            nextRebase = type(uint256).max;
            autoRebase = false;
            _totalSupply = FINAL_TOTAL_SUPPLY;

            if (limitsInEffect) {
                limitsInEffect = false;
                emit RemovedLimits();
            }

            if (balanceOf(address(this)) > 0) {
                try this.swapBack() {} catch {}
            }
        }

        _partsPerToken = TOTAL_PARTS / (_totalSupply);

        lpSync();

        emit Rebase(time, _totalSupply);
        return _totalSupply;
    }

    function claimReward() external {
        require(claimStatus, "Claim not enabled");
        dividendTracker.processAccount(payable(msg.sender));
    }

    function enableClaim(bool _status) external onlyOwner {
        claimStatus = _status;
    }

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

    function startTrading() external onlyOwner {
        require(!tradingIsLive, "Trading Live Already");
        tradingIsLive = true;
    }

    function startRebaseCycles() external onlyOwner {
        require(!rebaseStarted, "already started");
        nextRebase = block.timestamp + rebaseFrequency;
        finalRebase = block.timestamp + 10 days;
        rebaseStarted = true;
    }

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

        if (contractBalance > (partsSwapThreshold / (_partsPerToken)) * 20) {
            contractBalance = (partsSwapThreshold / (_partsPerToken)) * 20;
        }

        uint256 currentbalance = address(this).balance;

        swapTokensForETH(contractBalance);

        uint256 balance = address(this).balance;

        uint256 ethToReward = (balance - currentbalance) / 2;
        uint256 ethForDev = balance - ethToReward;

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

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

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

    function refreshBalances(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":"_dividendTracker","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"}],"name":"OwnershipRenounced","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":[],"name":"DIVIDEND_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"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":"claimReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"dividendTracker","outputs":[{"internalType":"contract IDividendTracker","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableClaim","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":"finalRebase","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":"lastRebaseThisCycle","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":"maxTxnAmount","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":"rebaseFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebaseStarted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebasesThisCycle","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"}],"name":"refreshBalances","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"shouldRebase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startRebaseCycles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","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":"tradingIsLive","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"}]

60c0604052611c20600355600160065f6101000a81548160ff0219169083151502179055505f600660016101000a81548160ff0219169083151502179055506005600c556019600d556019600e555f600f555f6010556001601260146101000a81548160ff0219169083151502179055505f601260156101000a81548160ff0219169083151502179055505f601260166101000a81548160ff0219169083151502179055506019620186a06009600a620000ba919062001043565b6509d1fe4307ea620000cd919062001093565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620000fa91906200110a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000127919062001141565b6200013391906200117b565b6200013f919062001093565b6015553480156200014e575f80fd5b506040516200570f3803806200570f833981810160405281019062000174919062001217565b6040518060400160405280600b81526020017f5253502046696e616e63650000000000000000000000000000000000000000008152506040518060400160405280600381526020017f52535000000000000000000000000000000000000000000000000000000000008152506009825f9081620001f29190620014a2565b508160019081620002049190620014a2565b508060025f6101000a81548160ff021916908360ff16021790555050505033600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6005819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600481905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000389919062001043565b6509d1fe4307ea6200039c919062001093565b6013819055506009600a620003b2919062001043565b6509d1fe4307ea620003c5919062001093565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620003f291906200110a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200041f919062001141565b60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506013546009600a62000473919062001043565b6509d1fe4307ea62000486919062001093565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620004b391906200110a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620004e0919062001141565b620004ec91906200117b565b601481905550600160115f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160115f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160115f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506064600260135462000606919062001093565b6200061291906200117b565b600981905550606460026013546200062b919062001093565b6200063791906200117b565b600a8190555060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000689573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620006af919062001217565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000717573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200073d919062001217565b6040518363ffffffff1660e01b81526004016200075c92919062001597565b6020604051808303815f875af115801562000779573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200079f919062001217565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ba0bba406040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000839575f80fd5b505af11580156200084c573d5f803e3d5ffd5b5050505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630483f7a060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016040518363ffffffff1660e01b8152600401620008d0929190620015de565b5f604051808303815f87803b158015620008e8575f80fd5b505af1158015620008fb573d5f803e3d5ffd5b5050505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630483f7a03060016040518363ffffffff1660e01b81526004016200095e929190620015de565b5f604051808303815f87803b15801562000976575f80fd5b505af115801562000989573d5f803e3d5ffd5b5050505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630483f7a0620009da62000e3360201b60201c565b60016040518363ffffffff1660e01b8152600401620009fb929190620015de565b5f604051808303815f87803b15801562000a13575f80fd5b505af115801562000a26573d5f803e3d5ffd5b5050505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630483f7a061dead60016040518363ffffffff1660e01b815260040162000a8b929190620015de565b5f604051808303815f87803b15801562000aa3575f80fd5b505af115801562000ab6573d5f803e3d5ffd5b5050505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630483f7a060805160016040518363ffffffff1660e01b815260040162000b1b929190620015de565b5f604051808303815f87803b15801562000b33575f80fd5b505af115801562000b46573d5f803e3d5ffd5b5050505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630483f7a060a05160016040518363ffffffff1660e01b815260040162000bab929190620015de565b5f604051808303815f87803b15801562000bc3575f80fd5b505af115801562000bd6573d5f803e3d5ffd5b505050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60175f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60175f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef62000e153062000e5c60201b60201c565b60405162000e2491906200161a565b60405180910390a35062001635565b5f600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60145460165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205462000eaa91906200117b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000f3b5780860481111562000f135762000f1262000eb1565b5b600185161562000f235780820291505b808102905062000f338562000ede565b945062000ef3565b94509492505050565b5f8262000f55576001905062001027565b8162000f64575f905062001027565b816001811462000f7d576002811462000f885762000fbe565b600191505062001027565b60ff84111562000f9d5762000f9c62000eb1565b5b8360020a91508482111562000fb75762000fb662000eb1565b5b5062001027565b5060208310610133831016604e8410600b841016171562000ff85782820a90508381111562000ff25762000ff162000eb1565b5b62001027565b62001007848484600162000eea565b9250905081840481111562001021576200102062000eb1565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200104f826200102e565b91506200105c8362001037565b92506200108b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000f44565b905092915050565b5f6200109f826200102e565b9150620010ac836200102e565b9250828202620010bc816200102e565b91508282048414831517620010d657620010d562000eb1565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62001116826200102e565b915062001123836200102e565b925082620011365762001135620010dd565b5b828206905092915050565b5f6200114d826200102e565b91506200115a836200102e565b925082820390508181111562001175576200117462000eb1565b5b92915050565b5f62001187826200102e565b915062001194836200102e565b925082620011a757620011a6620010dd565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620011e182620011b6565b9050919050565b620011f381620011d5565b8114620011fe575f80fd5b50565b5f815190506200121181620011e8565b92915050565b5f602082840312156200122f576200122e620011b2565b5b5f6200123e8482850162001201565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620012c357607f821691505b602082108103620012d957620012d86200127e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200133d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001300565b62001349868362001300565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6200138a620013846200137e846200102e565b62001361565b6200102e565b9050919050565b5f819050919050565b620013a5836200136a565b620013bd620013b48262001391565b8484546200130c565b825550505050565b5f90565b620013d3620013c5565b620013e08184846200139a565b505050565b5b818110156200140757620013fb5f82620013c9565b600181019050620013e6565b5050565b601f82111562001456576200142081620012df565b6200142b84620012f1565b810160208510156200143b578190505b620014536200144a85620012f1565b830182620013e5565b50505b505050565b5f82821c905092915050565b5f620014785f19846008026200145b565b1980831691505092915050565b5f62001492838362001467565b9150826002028217905092915050565b620014ad8262001247565b67ffffffffffffffff811115620014c957620014c862001251565b5b620014d58254620012ab565b620014e28282856200140b565b5f60209050601f83116001811462001518575f841562001503578287015190505b6200150f858262001485565b8655506200157e565b601f1984166200152886620012df565b5f5b8281101562001551578489015182556001820191506020850194506020810190506200152a565b868310156200157157848901516200156d601f89168262001467565b8355505b6001600288020188555050505b505050505050565b6200159181620011d5565b82525050565b5f604082019050620015ac5f83018562001586565b620015bb602083018462001586565b9392505050565b5f8115159050919050565b620015d881620015c2565b82525050565b5f604082019050620015f35f83018562001586565b620016026020830184620015cd565b9392505050565b62001614816200102e565b82525050565b5f6020820190506200162f5f83018462001609565b92915050565b60805160a05161409c620016735f395f8181611dd0015281816120b80152612f1f01525f818161208c01528181612cba0152612d95015261409c5ff3fe60806040526004361061025f575f3560e01c806370a0823111610143578063ae87fc4b116100b5578063da07e4d711610079578063da07e4d714610868578063dd62ed3e14610892578063f0d00f2e146108ce578063f2fde38b146108f8578063f887ea4014610920578063f8b45b051461094a57610266565b8063ae87fc4b146107aa578063b88a802f146107d4578063bc7e68a3146107ea578063c5c0050e14610814578063cf46f24c1461083e57610266565b80639079f932116101075780639079f9321461068a57806395d89b41146106b45780639833d9ec146106de578063a457c2d714610708578063a8aa1b3114610744578063a9059cbb1461076e57610266565b806370a08231146105ce578063715018a61461060a578063751039fc1461062057806389375abf146106365780638da5cb5b1461066057610266565b80632e325983116101dc5780634a62bb65116101a05780634a62bb65146104e85780634dd7c8bf146105125780634fbee1931461053c57806361a9d1b11461057857806363eab10a1461058e5780636ac5eeee146105b857610266565b80632e3259831461041a578063313ce56714610442578063395093511461046c5780633b68edea146104a857806342295e1b146104d257610266565b806323b872dd1161022357806323b872dd1461034a5780632523fb5814610386578063293230b8146103b05780632c1f5216146103c65780632dc0562d146103f057610266565b806306fdde031461026a578063095ea7b3146102945780630ccf0664146102d057806316697fc5146102f857806318160ddd1461032057610266565b3661026657005b5f80fd5b348015610275575f80fd5b5061027e610974565b60405161028b9190613028565b60405180910390f35b34801561029f575f80fd5b506102ba60048036038101906102b591906130e6565b610a03565b6040516102c7919061313e565b60405180910390f35b3480156102db575f80fd5b506102f660048036038101906102f19190613181565b610af0565b005b348015610303575f80fd5b5061031e600480360381019061031991906131ac565b610b9d565b005b34801561032b575f80fd5b50610334610c85565b60405161034191906131f9565b60405180910390f35b348015610355575f80fd5b50610370600480360381019061036b9190613212565b610c8e565b60405161037d919061313e565b60405180910390f35b348015610391575f80fd5b5061039a610f3a565b6040516103a791906131f9565b60405180910390f35b3480156103bb575f80fd5b506103c4610f49565b005b3480156103d1575f80fd5b506103da611046565b6040516103e791906132bd565b60405180910390f35b3480156103fb575f80fd5b5061040461106b565b60405161041191906132e5565b60405180910390f35b348015610425575f80fd5b50610440600480360381019061043b919061343e565b611090565b005b34801561044d575f80fd5b50610456611139565b60405161046391906134a0565b60405180910390f35b348015610477575f80fd5b50610492600480360381019061048d91906130e6565b61114e565b60405161049f919061313e565b60405180910390f35b3480156104b3575f80fd5b506104bc611336565b6040516104c9919061313e565b60405180910390f35b3480156104dd575f80fd5b506104e6611349565b005b3480156104f3575f80fd5b506104fc61146f565b604051610509919061313e565b60405180910390f35b34801561051d575f80fd5b50610526611482565b60405161053391906131f9565b60405180910390f35b348015610547575f80fd5b50610562600480360381019061055d91906134b9565b611488565b60405161056f919061313e565b60405180910390f35b348015610583575f80fd5b5061058c6114a5565b005b348015610599575f80fd5b506105a26114f7565b6040516105af919061313e565b60405180910390f35b3480156105c3575f80fd5b506105cc611559565b005b3480156105d9575f80fd5b506105f460048036038101906105ef91906134b9565b6117ce565b60405161060191906131f9565b60405180910390f35b348015610615575f80fd5b5061061e611821565b005b34801561062b575f80fd5b50610634611959565b005b348015610641575f80fd5b5061064a611a80565b60405161065791906131f9565b60405180910390f35b34801561066b575f80fd5b50610674611a86565b60405161068191906132e5565b60405180910390f35b348015610695575f80fd5b5061069e611aaf565b6040516106ab919061313e565b60405180910390f35b3480156106bf575f80fd5b506106c8611ac1565b6040516106d59190613028565b60405180910390f35b3480156106e9575f80fd5b506106f2611b51565b6040516106ff91906131f9565b60405180910390f35b348015610713575f80fd5b5061072e600480360381019061072991906130e6565b611b57565b60405161073b919061313e565b60405180910390f35b34801561074f575f80fd5b50610758611dce565b60405161076591906132e5565b60405180910390f35b348015610779575f80fd5b50610794600480360381019061078f91906130e6565b611df2565b6040516107a1919061313e565b60405180910390f35b3480156107b5575f80fd5b506107be611e42565b6040516107cb919061313e565b60405180910390f35b3480156107df575f80fd5b506107e8611e55565b005b3480156107f5575f80fd5b506107fe611f41565b60405161080b91906131f9565b60405180910390f35b34801561081f575f80fd5b50610828611f47565b604051610835919061313e565b60405180910390f35b348015610849575f80fd5b50610852611f5a565b60405161085f91906131f9565b60405180910390f35b348015610873575f80fd5b5061087c611f60565b60405161088991906131f9565b60405180910390f35b34801561089d575f80fd5b506108b860048036038101906108b391906134e4565b611f66565b6040516108c591906131f9565b60405180910390f35b3480156108d9575f80fd5b506108e2611fe8565b6040516108ef91906131f9565b60405180910390f35b348015610903575f80fd5b5061091e600480360381019061091991906134b9565b611fee565b005b34801561092b575f80fd5b5061093461208a565b6040516109419190613542565b60405180910390f35b348015610955575f80fd5b5061095e6120ae565b60405161096b91906131f9565b60405180910390f35b60605f805461098290613588565b80601f01602080910402602001604051908101604052809291908181526020018280546109ae90613588565b80156109f95780601f106109d0576101008083540402835291602001916109f9565b820191905f5260205f20905b8154815290600101906020018083116109dc57829003601f168201915b5050505050905090565b5f8160175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ade91906131f9565b60405180910390a36001905092915050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7790613602565b60405180910390fd5b80601260166101000a81548160ff02191690831515021790555050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2490613602565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f601354905090565b5f825f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cc7575f80fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610f22578260175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e189061366a565b60405180910390fd5b8260175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610ea591906136b5565b60175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610f2d8585856120b4565b5060019150509392505050565b6a52b7d2dcc80cd2e400000081565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd090613602565b60405180910390fd5b601260159054906101000a900460ff1615611029576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102090613732565b60405180910390fd5b6001601260156101000a81548160ff021916908315150217905550565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f90505b8251811015611134578281815181106110b2576110b1613750565b5b602002602001015191508173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f60405161111991906137b6565b60405180910390a3808061112c906137cf565b915050611096565b505050565b5f60025f9054906101000a900460ff16905090565b5f8160175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546111d39190613816565b60175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460405161132491906131f9565b60405180910390a36001905092915050565b601260159054906101000a900460ff1681565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d090613602565b60405180910390fd5b600660019054906101000a900460ff1615611429576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142090613893565b60405180910390fd5b600354426114379190613816565b600481905550620d2f004261144c9190613816565b6005819055506001600660016101000a81548160ff021916908315150217905550565b601260149054906101000a900460ff1681565b600c5481565b6011602052805f5260405f205f915054906101000a900460ff1681565b6114ad6114f7565b6114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e3906138fb565b60405180910390fd5b6114f461293f565b50565b5f42600454111580611554575060065f9054906101000a900460ff16801561152b5750600660019054906101000a900460ff165b801561153957506005600754105b8015611553575042603c6008546115509190613816565b11155b5b905090565b600160185f6101000a81548160ff0219169083151502179055505f61157d306117ce565b90505f810361158c57506117b3565b6014805460155461159d9190613946565b6115a79190613976565b8111156115cc57601480546015546115bf9190613946565b6115c99190613976565b90505b5f4790506115d982612c1d565b5f4790505f600283836115ec91906136b5565b6115f69190613946565b90505f818361160591906136b5565b90505f8111156116da575f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611655906139e4565b5f6040518083038185875af1925050503d805f811461168f576040519150601f19603f3d011682016040523d82523d5f602084013e611694565b606091505b50509050806116d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cf90613a42565b60405180910390fd5b505b5f8211156117ad575f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051611728906139e4565b5f6040518083038185875af1925050503d805f8114611762576040519150601f19603f3d011682016040523d82523d5f602084013e611767565b606091505b50509050806117ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a290613aaa565b60405180910390fd5b505b50505050505b5f60185f6101000a81548160ff021916908315150217905550565b5f60145460165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461181a9190613946565b9050919050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a890613602565b60405180910390fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a25f600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e090613602565b60405180910390fd5b601260149054906101000a900460ff16611a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2f90613b12565b60405180910390fd5b5f601260146101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b60035481565b5f600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065f9054906101000a900460ff1681565b606060018054611ad090613588565b80601f0160208091040260200160405190810160405280929190818152602001828054611afc90613588565b8015611b475780601f10611b1e57610100808354040283529160200191611b47565b820191905f5260205f20905b815481529060010190602001808311611b2a57829003601f168201915b5050505050905090565b60085481565b5f8060175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050808310611c5d575f60175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ce6565b8281611c6991906136b5565b60175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054604051611dbb91906131f9565b60405180910390a3600191505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f825f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e2b575f80fd5b611e363385856120b4565b50600191505092915050565b601260169054906101000a900460ff1681565b601260169054906101000a900460ff16611ea4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9b90613b7a565b60405180910390fd5b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663807ab4f7336040518263ffffffff1660e01b8152600401611efe9190613bb8565b6020604051808303815f875af1158015611f1a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f3e9190613be5565b50565b60045481565b600660019054906101000a900460ff1681565b60095481565b60055481565b5f60175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60075481565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461207e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207590613602565b60405180910390fd5b61208781612e25565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a5481565b5f807f0000000000000000000000000000000000000000000000000000000000000000905060185f9054906101000a900460ff1615801561213c575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561218f575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561263457601260159054906101000a900460ff166121e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121da90613c5a565b60405180910390fd5b601260149054906101000a900460ff1615612335578073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061225d57508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156122a8576009548311156122a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229e90613cc2565b60405180910390fd5b5b8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461233457600a54836122e8866117ce565b6122f29190613816565b1115612333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232a90613d2a565b60405180910390fd5b5b5b8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036123f6576014546015546123789190613946565b612381306117ce565b106123de573073ffffffffffffffffffffffffffffffffffffffff16636ac5eeee6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156123cb575f80fd5b505af19250505080156123dc575060015b505b6123e66114f7565b156123f5576123f361293f565b505b5b5f8173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612478576001600f5f82825461243c9190613816565b925050819055506064600e54600f541161245857600d5461245c565b600c545b856124679190613976565b6124719190613946565b90506124f6565b8173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036124f557600160105f8282546124bd9190613816565b925050819055506064600e54601054116124d957600d546124dd565b600c545b856124e89190613976565b6124f29190613946565b90505b5b5f811115612632576014548161250c9190613976565b60165f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461255791906136b5565b925050819055506014548161256c9190613976565b60165f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546125b79190613816565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161261b91906131f9565b60405180910390a3808461262f91906136b5565b93505b505b601454836126429190613976565b60165f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461268d91906136b5565b92505081905550601454836126a29190613976565b60165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546126ed9190613816565b925050819055505f601354700100000000000000000000000000000000612713886117ce565b61271d9190613976565b6127279190613946565b90505f601354700100000000000000000000000000000000612748886117ce565b6127529190613976565b61275c9190613946565b905060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e30443bc88700100000000000000000000000000000000856a52b7d2dcc80cd2e40000006127c59190613976565b6127cf9190613946565b6040518363ffffffff1660e01b81526004016127ec929190613d48565b5f604051808303815f87803b158015612803575f80fd5b505af1925050508015612814575060015b5060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e30443bc87700100000000000000000000000000000000846a52b7d2dcc80cd2e400000061287c9190613976565b6128869190613946565b6040518363ffffffff1660e01b81526004016128a3929190613d48565b5f604051808303815f87803b1580156128ba575f80fd5b505af19250505080156128cb575060015b508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8760405161292991906131f9565b60405180910390a3600193505050509392505050565b5f804290505f606460026013546129569190613976565b6129609190613946565b905042600454101561299357600160078190555060035460045f8282546129879190613816565b925050819055506129b4565b600160075f8282546129a59190613816565b92505081905550426008819055505b5f8103612a0157817f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a215116013546040516129ed91906131f9565b60405180910390a260135492505050612c1a565b80601354612a0f91906136b5565b60138190555060055460045410612b48577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6004819055505f60065f6101000a81548160ff0219169083151502179055506009600a612a6e9190613e9e565b6305f5e100612a7d9190613976565b601381905550601260149054906101000a900460ff1615612adf575f601260146101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a15b5f612ae9306117ce565b1115612b47573073ffffffffffffffffffffffffffffffffffffffff16636ac5eeee6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612b34575f80fd5b505af1925050508015612b45575060015b505b5b6013546009600a612b599190613e9e565b6509d1fe4307ea612b6a9190613976565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612b959190613ee8565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612bc091906136b5565b612bca9190613946565b601481905550612bd8612f1c565b817f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a21511601354604051612c0a91906131f9565b60405180910390a2601354925050505b90565b5f600267ffffffffffffffff811115612c3957612c38613302565b5b604051908082528060200260200182016040528015612c675781602001602082028036833780820191505090505b50905030815f81518110612c7e57612c7d613750565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d21573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d459190613f2c565b81600181518110612d5957612d58613750565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612df495949392919061400e565b5f604051808303815f87803b158015612e0b575f80fd5b505af1158015612e1d573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612e5c575f80fd5b8073ffffffffffffffffffffffffffffffffffffffff16600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f7f000000000000000000000000000000000000000000000000000000000000000090508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612f85575f80fd5b505af1158015612f97573d5f803e3d5ffd5b5050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612fd5578082015181840152602081019050612fba565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612ffa82612f9e565b6130048185612fa8565b9350613014818560208601612fb8565b61301d81612fe0565b840191505092915050565b5f6020820190508181035f8301526130408184612ff0565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61308282613059565b9050919050565b61309281613078565b811461309c575f80fd5b50565b5f813590506130ad81613089565b92915050565b5f819050919050565b6130c5816130b3565b81146130cf575f80fd5b50565b5f813590506130e0816130bc565b92915050565b5f80604083850312156130fc576130fb613051565b5b5f6131098582860161309f565b925050602061311a858286016130d2565b9150509250929050565b5f8115159050919050565b61313881613124565b82525050565b5f6020820190506131515f83018461312f565b92915050565b61316081613124565b811461316a575f80fd5b50565b5f8135905061317b81613157565b92915050565b5f6020828403121561319657613195613051565b5b5f6131a38482850161316d565b91505092915050565b5f80604083850312156131c2576131c1613051565b5b5f6131cf8582860161309f565b92505060206131e08582860161316d565b9150509250929050565b6131f3816130b3565b82525050565b5f60208201905061320c5f8301846131ea565b92915050565b5f805f6060848603121561322957613228613051565b5b5f6132368682870161309f565b93505060206132478682870161309f565b9250506040613258868287016130d2565b9150509250925092565b5f819050919050565b5f61328561328061327b84613059565b613262565b613059565b9050919050565b5f6132968261326b565b9050919050565b5f6132a78261328c565b9050919050565b6132b78161329d565b82525050565b5f6020820190506132d05f8301846132ae565b92915050565b6132df81613078565b82525050565b5f6020820190506132f85f8301846132d6565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61333882612fe0565b810181811067ffffffffffffffff8211171561335757613356613302565b5b80604052505050565b5f613369613048565b9050613375828261332f565b919050565b5f67ffffffffffffffff82111561339457613393613302565b5b602082029050602081019050919050565b5f80fd5b5f6133bb6133b68461337a565b613360565b905080838252602082019050602084028301858111156133de576133dd6133a5565b5b835b8181101561340757806133f3888261309f565b8452602084019350506020810190506133e0565b5050509392505050565b5f82601f830112613425576134246132fe565b5b81356134358482602086016133a9565b91505092915050565b5f6020828403121561345357613452613051565b5b5f82013567ffffffffffffffff8111156134705761346f613055565b5b61347c84828501613411565b91505092915050565b5f60ff82169050919050565b61349a81613485565b82525050565b5f6020820190506134b35f830184613491565b92915050565b5f602082840312156134ce576134cd613051565b5b5f6134db8482850161309f565b91505092915050565b5f80604083850312156134fa576134f9613051565b5b5f6135078582860161309f565b92505060206135188582860161309f565b9150509250929050565b5f61352c8261328c565b9050919050565b61353c81613522565b82525050565b5f6020820190506135555f830184613533565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061359f57607f821691505b6020821081036135b2576135b161355b565b5b50919050565b7f4e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f6135ec600983612fa8565b91506135f7826135b8565b602082019050919050565b5f6020820190508181035f830152613619816135e0565b9050919050565b7f496e73756666696369656e7420416c6c6f77616e6365000000000000000000005f82015250565b5f613654601683612fa8565b915061365f82613620565b602082019050919050565b5f6020820190508181035f83015261368181613648565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6136bf826130b3565b91506136ca836130b3565b92508282039050818111156136e2576136e1613688565b5b92915050565b7f54726164696e67204c69766520416c72656164790000000000000000000000005f82015250565b5f61371c601483612fa8565b9150613727826136e8565b602082019050919050565b5f6020820190508181035f83015261374981613710565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f6137a061379b6137968461377d565b613262565b6130b3565b9050919050565b6137b081613786565b82525050565b5f6020820190506137c95f8301846137a7565b92915050565b5f6137d9826130b3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361380b5761380a613688565b5b600182019050919050565b5f613820826130b3565b915061382b836130b3565b925082820190508082111561384357613842613688565b5b92915050565b7f616c7265616479207374617274656400000000000000000000000000000000005f82015250565b5f61387d600f83612fa8565b915061388882613849565b602082019050919050565b5f6020820190508181035f8301526138aa81613871565b9050919050565b7f4e6f7420696e2074696d650000000000000000000000000000000000000000005f82015250565b5f6138e5600b83612fa8565b91506138f0826138b1565b602082019050919050565b5f6020820190508181035f830152613912816138d9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613950826130b3565b915061395b836130b3565b92508261396b5761396a613919565b5b828204905092915050565b5f613980826130b3565b915061398b836130b3565b9250828202613999816130b3565b915082820484148315176139b0576139af613688565b5b5092915050565b5f81905092915050565b50565b5f6139cf5f836139b7565b91506139da826139c1565b5f82019050919050565b5f6139ee826139c4565b9150819050919050565b7f4661696c656420746f2073656e642045544820746f206465762077616c6c65745f82015250565b5f613a2c602083612fa8565b9150613a37826139f8565b602082019050919050565b5f6020820190508181035f830152613a5981613a20565b9050919050565b7f4661696c656420746f2073656e642045544820746f20777261707065720000005f82015250565b5f613a94601d83612fa8565b9150613a9f82613a60565b602082019050919050565b5f6020820190508181035f830152613ac181613a88565b9050919050565b7f4c696d69747320616c72656164792072656d6f766564000000000000000000005f82015250565b5f613afc601683612fa8565b9150613b0782613ac8565b602082019050919050565b5f6020820190508181035f830152613b2981613af0565b9050919050565b7f436c61696d206e6f7420656e61626c65640000000000000000000000000000005f82015250565b5f613b64601183612fa8565b9150613b6f82613b30565b602082019050919050565b5f6020820190508181035f830152613b9181613b58565b9050919050565b5f613ba28261328c565b9050919050565b613bb281613b98565b82525050565b5f602082019050613bcb5f830184613ba9565b92915050565b5f81519050613bdf81613157565b92915050565b5f60208284031215613bfa57613bf9613051565b5b5f613c0784828501613bd1565b91505092915050565b7f54726164696e67206e6f74206c697665000000000000000000000000000000005f82015250565b5f613c44601083612fa8565b9150613c4f82613c10565b602082019050919050565b5f6020820190508181035f830152613c7181613c38565b9050919050565b7f4d617820547820457863656564656400000000000000000000000000000000005f82015250565b5f613cac600f83612fa8565b9150613cb782613c78565b602082019050919050565b5f6020820190508181035f830152613cd981613ca0565b9050919050565b7f4d61782057616c6c6574204578636565646564000000000000000000000000005f82015250565b5f613d14601383612fa8565b9150613d1f82613ce0565b602082019050919050565b5f6020820190508181035f830152613d4181613d08565b9050919050565b5f604082019050613d5b5f8301856132d6565b613d6860208301846131ea565b9392505050565b5f8160011c9050919050565b5f808291508390505b6001851115613dc457808604811115613da057613d9f613688565b5b6001851615613daf5780820291505b8081029050613dbd85613d6f565b9450613d84565b94509492505050565b5f82613ddc5760019050613e97565b81613de9575f9050613e97565b8160018114613dff5760028114613e0957613e38565b6001915050613e97565b60ff841115613e1b57613e1a613688565b5b8360020a915084821115613e3257613e31613688565b5b50613e97565b5060208310610133831016604e8410600b8410161715613e6d5782820a905083811115613e6857613e67613688565b5b613e97565b613e7a8484846001613d7b565b92509050818404811115613e9157613e90613688565b5b81810290505b9392505050565b5f613ea8826130b3565b9150613eb383613485565b9250613ee07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613dcd565b905092915050565b5f613ef2826130b3565b9150613efd836130b3565b925082613f0d57613f0c613919565b5b828206905092915050565b5f81519050613f2681613089565b92915050565b5f60208284031215613f4157613f40613051565b5b5f613f4e84828501613f18565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613f8981613078565b82525050565b5f613f9a8383613f80565b60208301905092915050565b5f602082019050919050565b5f613fbc82613f57565b613fc68185613f61565b9350613fd183613f71565b805f5b83811015614001578151613fe88882613f8f565b9750613ff383613fa6565b925050600181019050613fd4565b5085935050505092915050565b5f60a0820190506140215f8301886131ea565b61402e60208301876137a7565b81810360408301526140408186613fb2565b905061404f60608301856132d6565b61405c60808301846131ea565b969550505050505056fea26469706673582212204a1a458e84fd705091179b31b6b1b7a7799cf310bb2217403c2fa0a4507f390264736f6c634300081500330000000000000000000000009978572adaa17b7813049865a33c85267fa0d8c1

Deployed Bytecode

0x60806040526004361061025f575f3560e01c806370a0823111610143578063ae87fc4b116100b5578063da07e4d711610079578063da07e4d714610868578063dd62ed3e14610892578063f0d00f2e146108ce578063f2fde38b146108f8578063f887ea4014610920578063f8b45b051461094a57610266565b8063ae87fc4b146107aa578063b88a802f146107d4578063bc7e68a3146107ea578063c5c0050e14610814578063cf46f24c1461083e57610266565b80639079f932116101075780639079f9321461068a57806395d89b41146106b45780639833d9ec146106de578063a457c2d714610708578063a8aa1b3114610744578063a9059cbb1461076e57610266565b806370a08231146105ce578063715018a61461060a578063751039fc1461062057806389375abf146106365780638da5cb5b1461066057610266565b80632e325983116101dc5780634a62bb65116101a05780634a62bb65146104e85780634dd7c8bf146105125780634fbee1931461053c57806361a9d1b11461057857806363eab10a1461058e5780636ac5eeee146105b857610266565b80632e3259831461041a578063313ce56714610442578063395093511461046c5780633b68edea146104a857806342295e1b146104d257610266565b806323b872dd1161022357806323b872dd1461034a5780632523fb5814610386578063293230b8146103b05780632c1f5216146103c65780632dc0562d146103f057610266565b806306fdde031461026a578063095ea7b3146102945780630ccf0664146102d057806316697fc5146102f857806318160ddd1461032057610266565b3661026657005b5f80fd5b348015610275575f80fd5b5061027e610974565b60405161028b9190613028565b60405180910390f35b34801561029f575f80fd5b506102ba60048036038101906102b591906130e6565b610a03565b6040516102c7919061313e565b60405180910390f35b3480156102db575f80fd5b506102f660048036038101906102f19190613181565b610af0565b005b348015610303575f80fd5b5061031e600480360381019061031991906131ac565b610b9d565b005b34801561032b575f80fd5b50610334610c85565b60405161034191906131f9565b60405180910390f35b348015610355575f80fd5b50610370600480360381019061036b9190613212565b610c8e565b60405161037d919061313e565b60405180910390f35b348015610391575f80fd5b5061039a610f3a565b6040516103a791906131f9565b60405180910390f35b3480156103bb575f80fd5b506103c4610f49565b005b3480156103d1575f80fd5b506103da611046565b6040516103e791906132bd565b60405180910390f35b3480156103fb575f80fd5b5061040461106b565b60405161041191906132e5565b60405180910390f35b348015610425575f80fd5b50610440600480360381019061043b919061343e565b611090565b005b34801561044d575f80fd5b50610456611139565b60405161046391906134a0565b60405180910390f35b348015610477575f80fd5b50610492600480360381019061048d91906130e6565b61114e565b60405161049f919061313e565b60405180910390f35b3480156104b3575f80fd5b506104bc611336565b6040516104c9919061313e565b60405180910390f35b3480156104dd575f80fd5b506104e6611349565b005b3480156104f3575f80fd5b506104fc61146f565b604051610509919061313e565b60405180910390f35b34801561051d575f80fd5b50610526611482565b60405161053391906131f9565b60405180910390f35b348015610547575f80fd5b50610562600480360381019061055d91906134b9565b611488565b60405161056f919061313e565b60405180910390f35b348015610583575f80fd5b5061058c6114a5565b005b348015610599575f80fd5b506105a26114f7565b6040516105af919061313e565b60405180910390f35b3480156105c3575f80fd5b506105cc611559565b005b3480156105d9575f80fd5b506105f460048036038101906105ef91906134b9565b6117ce565b60405161060191906131f9565b60405180910390f35b348015610615575f80fd5b5061061e611821565b005b34801561062b575f80fd5b50610634611959565b005b348015610641575f80fd5b5061064a611a80565b60405161065791906131f9565b60405180910390f35b34801561066b575f80fd5b50610674611a86565b60405161068191906132e5565b60405180910390f35b348015610695575f80fd5b5061069e611aaf565b6040516106ab919061313e565b60405180910390f35b3480156106bf575f80fd5b506106c8611ac1565b6040516106d59190613028565b60405180910390f35b3480156106e9575f80fd5b506106f2611b51565b6040516106ff91906131f9565b60405180910390f35b348015610713575f80fd5b5061072e600480360381019061072991906130e6565b611b57565b60405161073b919061313e565b60405180910390f35b34801561074f575f80fd5b50610758611dce565b60405161076591906132e5565b60405180910390f35b348015610779575f80fd5b50610794600480360381019061078f91906130e6565b611df2565b6040516107a1919061313e565b60405180910390f35b3480156107b5575f80fd5b506107be611e42565b6040516107cb919061313e565b60405180910390f35b3480156107df575f80fd5b506107e8611e55565b005b3480156107f5575f80fd5b506107fe611f41565b60405161080b91906131f9565b60405180910390f35b34801561081f575f80fd5b50610828611f47565b604051610835919061313e565b60405180910390f35b348015610849575f80fd5b50610852611f5a565b60405161085f91906131f9565b60405180910390f35b348015610873575f80fd5b5061087c611f60565b60405161088991906131f9565b60405180910390f35b34801561089d575f80fd5b506108b860048036038101906108b391906134e4565b611f66565b6040516108c591906131f9565b60405180910390f35b3480156108d9575f80fd5b506108e2611fe8565b6040516108ef91906131f9565b60405180910390f35b348015610903575f80fd5b5061091e600480360381019061091991906134b9565b611fee565b005b34801561092b575f80fd5b5061093461208a565b6040516109419190613542565b60405180910390f35b348015610955575f80fd5b5061095e6120ae565b60405161096b91906131f9565b60405180910390f35b60605f805461098290613588565b80601f01602080910402602001604051908101604052809291908181526020018280546109ae90613588565b80156109f95780601f106109d0576101008083540402835291602001916109f9565b820191905f5260205f20905b8154815290600101906020018083116109dc57829003601f168201915b5050505050905090565b5f8160175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ade91906131f9565b60405180910390a36001905092915050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7790613602565b60405180910390fd5b80601260166101000a81548160ff02191690831515021790555050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2490613602565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f601354905090565b5f825f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cc7575f80fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610f22578260175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e189061366a565b60405180910390fd5b8260175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610ea591906136b5565b60175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610f2d8585856120b4565b5060019150509392505050565b6a52b7d2dcc80cd2e400000081565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd090613602565b60405180910390fd5b601260159054906101000a900460ff1615611029576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102090613732565b60405180910390fd5b6001601260156101000a81548160ff021916908315150217905550565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f90505b8251811015611134578281815181106110b2576110b1613750565b5b602002602001015191508173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f60405161111991906137b6565b60405180910390a3808061112c906137cf565b915050611096565b505050565b5f60025f9054906101000a900460ff16905090565b5f8160175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546111d39190613816565b60175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460405161132491906131f9565b60405180910390a36001905092915050565b601260159054906101000a900460ff1681565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d090613602565b60405180910390fd5b600660019054906101000a900460ff1615611429576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142090613893565b60405180910390fd5b600354426114379190613816565b600481905550620d2f004261144c9190613816565b6005819055506001600660016101000a81548160ff021916908315150217905550565b601260149054906101000a900460ff1681565b600c5481565b6011602052805f5260405f205f915054906101000a900460ff1681565b6114ad6114f7565b6114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e3906138fb565b60405180910390fd5b6114f461293f565b50565b5f42600454111580611554575060065f9054906101000a900460ff16801561152b5750600660019054906101000a900460ff165b801561153957506005600754105b8015611553575042603c6008546115509190613816565b11155b5b905090565b600160185f6101000a81548160ff0219169083151502179055505f61157d306117ce565b90505f810361158c57506117b3565b6014805460155461159d9190613946565b6115a79190613976565b8111156115cc57601480546015546115bf9190613946565b6115c99190613976565b90505b5f4790506115d982612c1d565b5f4790505f600283836115ec91906136b5565b6115f69190613946565b90505f818361160591906136b5565b90505f8111156116da575f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611655906139e4565b5f6040518083038185875af1925050503d805f811461168f576040519150601f19603f3d011682016040523d82523d5f602084013e611694565b606091505b50509050806116d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cf90613a42565b60405180910390fd5b505b5f8211156117ad575f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051611728906139e4565b5f6040518083038185875af1925050503d805f8114611762576040519150601f19603f3d011682016040523d82523d5f602084013e611767565b606091505b50509050806117ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a290613aaa565b60405180910390fd5b505b50505050505b5f60185f6101000a81548160ff021916908315150217905550565b5f60145460165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461181a9190613946565b9050919050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a890613602565b60405180910390fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a25f600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e090613602565b60405180910390fd5b601260149054906101000a900460ff16611a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2f90613b12565b60405180910390fd5b5f601260146101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b60035481565b5f600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065f9054906101000a900460ff1681565b606060018054611ad090613588565b80601f0160208091040260200160405190810160405280929190818152602001828054611afc90613588565b8015611b475780601f10611b1e57610100808354040283529160200191611b47565b820191905f5260205f20905b815481529060010190602001808311611b2a57829003601f168201915b5050505050905090565b60085481565b5f8060175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050808310611c5d575f60175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ce6565b8281611c6991906136b5565b60175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054604051611dbb91906131f9565b60405180910390a3600191505092915050565b7f000000000000000000000000792b314318909732f27edcc59d40315fc4de7eaa81565b5f825f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e2b575f80fd5b611e363385856120b4565b50600191505092915050565b601260169054906101000a900460ff1681565b601260169054906101000a900460ff16611ea4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9b90613b7a565b60405180910390fd5b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663807ab4f7336040518263ffffffff1660e01b8152600401611efe9190613bb8565b6020604051808303815f875af1158015611f1a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f3e9190613be5565b50565b60045481565b600660019054906101000a900460ff1681565b60095481565b60055481565b5f60175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60075481565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461207e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207590613602565b60405180910390fd5b61208781612e25565b50565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600a5481565b5f807f000000000000000000000000792b314318909732f27edcc59d40315fc4de7eaa905060185f9054906101000a900460ff1615801561213c575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561218f575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561263457601260159054906101000a900460ff166121e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121da90613c5a565b60405180910390fd5b601260149054906101000a900460ff1615612335578073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061225d57508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156122a8576009548311156122a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229e90613cc2565b60405180910390fd5b5b8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461233457600a54836122e8866117ce565b6122f29190613816565b1115612333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232a90613d2a565b60405180910390fd5b5b5b8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036123f6576014546015546123789190613946565b612381306117ce565b106123de573073ffffffffffffffffffffffffffffffffffffffff16636ac5eeee6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156123cb575f80fd5b505af19250505080156123dc575060015b505b6123e66114f7565b156123f5576123f361293f565b505b5b5f8173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612478576001600f5f82825461243c9190613816565b925050819055506064600e54600f541161245857600d5461245c565b600c545b856124679190613976565b6124719190613946565b90506124f6565b8173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036124f557600160105f8282546124bd9190613816565b925050819055506064600e54601054116124d957600d546124dd565b600c545b856124e89190613976565b6124f29190613946565b90505b5b5f811115612632576014548161250c9190613976565b60165f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461255791906136b5565b925050819055506014548161256c9190613976565b60165f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546125b79190613816565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161261b91906131f9565b60405180910390a3808461262f91906136b5565b93505b505b601454836126429190613976565b60165f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461268d91906136b5565b92505081905550601454836126a29190613976565b60165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546126ed9190613816565b925050819055505f601354700100000000000000000000000000000000612713886117ce565b61271d9190613976565b6127279190613946565b90505f601354700100000000000000000000000000000000612748886117ce565b6127529190613976565b61275c9190613946565b905060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e30443bc88700100000000000000000000000000000000856a52b7d2dcc80cd2e40000006127c59190613976565b6127cf9190613946565b6040518363ffffffff1660e01b81526004016127ec929190613d48565b5f604051808303815f87803b158015612803575f80fd5b505af1925050508015612814575060015b5060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e30443bc87700100000000000000000000000000000000846a52b7d2dcc80cd2e400000061287c9190613976565b6128869190613946565b6040518363ffffffff1660e01b81526004016128a3929190613d48565b5f604051808303815f87803b1580156128ba575f80fd5b505af19250505080156128cb575060015b508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8760405161292991906131f9565b60405180910390a3600193505050509392505050565b5f804290505f606460026013546129569190613976565b6129609190613946565b905042600454101561299357600160078190555060035460045f8282546129879190613816565b925050819055506129b4565b600160075f8282546129a59190613816565b92505081905550426008819055505b5f8103612a0157817f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a215116013546040516129ed91906131f9565b60405180910390a260135492505050612c1a565b80601354612a0f91906136b5565b60138190555060055460045410612b48577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6004819055505f60065f6101000a81548160ff0219169083151502179055506009600a612a6e9190613e9e565b6305f5e100612a7d9190613976565b601381905550601260149054906101000a900460ff1615612adf575f601260146101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a15b5f612ae9306117ce565b1115612b47573073ffffffffffffffffffffffffffffffffffffffff16636ac5eeee6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612b34575f80fd5b505af1925050508015612b45575060015b505b5b6013546009600a612b599190613e9e565b6509d1fe4307ea612b6a9190613976565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612b959190613ee8565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612bc091906136b5565b612bca9190613946565b601481905550612bd8612f1c565b817f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a21511601354604051612c0a91906131f9565b60405180910390a2601354925050505b90565b5f600267ffffffffffffffff811115612c3957612c38613302565b5b604051908082528060200260200182016040528015612c675781602001602082028036833780820191505090505b50905030815f81518110612c7e57612c7d613750565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d21573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d459190613f2c565b81600181518110612d5957612d58613750565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612df495949392919061400e565b5f604051808303815f87803b158015612e0b575f80fd5b505af1158015612e1d573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612e5c575f80fd5b8073ffffffffffffffffffffffffffffffffffffffff16600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f7f000000000000000000000000792b314318909732f27edcc59d40315fc4de7eaa90508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612f85575f80fd5b505af1158015612f97573d5f803e3d5ffd5b5050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612fd5578082015181840152602081019050612fba565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612ffa82612f9e565b6130048185612fa8565b9350613014818560208601612fb8565b61301d81612fe0565b840191505092915050565b5f6020820190508181035f8301526130408184612ff0565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61308282613059565b9050919050565b61309281613078565b811461309c575f80fd5b50565b5f813590506130ad81613089565b92915050565b5f819050919050565b6130c5816130b3565b81146130cf575f80fd5b50565b5f813590506130e0816130bc565b92915050565b5f80604083850312156130fc576130fb613051565b5b5f6131098582860161309f565b925050602061311a858286016130d2565b9150509250929050565b5f8115159050919050565b61313881613124565b82525050565b5f6020820190506131515f83018461312f565b92915050565b61316081613124565b811461316a575f80fd5b50565b5f8135905061317b81613157565b92915050565b5f6020828403121561319657613195613051565b5b5f6131a38482850161316d565b91505092915050565b5f80604083850312156131c2576131c1613051565b5b5f6131cf8582860161309f565b92505060206131e08582860161316d565b9150509250929050565b6131f3816130b3565b82525050565b5f60208201905061320c5f8301846131ea565b92915050565b5f805f6060848603121561322957613228613051565b5b5f6132368682870161309f565b93505060206132478682870161309f565b9250506040613258868287016130d2565b9150509250925092565b5f819050919050565b5f61328561328061327b84613059565b613262565b613059565b9050919050565b5f6132968261326b565b9050919050565b5f6132a78261328c565b9050919050565b6132b78161329d565b82525050565b5f6020820190506132d05f8301846132ae565b92915050565b6132df81613078565b82525050565b5f6020820190506132f85f8301846132d6565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61333882612fe0565b810181811067ffffffffffffffff8211171561335757613356613302565b5b80604052505050565b5f613369613048565b9050613375828261332f565b919050565b5f67ffffffffffffffff82111561339457613393613302565b5b602082029050602081019050919050565b5f80fd5b5f6133bb6133b68461337a565b613360565b905080838252602082019050602084028301858111156133de576133dd6133a5565b5b835b8181101561340757806133f3888261309f565b8452602084019350506020810190506133e0565b5050509392505050565b5f82601f830112613425576134246132fe565b5b81356134358482602086016133a9565b91505092915050565b5f6020828403121561345357613452613051565b5b5f82013567ffffffffffffffff8111156134705761346f613055565b5b61347c84828501613411565b91505092915050565b5f60ff82169050919050565b61349a81613485565b82525050565b5f6020820190506134b35f830184613491565b92915050565b5f602082840312156134ce576134cd613051565b5b5f6134db8482850161309f565b91505092915050565b5f80604083850312156134fa576134f9613051565b5b5f6135078582860161309f565b92505060206135188582860161309f565b9150509250929050565b5f61352c8261328c565b9050919050565b61353c81613522565b82525050565b5f6020820190506135555f830184613533565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061359f57607f821691505b6020821081036135b2576135b161355b565b5b50919050565b7f4e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f6135ec600983612fa8565b91506135f7826135b8565b602082019050919050565b5f6020820190508181035f830152613619816135e0565b9050919050565b7f496e73756666696369656e7420416c6c6f77616e6365000000000000000000005f82015250565b5f613654601683612fa8565b915061365f82613620565b602082019050919050565b5f6020820190508181035f83015261368181613648565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6136bf826130b3565b91506136ca836130b3565b92508282039050818111156136e2576136e1613688565b5b92915050565b7f54726164696e67204c69766520416c72656164790000000000000000000000005f82015250565b5f61371c601483612fa8565b9150613727826136e8565b602082019050919050565b5f6020820190508181035f83015261374981613710565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f6137a061379b6137968461377d565b613262565b6130b3565b9050919050565b6137b081613786565b82525050565b5f6020820190506137c95f8301846137a7565b92915050565b5f6137d9826130b3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361380b5761380a613688565b5b600182019050919050565b5f613820826130b3565b915061382b836130b3565b925082820190508082111561384357613842613688565b5b92915050565b7f616c7265616479207374617274656400000000000000000000000000000000005f82015250565b5f61387d600f83612fa8565b915061388882613849565b602082019050919050565b5f6020820190508181035f8301526138aa81613871565b9050919050565b7f4e6f7420696e2074696d650000000000000000000000000000000000000000005f82015250565b5f6138e5600b83612fa8565b91506138f0826138b1565b602082019050919050565b5f6020820190508181035f830152613912816138d9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613950826130b3565b915061395b836130b3565b92508261396b5761396a613919565b5b828204905092915050565b5f613980826130b3565b915061398b836130b3565b9250828202613999816130b3565b915082820484148315176139b0576139af613688565b5b5092915050565b5f81905092915050565b50565b5f6139cf5f836139b7565b91506139da826139c1565b5f82019050919050565b5f6139ee826139c4565b9150819050919050565b7f4661696c656420746f2073656e642045544820746f206465762077616c6c65745f82015250565b5f613a2c602083612fa8565b9150613a37826139f8565b602082019050919050565b5f6020820190508181035f830152613a5981613a20565b9050919050565b7f4661696c656420746f2073656e642045544820746f20777261707065720000005f82015250565b5f613a94601d83612fa8565b9150613a9f82613a60565b602082019050919050565b5f6020820190508181035f830152613ac181613a88565b9050919050565b7f4c696d69747320616c72656164792072656d6f766564000000000000000000005f82015250565b5f613afc601683612fa8565b9150613b0782613ac8565b602082019050919050565b5f6020820190508181035f830152613b2981613af0565b9050919050565b7f436c61696d206e6f7420656e61626c65640000000000000000000000000000005f82015250565b5f613b64601183612fa8565b9150613b6f82613b30565b602082019050919050565b5f6020820190508181035f830152613b9181613b58565b9050919050565b5f613ba28261328c565b9050919050565b613bb281613b98565b82525050565b5f602082019050613bcb5f830184613ba9565b92915050565b5f81519050613bdf81613157565b92915050565b5f60208284031215613bfa57613bf9613051565b5b5f613c0784828501613bd1565b91505092915050565b7f54726164696e67206e6f74206c697665000000000000000000000000000000005f82015250565b5f613c44601083612fa8565b9150613c4f82613c10565b602082019050919050565b5f6020820190508181035f830152613c7181613c38565b9050919050565b7f4d617820547820457863656564656400000000000000000000000000000000005f82015250565b5f613cac600f83612fa8565b9150613cb782613c78565b602082019050919050565b5f6020820190508181035f830152613cd981613ca0565b9050919050565b7f4d61782057616c6c6574204578636565646564000000000000000000000000005f82015250565b5f613d14601383612fa8565b9150613d1f82613ce0565b602082019050919050565b5f6020820190508181035f830152613d4181613d08565b9050919050565b5f604082019050613d5b5f8301856132d6565b613d6860208301846131ea565b9392505050565b5f8160011c9050919050565b5f808291508390505b6001851115613dc457808604811115613da057613d9f613688565b5b6001851615613daf5780820291505b8081029050613dbd85613d6f565b9450613d84565b94509492505050565b5f82613ddc5760019050613e97565b81613de9575f9050613e97565b8160018114613dff5760028114613e0957613e38565b6001915050613e97565b60ff841115613e1b57613e1a613688565b5b8360020a915084821115613e3257613e31613688565b5b50613e97565b5060208310610133831016604e8410600b8410161715613e6d5782820a905083811115613e6857613e67613688565b5b613e97565b613e7a8484846001613d7b565b92509050818404811115613e9157613e90613688565b5b81810290505b9392505050565b5f613ea8826130b3565b9150613eb383613485565b9250613ee07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613dcd565b905092915050565b5f613ef2826130b3565b9150613efd836130b3565b925082613f0d57613f0c613919565b5b828206905092915050565b5f81519050613f2681613089565b92915050565b5f60208284031215613f4157613f40613051565b5b5f613f4e84828501613f18565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613f8981613078565b82525050565b5f613f9a8383613f80565b60208301905092915050565b5f602082019050919050565b5f613fbc82613f57565b613fc68185613f61565b9350613fd183613f71565b805f5b83811015614001578151613fe88882613f8f565b9750613ff383613fa6565b925050600181019050613fd4565b5085935050505092915050565b5f60a0820190506140215f8301886131ea565b61402e60208301876137a7565b81810360408301526140408186613fb2565b905061404f60608301856132d6565b61405c60808301846131ea565b969550505050505056fea26469706673582212204a1a458e84fd705091179b31b6b1b7a7799cf310bb2217403c2fa0a4507f390264736f6c63430008150033

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

0000000000000000000000009978572adaa17b7813049865a33c85267fa0d8c1

-----Decoded View---------------
Arg [0] : _dividendTracker (address): 0x9978572ADAa17B7813049865a33C85267fa0d8C1

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000009978572adaa17b7813049865a33c85267fa0d8c1


Deployed Bytecode Sourcemap

12698:13401:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3840:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22126:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23700:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17656:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16422:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20682:567;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13409:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23919:140;;;;;;;;;;;;;:::i;:::-;;13920:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13085:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25818:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4026:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21768:350;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14044:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24067:247;;;;;;;;;;;;;:::i;:::-;;14004:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13116:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13308:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23802:109;;;;;;;;;;;;;:::i;:::-;;16857:287;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24322:1041;;;;;;;;;;;;;:::i;:::-;;16715:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5875:126;;;;;;;;;;;;;:::i;:::-;;17473:175;;;;;;;;;;;;;:::i;:::-;;12749:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5686:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12861:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3931:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12975:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21257:503;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13966:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17266:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14084:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23538:154;;;;;;;;;;;;;:::i;:::-;;12796:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12897:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13018:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12828:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16532:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12937:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6009:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13879:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13052:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3840:83;3877:13;3910:5;3903:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3840:83;:::o;22126:241::-;22225:4;22280:5;22242:14;:26;22257:10;22242:26;;;;;;;;;;;;;;;:35;22269:7;22242:35;;;;;;;;;;;;;;;:43;;;;22322:7;22301:36;;22310:10;22301:36;;;22331:5;22301:36;;;;;;:::i;:::-;;;;;;;;22355:4;22348:11;;22126:241;;;;:::o;23700:94::-;5827:6;;;;;;;;;;;5813:20;;:10;:20;;;5805:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;23779:7:::1;23765:11;;:21;;;;;;;;;;;;;;;;;;23700:94:::0;:::o;17656:157::-;5827:6;;;;;;;;;;;5813:20;;:10;:20;;;5805:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;17799:6:::1;17768:18;:28;17787:8;17768:28;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;17656:157:::0;;:::o;16422:102::-;16477:7;16504:12;;16497:19;;16422:102;:::o;20682:567::-;20825:4;20812:2;14530:3;14516:18;;:2;:18;;;14508:27;;;;;;20882:17:::1;20846:14;:20;20861:4;20846:20;;;;;;;;;;;;;;;:32;20867:10;20846:32;;;;;;;;;;;;;;;;:53;20842:337;;20978:5;20942:14;:20;20957:4;20942:20;;;;;;;;;;;;;;;:32;20963:10;20942:32;;;;;;;;;;;;;;;;:41;;20916:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;21161:5;21108:14;:20;21123:4;21108:20;;;;;;;;;;;;;;;:32;21129:10;21108:32;;;;;;;;;;;;;;;;:59;;;;:::i;:::-;21056:14;:20;21071:4;21056:20;;;;;;;;;;;;;;;:32;21077:10;21056:32;;;;;;;;;;;;;;;:111;;;;20842:337;21189:30;21203:4;21209:2;21213:5;21189:13;:30::i;:::-;;21237:4;21230:11;;20682:567:::0;;;;;;:::o;13409:64::-;13451:22;13409:64;:::o;23919:140::-;5827:6;;;;;;;;;;;5813:20;;:10;:20;;;5805:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;23982:13:::1;;;;;;;;;;;23981:14;23973:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;24047:4;24031:13;;:20;;;;;;;;;;;;;;;;;;23919:140::o:0;13920:39::-;;;;;;;;;;;;;:::o;13085:24::-;;;;;;;;;;;;;:::o;25818:241::-;25889:14;25919:9;25931:1;25919:13;;25914:138;25938:7;:14;25934:1;:18;25914:138;;;25983:7;25991:1;25983:10;;;;;;;;:::i;:::-;;;;;;;;25974:19;;26030:6;26013:27;;26022:6;26013:27;;;26038:1;26013:27;;;;;;:::i;:::-;;;;;;;;25954:3;;;;;:::i;:::-;;;;25914:138;;;;25878:181;25818:241;:::o;4026:83::-;4067:5;4092:9;;;;;;;;;;;4085:16;;4026:83;:::o;21768:350::-;21875:4;21995:10;21943:14;:26;21958:10;21943:26;;;;;;;;;;;;;;;:35;21970:7;21943:35;;;;;;;;;;;;;;;;:63;;;;:::i;:::-;21892:14;:26;21907:10;21892:26;;;;;;;;;;;;;;;:35;21919:7;21892:35;;;;;;;;;;;;;;;:114;;;;22043:7;22022:66;;22031:10;22022:66;;;22052:14;:26;22067:10;22052:26;;;;;;;;;;;;;;;:35;22079:7;22052:35;;;;;;;;;;;;;;;;22022:66;;;;;;:::i;:::-;;;;;;;;22106:4;22099:11;;21768:350;;;;:::o;14044:33::-;;;;;;;;;;;;;:::o;24067:247::-;5827:6;;;;;;;;;;;5813:20;;:10;:20;;;5805:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;24135:13:::1;;;;;;;;;;;24134:14;24126:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;24210:15;;24192;:33;;;;:::i;:::-;24179:10;:46;;;;24268:7;24250:15;:25;;;;:::i;:::-;24236:11;:39;;;;24302:4;24286:13;;:20;;;;;;;;;;;;;;;;;;24067:247::o:0;14004:33::-;;;;;;;;;;;;;:::o;13116:27::-;;;;:::o;13308:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;23802:109::-;23854:14;:12;:14::i;:::-;23846:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;23895:8;:6;:8::i;:::-;;23802:109::o;16857:287::-;16902:4;16953:15;16939:10;;:29;;:197;;;;16986:10;;;;;;;;;;;:44;;;;;17017:13;;;;;;;;;;;16986:44;:85;;;;;17070:1;17051:16;;:20;16986:85;:149;;;;;17120:15;17114:2;17092:19;;:24;;;;:::i;:::-;:43;;16986:149;16939:197;16919:217;;16857:287;:::o;24322:1041::-;14623:4;14614:6;;:13;;;;;;;;;;;;;;;;;;24369:23:::1;24395:24;24413:4;24395:9;:24::i;:::-;24369:50;;24453:1;24434:15;:20:::0;24430:59:::1;;24471:7;;;24430:59;24565:2;24546:14:::0;::::1;24524:18;;:37;;;;:::i;:::-;24523:44;;;;:::i;:::-;24505:15;:62;24501:157;;;24644:2;24625:14:::0;::::1;24603:18;;:37;;;;:::i;:::-;24602:44;;;;:::i;:::-;24584:62;;24501:157;24670:22;24695:21;24670:46;;24729:33;24746:15;24729:16;:33::i;:::-;24775:15;24793:21;24775:39;;24827:19;24878:1;24860:14;24850:7;:24;;;;:::i;:::-;24849:30;;;;:::i;:::-;24827:52;;24890:17;24920:11;24910:7;:21;;;;:::i;:::-;24890:41;;24960:1;24948:9;:13;24944:177;;;24979:12;25005:9;;;;;;;;;;;24997:23;;25028:9;24997:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24978:64;;;25065:7;25057:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;24963:158;24944:177;25149:1;25135:11;:15;25131:225;;;25168:12;25202:15;;;;;;;;;;;25186:38;;25250:11;25186:94;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25167:113;;;25303:7;25295:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;25152:204;25131:225;24358:1005;;;;;14638:1;14659:5:::0;14650:6;;:14;;;;;;;;;;;;;;;;;;24322:1041::o;16715:134::-;16777:7;16826:14;;16804:13;:18;16818:3;16804:18;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;16797:44;;16715:134;;;:::o;5875:126::-;5827:6;;;;;;;;;;;5813:20;;:10;:20;;;5805:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;5956:6:::1;;;;;;;;;;;5937:26;;;;;;;;;;;;5991:1;5974:6;;:19;;;;;;;;;;;;;;;;;;5875:126::o:0;17473:175::-;5827:6;;;;;;;;;;;5813:20;;:10;:20;;;5805:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;17535:14:::1;;;;;;;;;;;17527:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;17604:5;17587:14;;:22;;;;;;;;;;;;;;;;;;17625:15;;;;;;;;;;17473:175::o:0;12749:40::-;;;;:::o;5686:79::-;5724:7;5751:6;;;;;;;;;;;5744:13;;5686:79;:::o;12861:29::-;;;;;;;;;;;;;:::o;3931:87::-;3970:13;4003:7;3996:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3931:87;:::o;12975:34::-;;;;:::o;21257:503::-;21369:4;21386:16;21405:14;:26;21420:10;21405:26;;;;;;;;;;;;;;;:35;21432:7;21405:35;;;;;;;;;;;;;;;;21386:54;;21474:8;21455:15;:27;21451:198;;21537:1;21499:14;:26;21514:10;21499:26;;;;;;;;;;;;;;;:35;21526:7;21499:35;;;;;;;;;;;;;;;:39;;;;21451:198;;;21621:15;21609:8;:28;;;;:::i;:::-;21571:14;:26;21586:10;21571:26;;;;;;;;;;;;;;;:35;21598:7;21571:35;;;;;;;;;;;;;;;:66;;;;21451:198;21685:7;21664:66;;21673:10;21664:66;;;21694:14;:26;21709:10;21694:26;;;;;;;;;;;;;;;:35;21721:7;21694:35;;;;;;;;;;;;;;;;21664:66;;;;;;:::i;:::-;;;;;;;;21748:4;21741:11;;;21257:503;;;;:::o;13966:29::-;;;:::o;17266:199::-;17382:4;17369:2;14530:3;14516:18;;:2;:18;;;14508:27;;;;;;17399:36:::1;17413:10;17425:2;17429:5;17399:13;:36::i;:::-;;17453:4;17446:11;;17266:199:::0;;;;;:::o;14084:31::-;;;;;;;;;;;;;:::o;23538:154::-;23589:11;;;;;;;;;;;23581:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;23633:15;;;;;;;;;;;:30;;;23672:10;23633:51;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23538:154::o;12796:25::-;;;;:::o;12897:33::-;;;;;;;;;;;;;:::o;13018:27::-;;;;:::o;12828:26::-;;;;:::o;16532:175::-;16641:7;16668:14;:22;16683:6;16668:22;;;;;;;;;;;;;;;:31;16691:7;16668:31;;;;;;;;;;;;;;;;16661:38;;16532:175;;;;:::o;12937:31::-;;;;:::o;6009:109::-;5827:6;;;;;;;;;;;5813:20;;:10;:20;;;5805:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;6082:28:::1;6101:8;6082:18;:28::i;:::-;6009:109:::0;:::o;13879:34::-;;;:::o;13052:24::-;;;;:::o;17821:2853::-;17947:4;17964:19;17986:4;17964:26;;18022:6;;;;;;;;;;;18021:7;:51;;;;;18046:18;:26;18065:6;18046:26;;;;;;;;;;;;;;;;;;;;;;;;;18045:27;18021:51;:98;;;;;18090:18;:29;18109:9;18090:29;;;;;;;;;;;;;;;;;;;;;;;;;18089:30;18021:98;18003:1878;;;18154:13;;;;;;;;;;;18146:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;18207:14;;;;;;;;;;;18203:440;;;18256:11;18246:21;;:6;:21;;;:49;;;;18284:11;18271:24;;:9;:24;;;18246:49;18242:148;;;18338:12;;18328:6;:22;;18320:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;18242:148;18425:11;18412:24;;:9;:24;;;18408:220;;18528:9;;18518:6;18495:20;18505:9;18495;:20::i;:::-;:29;;;;:::i;:::-;:42;;18461:147;;;;;;;;;;;;:::i;:::-;;;;;;;;;18408:220;18203:440;18676:11;18663:24;;:9;:24;;;18659:358;;18805:14;;18783:18;;:37;;;;:::i;:::-;18734:24;18752:4;18734:9;:24::i;:::-;:86;18708:205;;18867:4;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18863:31;18708:205;18935:14;:12;:14::i;:::-;18931:71;;;18974:8;:6;:8::i;:::-;;18931:71;18659:358;19033:17;19081:11;19071:21;;:6;:21;;;19067:495;;19126:1;19113:9;;:14;;;;;;;:::i;:::-;;;;;;;;19290:3;19227:12;;19215:9;;:24;:49;;19253:11;;19215:49;;;19242:8;;19215:49;19180:6;:85;;;;:::i;:::-;19179:114;;;;:::i;:::-;19146:147;;19067:495;;;19332:11;19319:24;;:9;:24;;;19315:247;;19378:1;19364:10;;:15;;;;;;;:::i;:::-;;;;;;;;19543:3;19480:12;;19467:10;;:25;:50;;19506:11;;19467:50;;;19495:8;;19467:50;19432:6;:86;;;;:::i;:::-;19431:115;;;;:::i;:::-;19398:148;;19315:247;19067:495;19594:1;19582:9;:13;19578:292;;;19654:14;;19642:9;:26;;;;:::i;:::-;19616:13;:21;19630:6;19616:21;;;;;;;;;;;;;;;;:53;;;;;;;:::i;:::-;;;;;;;;19733:14;;19721:9;:26;;;;:::i;:::-;19688:13;:28;19710:4;19688:28;;;;;;;;;;;;;;;;:60;;;;;;;:::i;:::-;;;;;;;;19799:4;19774:42;;19783:6;19774:42;;;19806:9;19774:42;;;;;;:::i;:::-;;;;;;;;19845:9;19835:19;;;;;:::i;:::-;;;19578:292;18131:1750;18003:1878;19928:14;;19919:6;:23;;;;:::i;:::-;19893:13;:21;19907:6;19893:21;;;;;;;;;;;;;;;;:50;;;;;;;:::i;:::-;;;;;;;;19992:14;;19983:6;:23;;;;:::i;:::-;19954:13;:24;19968:9;19954:24;;;;;;;;;;;;;;;;:53;;;;;;;:::i;:::-;;;;;;;;20020:24;20094:12;;14234:8;20048:17;20058:6;20048:9;:17::i;:::-;:29;;;;:::i;:::-;20047:59;;;;:::i;:::-;20020:86;;20119:27;20199:12;;14234:8;20150:20;20160:9;20150;:20::i;:::-;:32;;;;:::i;:::-;20149:62;;;;:::i;:::-;20119:92;;20249:15;;;;;;;;;;;:26;;;20294:6;14234:8;20338:16;13451:22;20320:34;;;;:::i;:::-;20319:48;;;;:::i;:::-;20249:133;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20232:171;20430:15;;;;;;;;;;;:26;;;20475:9;14234:8;20522:19;13451:22;20504:37;;;;:::i;:::-;20503:51;;;;:::i;:::-;20430:139;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20413:177;20624:9;20607:35;;20616:6;20607:35;;;20635:6;20607:35;;;;;;:::i;:::-;;;;;;;;20662:4;20655:11;;;;;17821:2853;;;;;:::o;22375:1155::-;22411:7;22431:12;22446:15;22431:30;;22474:19;22517:3;22512:1;22497:12;;:16;;;;:::i;:::-;22496:24;;;;:::i;:::-;22474:46;;22548:15;22535:10;;:28;22531:231;;;22599:1;22580:16;:20;;;;22629:15;;22615:10;;:29;;;;;;;:::i;:::-;;;;;;;;22531:231;;;22697:1;22677:16;;:21;;;;;;;:::i;:::-;;;;;;;;22735:15;22713:19;:37;;;;22531:231;22793:1;22778:11;:16;22774:114;;22823:4;22816:26;22829:12;;22816:26;;;;;;:::i;:::-;;;;;;;;22864:12;;22857:19;;;;;;22774:114;22930:11;22915:12;;:26;;;;:::i;:::-;22900:12;:41;;;;22972:11;;22958:10;;:25;22954:416;;23013:17;23000:10;:30;;;;23058:5;23045:10;;:18;;;;;;;;;;;;;;;;;;13401:1;13646:2;:14;;;;:::i;:::-;13632:11;:28;;;;:::i;:::-;23078:12;:33;;;;23132:14;;;;;;;;;;;23128:116;;;23184:5;23167:14;;:22;;;;;;;;;;;;;;;;;;23213:15;;;;;;;;;;23128:116;23291:1;23264:24;23282:4;23264:9;:24::i;:::-;:28;23260:99;;;23317:4;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23313:31;23260:99;22954:416;23414:12;;13401:1;13559:2;:14;;;;:::i;:::-;13538:18;:35;;;;:::i;:::-;13736:17;:41;;;;:::i;:::-;13715:17;:63;;;;:::i;:::-;23399:28;;;;:::i;:::-;23382:14;:45;;;;23440:8;:6;:8::i;:::-;23473:4;23466:26;23479:12;;23466:26;;;;;;:::i;:::-;;;;;;;;23510:12;;23503:19;;;;22375:1155;;:::o;25371:439::-;25438:21;25476:1;25462:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25438:40;;25507:4;25489;25494:1;25489:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;25533:6;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25523:4;25528:1;25523:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;25585:6;:57;;;25657:11;25683:1;25720:4;25755;25776:15;25585:217;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25427:383;25371:439;:::o;6126:187::-;6220:1;6200:22;;:8;:22;;;6192:31;;;;;;6268:8;6239:38;;6260:6;;;;;;;;;;;6239:38;;;;;;;;;;;;6297:8;6288:6;;:17;;;;;;;;;;;;;;;;;;6126:187;:::o;17152:106::-;17190:17;17222:4;17190:37;;17238:5;:10;;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17179:79;17152:106::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:323::-;3763:6;3812:2;3800:9;3791:7;3787:23;3783:32;3780:119;;;3818:79;;:::i;:::-;3780:119;3938:1;3963:50;4005:7;3996:6;3985:9;3981:22;3963:50;:::i;:::-;3953:60;;3909:114;3707:323;;;;:::o;4036:468::-;4101:6;4109;4158:2;4146:9;4137:7;4133:23;4129:32;4126:119;;;4164:79;;:::i;:::-;4126:119;4284:1;4309:53;4354:7;4345:6;4334:9;4330:22;4309:53;:::i;:::-;4299:63;;4255:117;4411:2;4437:50;4479:7;4470:6;4459:9;4455:22;4437:50;:::i;:::-;4427:60;;4382:115;4036:468;;;;;:::o;4510:118::-;4597:24;4615:5;4597:24;:::i;:::-;4592:3;4585:37;4510:118;;:::o;4634:222::-;4727:4;4765:2;4754:9;4750:18;4742:26;;4778:71;4846:1;4835:9;4831:17;4822:6;4778:71;:::i;:::-;4634:222;;;;:::o;4862:619::-;4939:6;4947;4955;5004:2;4992:9;4983:7;4979:23;4975:32;4972:119;;;5010:79;;:::i;:::-;4972:119;5130:1;5155:53;5200:7;5191:6;5180:9;5176:22;5155:53;:::i;:::-;5145:63;;5101:117;5257:2;5283:53;5328:7;5319:6;5308:9;5304:22;5283:53;:::i;:::-;5273:63;;5228:118;5385:2;5411:53;5456:7;5447:6;5436:9;5432:22;5411:53;:::i;:::-;5401:63;;5356:118;4862:619;;;;;:::o;5487:60::-;5515:3;5536:5;5529:12;;5487:60;;;:::o;5553:142::-;5603:9;5636:53;5654:34;5663:24;5681:5;5663:24;:::i;:::-;5654:34;:::i;:::-;5636:53;:::i;:::-;5623:66;;5553:142;;;:::o;5701:126::-;5751:9;5784:37;5815:5;5784:37;:::i;:::-;5771:50;;5701:126;;;:::o;5833:150::-;5907:9;5940:37;5971:5;5940:37;:::i;:::-;5927:50;;5833:150;;;:::o;5989:179::-;6100:61;6155:5;6100:61;:::i;:::-;6095:3;6088:74;5989:179;;:::o;6174:270::-;6291:4;6329:2;6318:9;6314:18;6306:26;;6342:95;6434:1;6423:9;6419:17;6410:6;6342:95;:::i;:::-;6174:270;;;;:::o;6450:118::-;6537:24;6555:5;6537:24;:::i;:::-;6532:3;6525:37;6450:118;;:::o;6574:222::-;6667:4;6705:2;6694:9;6690:18;6682:26;;6718:71;6786:1;6775:9;6771:17;6762:6;6718:71;:::i;:::-;6574:222;;;;:::o;6802:117::-;6911:1;6908;6901:12;6925:180;6973:77;6970:1;6963:88;7070:4;7067:1;7060:15;7094:4;7091:1;7084:15;7111:281;7194:27;7216:4;7194:27;:::i;:::-;7186:6;7182:40;7324:6;7312:10;7309:22;7288:18;7276:10;7273:34;7270:62;7267:88;;;7335:18;;:::i;:::-;7267:88;7375:10;7371:2;7364:22;7154:238;7111:281;;:::o;7398:129::-;7432:6;7459:20;;:::i;:::-;7449:30;;7488:33;7516:4;7508:6;7488:33;:::i;:::-;7398:129;;;:::o;7533:311::-;7610:4;7700:18;7692:6;7689:30;7686:56;;;7722:18;;:::i;:::-;7686:56;7772:4;7764:6;7760:17;7752:25;;7832:4;7826;7822:15;7814:23;;7533:311;;;:::o;7850:117::-;7959:1;7956;7949:12;7990:710;8086:5;8111:81;8127:64;8184:6;8127:64;:::i;:::-;8111:81;:::i;:::-;8102:90;;8212:5;8241:6;8234:5;8227:21;8275:4;8268:5;8264:16;8257:23;;8328:4;8320:6;8316:17;8308:6;8304:30;8357:3;8349:6;8346:15;8343:122;;;8376:79;;:::i;:::-;8343:122;8491:6;8474:220;8508:6;8503:3;8500:15;8474:220;;;8583:3;8612:37;8645:3;8633:10;8612:37;:::i;:::-;8607:3;8600:50;8679:4;8674:3;8670:14;8663:21;;8550:144;8534:4;8529:3;8525:14;8518:21;;8474:220;;;8478:21;8092:608;;7990:710;;;;;:::o;8723:370::-;8794:5;8843:3;8836:4;8828:6;8824:17;8820:27;8810:122;;8851:79;;:::i;:::-;8810:122;8968:6;8955:20;8993:94;9083:3;9075:6;9068:4;9060:6;9056:17;8993:94;:::i;:::-;8984:103;;8800:293;8723:370;;;;:::o;9099:539::-;9183:6;9232:2;9220:9;9211:7;9207:23;9203:32;9200:119;;;9238:79;;:::i;:::-;9200:119;9386:1;9375:9;9371:17;9358:31;9416:18;9408:6;9405:30;9402:117;;;9438:79;;:::i;:::-;9402:117;9543:78;9613:7;9604:6;9593:9;9589:22;9543:78;:::i;:::-;9533:88;;9329:302;9099:539;;;;:::o;9644:86::-;9679:7;9719:4;9712:5;9708:16;9697:27;;9644:86;;;:::o;9736:112::-;9819:22;9835:5;9819:22;:::i;:::-;9814:3;9807:35;9736:112;;:::o;9854:214::-;9943:4;9981:2;9970:9;9966:18;9958:26;;9994:67;10058:1;10047:9;10043:17;10034:6;9994:67;:::i;:::-;9854:214;;;;:::o;10074:329::-;10133:6;10182:2;10170:9;10161:7;10157:23;10153:32;10150:119;;;10188:79;;:::i;:::-;10150:119;10308:1;10333:53;10378:7;10369:6;10358:9;10354:22;10333:53;:::i;:::-;10323:63;;10279:117;10074:329;;;;:::o;10409:474::-;10477:6;10485;10534:2;10522:9;10513:7;10509:23;10505:32;10502:119;;;10540:79;;:::i;:::-;10502:119;10660:1;10685:53;10730:7;10721:6;10710:9;10706:22;10685:53;:::i;:::-;10675:63;;10631:117;10787:2;10813:53;10858:7;10849:6;10838:9;10834:22;10813:53;:::i;:::-;10803:63;;10758:118;10409:474;;;;;:::o;10889:144::-;10957:9;10990:37;11021:5;10990:37;:::i;:::-;10977:50;;10889:144;;;:::o;11039:167::-;11144:55;11193:5;11144:55;:::i;:::-;11139:3;11132:68;11039:167;;:::o;11212:258::-;11323:4;11361:2;11350:9;11346:18;11338:26;;11374:89;11460:1;11449:9;11445:17;11436:6;11374:89;:::i;:::-;11212:258;;;;:::o;11476:180::-;11524:77;11521:1;11514:88;11621:4;11618:1;11611:15;11645:4;11642:1;11635:15;11662:320;11706:6;11743:1;11737:4;11733:12;11723:22;;11790:1;11784:4;11780:12;11811:18;11801:81;;11867:4;11859:6;11855:17;11845:27;;11801:81;11929:2;11921:6;11918:14;11898:18;11895:38;11892:84;;11948:18;;:::i;:::-;11892:84;11713:269;11662:320;;;:::o;11988:159::-;12128:11;12124:1;12116:6;12112:14;12105:35;11988:159;:::o;12153:365::-;12295:3;12316:66;12380:1;12375:3;12316:66;:::i;:::-;12309:73;;12391:93;12480:3;12391:93;:::i;:::-;12509:2;12504:3;12500:12;12493:19;;12153:365;;;:::o;12524:419::-;12690:4;12728:2;12717:9;12713:18;12705:26;;12777:9;12771:4;12767:20;12763:1;12752:9;12748:17;12741:47;12805:131;12931:4;12805:131;:::i;:::-;12797:139;;12524:419;;;:::o;12949:172::-;13089:24;13085:1;13077:6;13073:14;13066:48;12949:172;:::o;13127:366::-;13269:3;13290:67;13354:2;13349:3;13290:67;:::i;:::-;13283:74;;13366:93;13455:3;13366:93;:::i;:::-;13484:2;13479:3;13475:12;13468:19;;13127:366;;;:::o;13499:419::-;13665:4;13703:2;13692:9;13688:18;13680:26;;13752:9;13746:4;13742:20;13738:1;13727:9;13723:17;13716:47;13780:131;13906:4;13780:131;:::i;:::-;13772:139;;13499:419;;;:::o;13924:180::-;13972:77;13969:1;13962:88;14069:4;14066:1;14059:15;14093:4;14090:1;14083:15;14110:194;14150:4;14170:20;14188:1;14170:20;:::i;:::-;14165:25;;14204:20;14222:1;14204:20;:::i;:::-;14199:25;;14248:1;14245;14241:9;14233:17;;14272:1;14266:4;14263:11;14260:37;;;14277:18;;:::i;:::-;14260:37;14110:194;;;;:::o;14310:170::-;14450:22;14446:1;14438:6;14434:14;14427:46;14310:170;:::o;14486:366::-;14628:3;14649:67;14713:2;14708:3;14649:67;:::i;:::-;14642:74;;14725:93;14814:3;14725:93;:::i;:::-;14843:2;14838:3;14834:12;14827:19;;14486:366;;;:::o;14858:419::-;15024:4;15062:2;15051:9;15047:18;15039:26;;15111:9;15105:4;15101:20;15097:1;15086:9;15082:17;15075:47;15139:131;15265:4;15139:131;:::i;:::-;15131:139;;14858:419;;;:::o;15283:180::-;15331:77;15328:1;15321:88;15428:4;15425:1;15418:15;15452:4;15449:1;15442:15;15469:85;15514:7;15543:5;15532:16;;15469:85;;;:::o;15560:158::-;15618:9;15651:61;15669:42;15678:32;15704:5;15678:32;:::i;:::-;15669:42;:::i;:::-;15651:61;:::i;:::-;15638:74;;15560:158;;;:::o;15724:147::-;15819:45;15858:5;15819:45;:::i;:::-;15814:3;15807:58;15724:147;;:::o;15877:238::-;15978:4;16016:2;16005:9;16001:18;15993:26;;16029:79;16105:1;16094:9;16090:17;16081:6;16029:79;:::i;:::-;15877:238;;;;:::o;16121:233::-;16160:3;16183:24;16201:5;16183:24;:::i;:::-;16174:33;;16229:66;16222:5;16219:77;16216:103;;16299:18;;:::i;:::-;16216:103;16346:1;16339:5;16335:13;16328:20;;16121:233;;;:::o;16360:191::-;16400:3;16419:20;16437:1;16419:20;:::i;:::-;16414:25;;16453:20;16471:1;16453:20;:::i;:::-;16448:25;;16496:1;16493;16489:9;16482:16;;16517:3;16514:1;16511:10;16508:36;;;16524:18;;:::i;:::-;16508:36;16360:191;;;;:::o;16557:165::-;16697:17;16693:1;16685:6;16681:14;16674:41;16557:165;:::o;16728:366::-;16870:3;16891:67;16955:2;16950:3;16891:67;:::i;:::-;16884:74;;16967:93;17056:3;16967:93;:::i;:::-;17085:2;17080:3;17076:12;17069:19;;16728:366;;;:::o;17100:419::-;17266:4;17304:2;17293:9;17289:18;17281:26;;17353:9;17347:4;17343:20;17339:1;17328:9;17324:17;17317:47;17381:131;17507:4;17381:131;:::i;:::-;17373:139;;17100:419;;;:::o;17525:161::-;17665:13;17661:1;17653:6;17649:14;17642:37;17525:161;:::o;17692:366::-;17834:3;17855:67;17919:2;17914:3;17855:67;:::i;:::-;17848:74;;17931:93;18020:3;17931:93;:::i;:::-;18049:2;18044:3;18040:12;18033:19;;17692:366;;;:::o;18064:419::-;18230:4;18268:2;18257:9;18253:18;18245:26;;18317:9;18311:4;18307:20;18303:1;18292:9;18288:17;18281:47;18345:131;18471:4;18345:131;:::i;:::-;18337:139;;18064:419;;;:::o;18489:180::-;18537:77;18534:1;18527:88;18634:4;18631:1;18624:15;18658:4;18655:1;18648:15;18675:185;18715:1;18732:20;18750:1;18732:20;:::i;:::-;18727:25;;18766:20;18784:1;18766:20;:::i;:::-;18761:25;;18805:1;18795:35;;18810:18;;:::i;:::-;18795:35;18852:1;18849;18845:9;18840:14;;18675:185;;;;:::o;18866:410::-;18906:7;18929:20;18947:1;18929:20;:::i;:::-;18924:25;;18963:20;18981:1;18963:20;:::i;:::-;18958:25;;19018:1;19015;19011:9;19040:30;19058:11;19040:30;:::i;:::-;19029:41;;19219:1;19210:7;19206:15;19203:1;19200:22;19180:1;19173:9;19153:83;19130:139;;19249:18;;:::i;:::-;19130:139;18914:362;18866:410;;;;:::o;19282:147::-;19383:11;19420:3;19405:18;;19282:147;;;;:::o;19435:114::-;;:::o;19555:398::-;19714:3;19735:83;19816:1;19811:3;19735:83;:::i;:::-;19728:90;;19827:93;19916:3;19827:93;:::i;:::-;19945:1;19940:3;19936:11;19929:18;;19555:398;;;:::o;19959:379::-;20143:3;20165:147;20308:3;20165:147;:::i;:::-;20158:154;;20329:3;20322:10;;19959:379;;;:::o;20344:182::-;20484:34;20480:1;20472:6;20468:14;20461:58;20344:182;:::o;20532:366::-;20674:3;20695:67;20759:2;20754:3;20695:67;:::i;:::-;20688:74;;20771:93;20860:3;20771:93;:::i;:::-;20889:2;20884:3;20880:12;20873:19;;20532:366;;;:::o;20904:419::-;21070:4;21108:2;21097:9;21093:18;21085:26;;21157:9;21151:4;21147:20;21143:1;21132:9;21128:17;21121:47;21185:131;21311:4;21185:131;:::i;:::-;21177:139;;20904:419;;;:::o;21329:179::-;21469:31;21465:1;21457:6;21453:14;21446:55;21329:179;:::o;21514:366::-;21656:3;21677:67;21741:2;21736:3;21677:67;:::i;:::-;21670:74;;21753:93;21842:3;21753:93;:::i;:::-;21871:2;21866:3;21862:12;21855:19;;21514:366;;;:::o;21886:419::-;22052:4;22090:2;22079:9;22075:18;22067:26;;22139:9;22133:4;22129:20;22125:1;22114:9;22110:17;22103:47;22167:131;22293:4;22167:131;:::i;:::-;22159:139;;21886:419;;;:::o;22311:172::-;22451:24;22447:1;22439:6;22435:14;22428:48;22311:172;:::o;22489:366::-;22631:3;22652:67;22716:2;22711:3;22652:67;:::i;:::-;22645:74;;22728:93;22817:3;22728:93;:::i;:::-;22846:2;22841:3;22837:12;22830:19;;22489:366;;;:::o;22861:419::-;23027:4;23065:2;23054:9;23050:18;23042:26;;23114:9;23108:4;23104:20;23100:1;23089:9;23085:17;23078:47;23142:131;23268:4;23142:131;:::i;:::-;23134:139;;22861:419;;;:::o;23286:167::-;23426:19;23422:1;23414:6;23410:14;23403:43;23286:167;:::o;23459:366::-;23601:3;23622:67;23686:2;23681:3;23622:67;:::i;:::-;23615:74;;23698:93;23787:3;23698:93;:::i;:::-;23816:2;23811:3;23807:12;23800:19;;23459:366;;;:::o;23831:419::-;23997:4;24035:2;24024:9;24020:18;24012:26;;24084:9;24078:4;24074:20;24070:1;24059:9;24055:17;24048:47;24112:131;24238:4;24112:131;:::i;:::-;24104:139;;23831:419;;;:::o;24256:134::-;24314:9;24347:37;24378:5;24347:37;:::i;:::-;24334:50;;24256:134;;;:::o;24396:147::-;24491:45;24530:5;24491:45;:::i;:::-;24486:3;24479:58;24396:147;;:::o;24549:238::-;24650:4;24688:2;24677:9;24673:18;24665:26;;24701:79;24777:1;24766:9;24762:17;24753:6;24701:79;:::i;:::-;24549:238;;;;:::o;24793:137::-;24847:5;24878:6;24872:13;24863:22;;24894:30;24918:5;24894:30;:::i;:::-;24793:137;;;;:::o;24936:345::-;25003:6;25052:2;25040:9;25031:7;25027:23;25023:32;25020:119;;;25058:79;;:::i;:::-;25020:119;25178:1;25203:61;25256:7;25247:6;25236:9;25232:22;25203:61;:::i;:::-;25193:71;;25149:125;24936:345;;;;:::o;25287:166::-;25427:18;25423:1;25415:6;25411:14;25404:42;25287:166;:::o;25459:366::-;25601:3;25622:67;25686:2;25681:3;25622:67;:::i;:::-;25615:74;;25698:93;25787:3;25698:93;:::i;:::-;25816:2;25811:3;25807:12;25800:19;;25459:366;;;:::o;25831:419::-;25997:4;26035:2;26024:9;26020:18;26012:26;;26084:9;26078:4;26074:20;26070:1;26059:9;26055:17;26048:47;26112:131;26238:4;26112:131;:::i;:::-;26104:139;;25831:419;;;:::o;26256:165::-;26396:17;26392:1;26384:6;26380:14;26373:41;26256:165;:::o;26427:366::-;26569:3;26590:67;26654:2;26649:3;26590:67;:::i;:::-;26583:74;;26666:93;26755:3;26666:93;:::i;:::-;26784:2;26779:3;26775:12;26768:19;;26427:366;;;:::o;26799:419::-;26965:4;27003:2;26992:9;26988:18;26980:26;;27052:9;27046:4;27042:20;27038:1;27027:9;27023:17;27016:47;27080:131;27206:4;27080:131;:::i;:::-;27072:139;;26799:419;;;:::o;27224:169::-;27364:21;27360:1;27352:6;27348:14;27341:45;27224:169;:::o;27399:366::-;27541:3;27562:67;27626:2;27621:3;27562:67;:::i;:::-;27555:74;;27638:93;27727:3;27638:93;:::i;:::-;27756:2;27751:3;27747:12;27740:19;;27399:366;;;:::o;27771:419::-;27937:4;27975:2;27964:9;27960:18;27952:26;;28024:9;28018:4;28014:20;28010:1;27999:9;27995:17;27988:47;28052:131;28178:4;28052:131;:::i;:::-;28044:139;;27771:419;;;:::o;28196:332::-;28317:4;28355:2;28344:9;28340:18;28332:26;;28368:71;28436:1;28425:9;28421:17;28412:6;28368:71;:::i;:::-;28449:72;28517:2;28506:9;28502:18;28493:6;28449:72;:::i;:::-;28196:332;;;;;:::o;28534:102::-;28576:8;28623:5;28620:1;28616:13;28595:34;;28534:102;;;:::o;28642:848::-;28703:5;28710:4;28734:6;28725:15;;28758:5;28749:14;;28772:712;28793:1;28783:8;28780:15;28772:712;;;28888:4;28883:3;28879:14;28873:4;28870:24;28867:50;;;28897:18;;:::i;:::-;28867:50;28947:1;28937:8;28933:16;28930:451;;;29362:4;29355:5;29351:16;29342:25;;28930:451;29412:4;29406;29402:15;29394:23;;29442:32;29465:8;29442:32;:::i;:::-;29430:44;;28772:712;;;28642:848;;;;;;;:::o;29496:1073::-;29550:5;29741:8;29731:40;;29762:1;29753:10;;29764:5;;29731:40;29790:4;29780:36;;29807:1;29798:10;;29809:5;;29780:36;29876:4;29924:1;29919:27;;;;29960:1;29955:191;;;;29869:277;;29919:27;29937:1;29928:10;;29939:5;;;29955:191;30000:3;29990:8;29987:17;29984:43;;;30007:18;;:::i;:::-;29984:43;30056:8;30053:1;30049:16;30040:25;;30091:3;30084:5;30081:14;30078:40;;;30098:18;;:::i;:::-;30078:40;30131:5;;;29869:277;;30255:2;30245:8;30242:16;30236:3;30230:4;30227:13;30223:36;30205:2;30195:8;30192:16;30187:2;30181:4;30178:12;30174:35;30158:111;30155:246;;;30311:8;30305:4;30301:19;30292:28;;30346:3;30339:5;30336:14;30333:40;;;30353:18;;:::i;:::-;30333:40;30386:5;;30155:246;30426:42;30464:3;30454:8;30448:4;30445:1;30426:42;:::i;:::-;30411:57;;;;30500:4;30495:3;30491:14;30484:5;30481:25;30478:51;;;30509:18;;:::i;:::-;30478:51;30558:4;30551:5;30547:16;30538:25;;29496:1073;;;;;;:::o;30575:281::-;30633:5;30657:23;30675:4;30657:23;:::i;:::-;30649:31;;30701:25;30717:8;30701:25;:::i;:::-;30689:37;;30745:104;30782:66;30772:8;30766:4;30745:104;:::i;:::-;30736:113;;30575:281;;;;:::o;30862:176::-;30894:1;30911:20;30929:1;30911:20;:::i;:::-;30906:25;;30945:20;30963:1;30945:20;:::i;:::-;30940:25;;30984:1;30974:35;;30989:18;;:::i;:::-;30974:35;31030:1;31027;31023:9;31018:14;;30862:176;;;;:::o;31044:143::-;31101:5;31132:6;31126:13;31117:22;;31148:33;31175:5;31148:33;:::i;:::-;31044:143;;;;:::o;31193:351::-;31263:6;31312:2;31300:9;31291:7;31287:23;31283:32;31280:119;;;31318:79;;:::i;:::-;31280:119;31438:1;31463:64;31519:7;31510:6;31499:9;31495:22;31463:64;:::i;:::-;31453:74;;31409:128;31193:351;;;;:::o;31550:114::-;31617:6;31651:5;31645:12;31635:22;;31550:114;;;:::o;31670:184::-;31769:11;31803:6;31798:3;31791:19;31843:4;31838:3;31834:14;31819:29;;31670:184;;;;:::o;31860:132::-;31927:4;31950:3;31942:11;;31980:4;31975:3;31971:14;31963:22;;31860:132;;;:::o;31998:108::-;32075:24;32093:5;32075:24;:::i;:::-;32070:3;32063:37;31998:108;;:::o;32112:179::-;32181:10;32202:46;32244:3;32236:6;32202:46;:::i;:::-;32280:4;32275:3;32271:14;32257:28;;32112:179;;;;:::o;32297:113::-;32367:4;32399;32394:3;32390:14;32382:22;;32297:113;;;:::o;32446:732::-;32565:3;32594:54;32642:5;32594:54;:::i;:::-;32664:86;32743:6;32738:3;32664:86;:::i;:::-;32657:93;;32774:56;32824:5;32774:56;:::i;:::-;32853:7;32884:1;32869:284;32894:6;32891:1;32888:13;32869:284;;;32970:6;32964:13;32997:63;33056:3;33041:13;32997:63;:::i;:::-;32990:70;;33083:60;33136:6;33083:60;:::i;:::-;33073:70;;32929:224;32916:1;32913;32909:9;32904:14;;32869:284;;;32873:14;33169:3;33162:10;;32570:608;;;32446:732;;;;:::o;33184:831::-;33447:4;33485:3;33474:9;33470:19;33462:27;;33499:71;33567:1;33556:9;33552:17;33543:6;33499:71;:::i;:::-;33580:80;33656:2;33645:9;33641:18;33632:6;33580:80;:::i;:::-;33707:9;33701:4;33697:20;33692:2;33681:9;33677:18;33670:48;33735:108;33838:4;33829:6;33735:108;:::i;:::-;33727:116;;33853:72;33921:2;33910:9;33906:18;33897:6;33853:72;:::i;:::-;33935:73;34003:3;33992:9;33988:19;33979:6;33935:73;:::i;:::-;33184:831;;;;;;;;:::o

Swarm Source

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