ETH Price: $3,353.51 (+0.16%)
Gas: 9 Gwei

Token

Staked BRRR Token (sBRRR)
 

Overview

Max Total Supply

4,394,393.035028278354 sBRRR

Holders

11

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
499,817.000000000004 sBRRR

Value
$0.00
0x3ae9067b3c6001455ecd8e9bd194ed3c34271aa1
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:
sBRRRToken

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// File: @openzeppelin/contracts/utils/Context.sol


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

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

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

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol


// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

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

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

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

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

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

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

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

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

// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;


/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

// File: @openzeppelin/contracts/token/ERC20/ERC20.sol


// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;




/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

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

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

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

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

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

// File: contracts/BRRRToken.sol


pragma solidity ^0.8.0;


contract BRRRToken is ERC20 {
    uint256 private constant INITIAL_SUPPLY = 100_000_000 * (10 ** 18); // 100 million tokens
    uint256 private constant SPECIAL_RULE_DURATION = 24 hours;
    uint256 private constant MAX_BALANCE_PERCENT = 5; // 0.5% of total supply
    uint256 private constant MAX_TX_AMOUNT_PERCENT = 1; // 0.1% of total supply

    uint256 private _deploymentTimestamp;
    address private _sBRRRContract;
    address private _w1;

    constructor(address wallet) ERC20("BRRR Token", "BRRR") {
        _deploymentTimestamp = block.timestamp;
        _w1 = wallet;
        _mint(wallet, INITIAL_SUPPLY);
    }

    modifier onlySBRRR() {
        require(msg.sender == _sBRRRContract, "Only the sBRRR contract can call this function");
        _;
    }

    function setSBRRRContract(address sBRRRContract) external {
        require(_sBRRRContract == address(0), "sBRRR contract address has already been set");
        _sBRRRContract = sBRRRContract;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal virtual override {
        if (block.timestamp < _deploymentTimestamp + SPECIAL_RULE_DURATION && sender != _w1 && recipient != _w1) {
            require(
                balanceOf(recipient) + amount <= (INITIAL_SUPPLY * MAX_BALANCE_PERCENT) / 1000,
                "New balance cannot exceed 0.5% of the total supply during the first 24 hours"
            );

            require(
                amount <= (INITIAL_SUPPLY * MAX_TX_AMOUNT_PERCENT) / 1000,
                "Transaction amount cannot exceed 0.1% of the total supply during the first 24 hours"
            );
        }

        super._transfer(sender, recipient, amount);
    }

    function mint(address account, uint256 amount) external onlySBRRR {
        _mint(account, amount);
    }
}

// File: contracts/sBRRRToken.sol


pragma solidity ^0.8.0;



contract sBRRRToken is ERC20 {
    uint256 private constant BURN_RATE = 25; // 25% burn rate
    uint256 private constant CONVERSION_MAX_PERIOD = 24 * 60 * 60; // 24 hours in seconds

    BRRRToken private _brrrToken;
    mapping(address => bool) private _minters;

    address private _bankAddress;
    address private _cbankAddress;
    address private _printerAddress;

    struct Conversion {
        uint256 amount;
        uint256 timestamp;
    }

    mapping(address => Conversion[]) public conversionRecords;

    constructor(BRRRToken brrrToken) ERC20("Staked BRRR Token", "sBRRR") { //TEMPORARY PARAM ADDRESS
        _brrrToken = brrrToken;
        _minters[msg.sender] = true; // Grant minting permission to the contract deployer
    }

    function setTokenAddresses(address bankAddress, address cbankAddress, address printerAddress) external onlyMinter {
        _bankAddress = bankAddress;
        _cbankAddress = cbankAddress;
        _printerAddress = printerAddress;
        _minters[bankAddress] = true;
        _minters[cbankAddress] = true;
        _minters[printerAddress] = true;
    }

    modifier onlyMinter() {
        require(_minters[msg.sender], "Only minters can call this function");
        _;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal virtual override {
        uint256 burnAmount = (amount * BURN_RATE) / 100;
        uint256 transferAmount = amount - burnAmount;

        super._transfer(sender, recipient, transferAmount);
        super._burn(sender, burnAmount);
    }

    function _eraseExpiredConversions(address account) private {
        uint256 i = 0;
        while (i < conversionRecords[account].length) {
            if (block.timestamp - conversionRecords[account][i].timestamp > CONVERSION_MAX_PERIOD) {
                // Remove expired conversion record by shifting all elements to the left
                for (uint256 j = i; j < conversionRecords[account].length - 1; j++) {
                    conversionRecords[account][j] = conversionRecords[account][j + 1];
                }
                conversionRecords[account].pop(); // Remove last element after shifting
            } else {
                i++; // Only increment if the current record is not expired
            }
        }
    }

    function convertToBRRR(uint256 sBRRRAmount) external {
        require(sBRRRAmount <= getCurrentConversionMax(msg.sender), "Conversion exceeds maximum allowed in 24-hour period");

        uint256 brrrAmount = (sBRRRAmount * (100 - BURN_RATE)) / 100;
        _burn(msg.sender, sBRRRAmount);
        _brrrToken.mint(msg.sender, brrrAmount);

        Conversion memory newConversion = Conversion({
            amount: sBRRRAmount,
            timestamp: block.timestamp
        });

        conversionRecords[msg.sender].push(newConversion);
        _eraseExpiredConversions(msg.sender); // Erase expired conversions for the user
    }

    function getConversionMax(address account) public view returns (uint256) {
        uint256 bankBalance = ERC20(_bankAddress).balanceOf(account);
        uint256 cbankBalance = ERC20(_cbankAddress).balanceOf(account);
        uint256 printerBalance = ERC20(_printerAddress).balanceOf(account);
        return (50000 * 10**18 * bankBalance) + (500000 * 10**18 * cbankBalance) + (1000000 * 10**18 * printerBalance);
    }

    function getCurrentConversionMax(address account) public view returns (uint256) {
        uint256 conversionMax = getConversionMax(account);
        uint256 sumOfConversions = 0;

        for (uint256 i = 0; i < conversionRecords[account].length; i++) {
            if ((block.timestamp - conversionRecords[account][i].timestamp) <= CONVERSION_MAX_PERIOD) {
                sumOfConversions += conversionRecords[account][i].amount;
            }
        }
        if (sumOfConversions >= conversionMax) {
            return 0;
        } else {
            return conversionMax - sumOfConversions;
        }
    }

    function mint(address account, uint256 amount) external onlyMinter {
        _mint(account, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract BRRRToken","name":"brrrToken","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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"conversionRecords","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"sBRRRAmount","type":"uint256"}],"name":"convertToBRRR","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getConversionMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentConversionMax","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":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"bankAddress","type":"address"},{"internalType":"address","name":"cbankAddress","type":"address"},{"internalType":"address","name":"printerAddress","type":"address"}],"name":"setTokenAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","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":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162002d3038038062002d308339818101604052810190620000379190620001e7565b6040518060400160405280601181526020017f5374616b6564204252525220546f6b656e0000000000000000000000000000008152506040518060400160405280600581526020017f73425252520000000000000000000000000000000000000000000000000000008152508160039081620000b4919062000493565b508060049081620000c6919062000493565b50505080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550506200057a565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200019b826200016e565b9050919050565b6000620001af826200018e565b9050919050565b620001c181620001a2565b8114620001cd57600080fd5b50565b600081519050620001e181620001b6565b92915050565b6000602082840312156200020057620001ff62000169565b5b60006200021084828501620001d0565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200029b57607f821691505b602082108103620002b157620002b062000253565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200031b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002dc565b620003278683620002dc565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003746200036e62000368846200033f565b62000349565b6200033f565b9050919050565b6000819050919050565b620003908362000353565b620003a86200039f826200037b565b848454620002e9565b825550505050565b600090565b620003bf620003b0565b620003cc81848462000385565b505050565b5b81811015620003f457620003e8600082620003b5565b600181019050620003d2565b5050565b601f82111562000443576200040d81620002b7565b6200041884620002cc565b8101602085101562000428578190505b620004406200043785620002cc565b830182620003d1565b50505b505050565b600082821c905092915050565b6000620004686000198460080262000448565b1980831691505092915050565b600062000483838362000455565b9150826002028217905092915050565b6200049e8262000219565b67ffffffffffffffff811115620004ba57620004b962000224565b5b620004c6825462000282565b620004d3828285620003f8565b600060209050601f8311600181146200050b5760008415620004f6578287015190505b62000502858262000475565b86555062000572565b601f1984166200051b86620002b7565b60005b8281101562000545578489015182556001820191506020850194506020810190506200051e565b8683101562000565578489015162000561601f89168262000455565b8355505b6001600288020188555050505b505050505050565b6127a6806200058a6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806340c10f19116100a257806395d89b411161007157806395d89b41146102de578063a457c2d7146102fc578063a9059cbb1461032c578063d839097f1461035c578063dd62ed3e1461038d5761010b565b806340c10f19146102465780634b93277c146102625780634d3f9d3e1461029257806370a08231146102ae5761010b565b806323b872dd116100de57806323b872dd14610198578063313ce567146101c857806334d86100146101e657806339509351146102165761010b565b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015e5780631ef1b8541461017c575b600080fd5b6101186103bd565b6040516101259190611b15565b60405180910390f35b61014860048036038101906101439190611bd0565b61044f565b6040516101559190611c2b565b60405180910390f35b610166610472565b6040516101739190611c55565b60405180910390f35b61019660048036038101906101919190611c70565b61047c565b005b6101b260048036038101906101ad9190611c9d565b61062f565b6040516101bf9190611c2b565b60405180910390f35b6101d061065e565b6040516101dd9190611d0c565b60405180910390f35b61020060048036038101906101fb9190611d27565b610667565b60405161020d9190611c55565b60405180910390f35b610230600480360381019061022b9190611bd0565b6108a8565b60405161023d9190611c2b565b60405180910390f35b610260600480360381019061025b9190611bd0565b6108df565b005b61027c60048036038101906102779190611d27565b610979565b6040516102899190611c55565b60405180910390f35b6102ac60048036038101906102a79190611d54565b610af9565b005b6102c860048036038101906102c39190611d27565b610d55565b6040516102d59190611c55565b60405180910390f35b6102e6610d9d565b6040516102f39190611b15565b60405180910390f35b61031660048036038101906103119190611bd0565b610e2f565b6040516103239190611c2b565b60405180910390f35b61034660048036038101906103419190611bd0565b610ea6565b6040516103539190611c2b565b60405180910390f35b61037660048036038101906103719190611bd0565b610ec9565b604051610384929190611da7565b60405180910390f35b6103a760048036038101906103a29190611dd0565b610f0a565b6040516103b49190611c55565b60405180910390f35b6060600380546103cc90611e3f565b80601f01602080910402602001604051908101604052809291908181526020018280546103f890611e3f565b80156104455780601f1061041a57610100808354040283529160200191610445565b820191906000526020600020905b81548152906001019060200180831161042857829003601f168201915b5050505050905090565b60008061045a610f91565b9050610467818585610f99565b600191505092915050565b6000600254905090565b61048533610979565b8111156104c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104be90611ee2565b60405180910390fd5b60006064601960646104d99190611f31565b836104e49190611f65565b6104ee9190611fd6565b90506104fa3383611162565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933836040518363ffffffff1660e01b8152600401610557929190612016565b600060405180830381600087803b15801561057157600080fd5b505af1158015610585573d6000803e3d6000fd5b5050505060006040518060400160405280848152602001428152509050600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010155505061062a3361132f565b505050565b60008061063a610f91565b90506106478582856115da565b610652858585611666565b60019150509392505050565b60006012905090565b600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b81526004016106c5919061203f565b602060405180830381865afa1580156106e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610706919061206f565b90506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401610765919061203f565b602060405180830381865afa158015610782573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a6919061206f565b90506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401610805919061203f565b602060405180830381865afa158015610822573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610846919061206f565b90508069d3c21bcecceda100000061085e9190611f65565b826969e10de76676d08000006108749190611f65565b84690a968163f0a57b40000061088a9190611f65565b610894919061209c565b61089e919061209c565b9350505050919050565b6000806108b3610f91565b90506108d48185856108c58589610f0a565b6108cf919061209c565b610f99565b600191505092915050565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661096b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096290612142565b60405180910390fd5b61097582826116af565b5050565b60008061098583610667565b90506000805b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015610ad05762015180600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610a2a57610a29612162565b5b90600052602060002090600202016001015442610a479190611f31565b11610abd57600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110610a9d57610a9c612162565b5b90600052602060002090600202016000015482610aba919061209c565b91505b8080610ac890612191565b91505061098b565b50818110610ae357600092505050610af4565b8082610aef9190611f31565b925050505b919050565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c90612142565b60405180910390fd5b82600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054610dac90611e3f565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd890611e3f565b8015610e255780601f10610dfa57610100808354040283529160200191610e25565b820191906000526020600020905b815481529060010190602001808311610e0857829003601f168201915b5050505050905090565b600080610e3a610f91565b90506000610e488286610f0a565b905083811015610e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e849061224b565b60405180910390fd5b610e9a8286868403610f99565b60019250505092915050565b600080610eb1610f91565b9050610ebe818585611666565b600191505092915050565b600a6020528160005260406000208181548110610ee557600080fd5b9060005260206000209060020201600091509150508060000154908060010154905082565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fff906122dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106e9061236f565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111559190611c55565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c890612401565b60405180910390fd5b6111dd82600083611805565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611263576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125a90612493565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113169190611c55565b60405180910390a361132a8360008461180a565b505050565b60005b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156115d65762015180600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106113d1576113d0612162565b5b906000526020600020906002020160010154426113ee9190611f31565b11156115c25760008190505b6001600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506114499190611f31565b81101561154457600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060018261149c919061209c565b815481106114ad576114ac612162565b5b9060005260206000209060020201600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061150c5761150b612162565b5b90600052602060002090600202016000820154816000015560018201548160010155905050808061153c90612191565b9150506113fa565b50600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480611594576115936124b3565b5b60019003818190600052602060002090600202016000808201600090556001820160009055505090556115d1565b80806115cd90612191565b9150505b611332565b5050565b60006115e68484610f0a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116605781811015611652576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116499061252e565b60405180910390fd5b61165f8484848403610f99565b5b50505050565b600060646019836116779190611f65565b6116819190611fd6565b9050600081836116919190611f31565b905061169e85858361180f565b6116a88583611162565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361171e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117159061259a565b60405180910390fd5b61172a60008383611805565b806002600082825461173c919061209c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117ed9190611c55565b60405180910390a36118016000838361180a565b5050565b505050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361187e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118759061262c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e4906126be565b60405180910390fd5b6118f8838383611805565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561197e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197590612750565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a6c9190611c55565b60405180910390a3611a7f84848461180a565b50505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611abf578082015181840152602081019050611aa4565b60008484015250505050565b6000601f19601f8301169050919050565b6000611ae782611a85565b611af18185611a90565b9350611b01818560208601611aa1565b611b0a81611acb565b840191505092915050565b60006020820190508181036000830152611b2f8184611adc565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611b6782611b3c565b9050919050565b611b7781611b5c565b8114611b8257600080fd5b50565b600081359050611b9481611b6e565b92915050565b6000819050919050565b611bad81611b9a565b8114611bb857600080fd5b50565b600081359050611bca81611ba4565b92915050565b60008060408385031215611be757611be6611b37565b5b6000611bf585828601611b85565b9250506020611c0685828601611bbb565b9150509250929050565b60008115159050919050565b611c2581611c10565b82525050565b6000602082019050611c406000830184611c1c565b92915050565b611c4f81611b9a565b82525050565b6000602082019050611c6a6000830184611c46565b92915050565b600060208284031215611c8657611c85611b37565b5b6000611c9484828501611bbb565b91505092915050565b600080600060608486031215611cb657611cb5611b37565b5b6000611cc486828701611b85565b9350506020611cd586828701611b85565b9250506040611ce686828701611bbb565b9150509250925092565b600060ff82169050919050565b611d0681611cf0565b82525050565b6000602082019050611d216000830184611cfd565b92915050565b600060208284031215611d3d57611d3c611b37565b5b6000611d4b84828501611b85565b91505092915050565b600080600060608486031215611d6d57611d6c611b37565b5b6000611d7b86828701611b85565b9350506020611d8c86828701611b85565b9250506040611d9d86828701611b85565b9150509250925092565b6000604082019050611dbc6000830185611c46565b611dc96020830184611c46565b9392505050565b60008060408385031215611de757611de6611b37565b5b6000611df585828601611b85565b9250506020611e0685828601611b85565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611e5757607f821691505b602082108103611e6a57611e69611e10565b5b50919050565b7f436f6e76657273696f6e2065786365656473206d6178696d756d20616c6c6f7760008201527f656420696e2032342d686f757220706572696f64000000000000000000000000602082015250565b6000611ecc603483611a90565b9150611ed782611e70565b604082019050919050565b60006020820190508181036000830152611efb81611ebf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611f3c82611b9a565b9150611f4783611b9a565b9250828203905081811115611f5f57611f5e611f02565b5b92915050565b6000611f7082611b9a565b9150611f7b83611b9a565b9250828202611f8981611b9a565b91508282048414831517611fa057611f9f611f02565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611fe182611b9a565b9150611fec83611b9a565b925082611ffc57611ffb611fa7565b5b828204905092915050565b61201081611b5c565b82525050565b600060408201905061202b6000830185612007565b6120386020830184611c46565b9392505050565b60006020820190506120546000830184612007565b92915050565b60008151905061206981611ba4565b92915050565b60006020828403121561208557612084611b37565b5b60006120938482850161205a565b91505092915050565b60006120a782611b9a565b91506120b283611b9a565b92508282019050808211156120ca576120c9611f02565b5b92915050565b7f4f6e6c79206d696e746572732063616e2063616c6c20746869732066756e637460008201527f696f6e0000000000000000000000000000000000000000000000000000000000602082015250565b600061212c602383611a90565b9150612137826120d0565b604082019050919050565b6000602082019050818103600083015261215b8161211f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061219c82611b9a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036121ce576121cd611f02565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612235602583611a90565b9150612240826121d9565b604082019050919050565b6000602082019050818103600083015261226481612228565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006122c7602483611a90565b91506122d28261226b565b604082019050919050565b600060208201905081810360008301526122f6816122ba565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612359602283611a90565b9150612364826122fd565b604082019050919050565b600060208201905081810360008301526123888161234c565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006123eb602183611a90565b91506123f68261238f565b604082019050919050565b6000602082019050818103600083015261241a816123de565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061247d602283611a90565b915061248882612421565b604082019050919050565b600060208201905081810360008301526124ac81612470565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612518601d83611a90565b9150612523826124e2565b602082019050919050565b600060208201905081810360008301526125478161250b565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000612584601f83611a90565b915061258f8261254e565b602082019050919050565b600060208201905081810360008301526125b381612577565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612616602583611a90565b9150612621826125ba565b604082019050919050565b6000602082019050818103600083015261264581612609565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006126a8602383611a90565b91506126b38261264c565b604082019050919050565b600060208201905081810360008301526126d78161269b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061273a602683611a90565b9150612745826126de565b604082019050919050565b600060208201905081810360008301526127698161272d565b905091905056fea2646970667358221220a6f1b0e8086596b462c191f24a2bd7e273c5a8cc745f7bf3cd4bd33bcde7b8bf64736f6c634300081200330000000000000000000000002368fd5f713de6a81acc662ae4334afba5055758

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806340c10f19116100a257806395d89b411161007157806395d89b41146102de578063a457c2d7146102fc578063a9059cbb1461032c578063d839097f1461035c578063dd62ed3e1461038d5761010b565b806340c10f19146102465780634b93277c146102625780634d3f9d3e1461029257806370a08231146102ae5761010b565b806323b872dd116100de57806323b872dd14610198578063313ce567146101c857806334d86100146101e657806339509351146102165761010b565b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015e5780631ef1b8541461017c575b600080fd5b6101186103bd565b6040516101259190611b15565b60405180910390f35b61014860048036038101906101439190611bd0565b61044f565b6040516101559190611c2b565b60405180910390f35b610166610472565b6040516101739190611c55565b60405180910390f35b61019660048036038101906101919190611c70565b61047c565b005b6101b260048036038101906101ad9190611c9d565b61062f565b6040516101bf9190611c2b565b60405180910390f35b6101d061065e565b6040516101dd9190611d0c565b60405180910390f35b61020060048036038101906101fb9190611d27565b610667565b60405161020d9190611c55565b60405180910390f35b610230600480360381019061022b9190611bd0565b6108a8565b60405161023d9190611c2b565b60405180910390f35b610260600480360381019061025b9190611bd0565b6108df565b005b61027c60048036038101906102779190611d27565b610979565b6040516102899190611c55565b60405180910390f35b6102ac60048036038101906102a79190611d54565b610af9565b005b6102c860048036038101906102c39190611d27565b610d55565b6040516102d59190611c55565b60405180910390f35b6102e6610d9d565b6040516102f39190611b15565b60405180910390f35b61031660048036038101906103119190611bd0565b610e2f565b6040516103239190611c2b565b60405180910390f35b61034660048036038101906103419190611bd0565b610ea6565b6040516103539190611c2b565b60405180910390f35b61037660048036038101906103719190611bd0565b610ec9565b604051610384929190611da7565b60405180910390f35b6103a760048036038101906103a29190611dd0565b610f0a565b6040516103b49190611c55565b60405180910390f35b6060600380546103cc90611e3f565b80601f01602080910402602001604051908101604052809291908181526020018280546103f890611e3f565b80156104455780601f1061041a57610100808354040283529160200191610445565b820191906000526020600020905b81548152906001019060200180831161042857829003601f168201915b5050505050905090565b60008061045a610f91565b9050610467818585610f99565b600191505092915050565b6000600254905090565b61048533610979565b8111156104c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104be90611ee2565b60405180910390fd5b60006064601960646104d99190611f31565b836104e49190611f65565b6104ee9190611fd6565b90506104fa3383611162565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933836040518363ffffffff1660e01b8152600401610557929190612016565b600060405180830381600087803b15801561057157600080fd5b505af1158015610585573d6000803e3d6000fd5b5050505060006040518060400160405280848152602001428152509050600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010155505061062a3361132f565b505050565b60008061063a610f91565b90506106478582856115da565b610652858585611666565b60019150509392505050565b60006012905090565b600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b81526004016106c5919061203f565b602060405180830381865afa1580156106e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610706919061206f565b90506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401610765919061203f565b602060405180830381865afa158015610782573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a6919061206f565b90506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401610805919061203f565b602060405180830381865afa158015610822573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610846919061206f565b90508069d3c21bcecceda100000061085e9190611f65565b826969e10de76676d08000006108749190611f65565b84690a968163f0a57b40000061088a9190611f65565b610894919061209c565b61089e919061209c565b9350505050919050565b6000806108b3610f91565b90506108d48185856108c58589610f0a565b6108cf919061209c565b610f99565b600191505092915050565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661096b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096290612142565b60405180910390fd5b61097582826116af565b5050565b60008061098583610667565b90506000805b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015610ad05762015180600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610a2a57610a29612162565b5b90600052602060002090600202016001015442610a479190611f31565b11610abd57600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110610a9d57610a9c612162565b5b90600052602060002090600202016000015482610aba919061209c565b91505b8080610ac890612191565b91505061098b565b50818110610ae357600092505050610af4565b8082610aef9190611f31565b925050505b919050565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c90612142565b60405180910390fd5b82600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054610dac90611e3f565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd890611e3f565b8015610e255780601f10610dfa57610100808354040283529160200191610e25565b820191906000526020600020905b815481529060010190602001808311610e0857829003601f168201915b5050505050905090565b600080610e3a610f91565b90506000610e488286610f0a565b905083811015610e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e849061224b565b60405180910390fd5b610e9a8286868403610f99565b60019250505092915050565b600080610eb1610f91565b9050610ebe818585611666565b600191505092915050565b600a6020528160005260406000208181548110610ee557600080fd5b9060005260206000209060020201600091509150508060000154908060010154905082565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fff906122dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106e9061236f565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111559190611c55565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c890612401565b60405180910390fd5b6111dd82600083611805565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611263576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125a90612493565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113169190611c55565b60405180910390a361132a8360008461180a565b505050565b60005b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156115d65762015180600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106113d1576113d0612162565b5b906000526020600020906002020160010154426113ee9190611f31565b11156115c25760008190505b6001600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506114499190611f31565b81101561154457600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060018261149c919061209c565b815481106114ad576114ac612162565b5b9060005260206000209060020201600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061150c5761150b612162565b5b90600052602060002090600202016000820154816000015560018201548160010155905050808061153c90612191565b9150506113fa565b50600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480611594576115936124b3565b5b60019003818190600052602060002090600202016000808201600090556001820160009055505090556115d1565b80806115cd90612191565b9150505b611332565b5050565b60006115e68484610f0a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116605781811015611652576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116499061252e565b60405180910390fd5b61165f8484848403610f99565b5b50505050565b600060646019836116779190611f65565b6116819190611fd6565b9050600081836116919190611f31565b905061169e85858361180f565b6116a88583611162565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361171e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117159061259a565b60405180910390fd5b61172a60008383611805565b806002600082825461173c919061209c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117ed9190611c55565b60405180910390a36118016000838361180a565b5050565b505050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361187e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118759061262c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e4906126be565b60405180910390fd5b6118f8838383611805565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561197e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197590612750565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a6c9190611c55565b60405180910390a3611a7f84848461180a565b50505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611abf578082015181840152602081019050611aa4565b60008484015250505050565b6000601f19601f8301169050919050565b6000611ae782611a85565b611af18185611a90565b9350611b01818560208601611aa1565b611b0a81611acb565b840191505092915050565b60006020820190508181036000830152611b2f8184611adc565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611b6782611b3c565b9050919050565b611b7781611b5c565b8114611b8257600080fd5b50565b600081359050611b9481611b6e565b92915050565b6000819050919050565b611bad81611b9a565b8114611bb857600080fd5b50565b600081359050611bca81611ba4565b92915050565b60008060408385031215611be757611be6611b37565b5b6000611bf585828601611b85565b9250506020611c0685828601611bbb565b9150509250929050565b60008115159050919050565b611c2581611c10565b82525050565b6000602082019050611c406000830184611c1c565b92915050565b611c4f81611b9a565b82525050565b6000602082019050611c6a6000830184611c46565b92915050565b600060208284031215611c8657611c85611b37565b5b6000611c9484828501611bbb565b91505092915050565b600080600060608486031215611cb657611cb5611b37565b5b6000611cc486828701611b85565b9350506020611cd586828701611b85565b9250506040611ce686828701611bbb565b9150509250925092565b600060ff82169050919050565b611d0681611cf0565b82525050565b6000602082019050611d216000830184611cfd565b92915050565b600060208284031215611d3d57611d3c611b37565b5b6000611d4b84828501611b85565b91505092915050565b600080600060608486031215611d6d57611d6c611b37565b5b6000611d7b86828701611b85565b9350506020611d8c86828701611b85565b9250506040611d9d86828701611b85565b9150509250925092565b6000604082019050611dbc6000830185611c46565b611dc96020830184611c46565b9392505050565b60008060408385031215611de757611de6611b37565b5b6000611df585828601611b85565b9250506020611e0685828601611b85565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611e5757607f821691505b602082108103611e6a57611e69611e10565b5b50919050565b7f436f6e76657273696f6e2065786365656473206d6178696d756d20616c6c6f7760008201527f656420696e2032342d686f757220706572696f64000000000000000000000000602082015250565b6000611ecc603483611a90565b9150611ed782611e70565b604082019050919050565b60006020820190508181036000830152611efb81611ebf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611f3c82611b9a565b9150611f4783611b9a565b9250828203905081811115611f5f57611f5e611f02565b5b92915050565b6000611f7082611b9a565b9150611f7b83611b9a565b9250828202611f8981611b9a565b91508282048414831517611fa057611f9f611f02565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611fe182611b9a565b9150611fec83611b9a565b925082611ffc57611ffb611fa7565b5b828204905092915050565b61201081611b5c565b82525050565b600060408201905061202b6000830185612007565b6120386020830184611c46565b9392505050565b60006020820190506120546000830184612007565b92915050565b60008151905061206981611ba4565b92915050565b60006020828403121561208557612084611b37565b5b60006120938482850161205a565b91505092915050565b60006120a782611b9a565b91506120b283611b9a565b92508282019050808211156120ca576120c9611f02565b5b92915050565b7f4f6e6c79206d696e746572732063616e2063616c6c20746869732066756e637460008201527f696f6e0000000000000000000000000000000000000000000000000000000000602082015250565b600061212c602383611a90565b9150612137826120d0565b604082019050919050565b6000602082019050818103600083015261215b8161211f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061219c82611b9a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036121ce576121cd611f02565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612235602583611a90565b9150612240826121d9565b604082019050919050565b6000602082019050818103600083015261226481612228565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006122c7602483611a90565b91506122d28261226b565b604082019050919050565b600060208201905081810360008301526122f6816122ba565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612359602283611a90565b9150612364826122fd565b604082019050919050565b600060208201905081810360008301526123888161234c565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006123eb602183611a90565b91506123f68261238f565b604082019050919050565b6000602082019050818103600083015261241a816123de565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061247d602283611a90565b915061248882612421565b604082019050919050565b600060208201905081810360008301526124ac81612470565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612518601d83611a90565b9150612523826124e2565b602082019050919050565b600060208201905081810360008301526125478161250b565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000612584601f83611a90565b915061258f8261254e565b602082019050919050565b600060208201905081810360008301526125b381612577565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612616602583611a90565b9150612621826125ba565b604082019050919050565b6000602082019050818103600083015261264581612609565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006126a8602383611a90565b91506126b38261264c565b604082019050919050565b600060208201905081810360008301526126d78161269b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061273a602683611a90565b9150612745826126de565b604082019050919050565b600060208201905081810360008301526127698161272d565b905091905056fea2646970667358221220a6f1b0e8086596b462c191f24a2bd7e273c5a8cc745f7bf3cd4bd33bcde7b8bf64736f6c63430008120033

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

0000000000000000000000002368fd5f713de6a81acc662ae4334afba5055758

-----Decoded View---------------
Arg [0] : brrrToken (address): 0x2368Fd5F713de6a81acc662ae4334afba5055758

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000002368fd5f713de6a81acc662ae4334afba5055758


Deployed Bytecode Sourcemap

19839:4192:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6651:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9002:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7771:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22200:647;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9783:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7613:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22855:423;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10487:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23920:108;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23286:626;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20615:362;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7942:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6870:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11228:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8275:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20314:57;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;8531:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6651:100;6705:13;6738:5;6731:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6651:100;:::o;9002:201::-;9085:4;9102:13;9118:12;:10;:12::i;:::-;9102:28;;9141:32;9150:5;9157:7;9166:6;9141:8;:32::i;:::-;9191:4;9184:11;;;9002:201;;;;:::o;7771:108::-;7832:7;7859:12;;7852:19;;7771:108;:::o;22200:647::-;22287:35;22311:10;22287:23;:35::i;:::-;22272:11;:50;;22264:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;22392:18;22449:3;19912:2;22429:3;:15;;;;:::i;:::-;22414:11;:31;;;;:::i;:::-;22413:39;;;;:::i;:::-;22392:60;;22463:30;22469:10;22481:11;22463:5;:30::i;:::-;22504:10;;;;;;;;;;;:15;;;22520:10;22532;22504:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22556:31;22590:98;;;;;;;;22624:11;22590:98;;;;22661:15;22590:98;;;22556:132;;22701:17;:29;22719:10;22701:29;;;;;;;;;;;;;;;22736:13;22701:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22761:36;22786:10;22761:24;:36::i;:::-;22253:594;;22200:647;:::o;9783:295::-;9914:4;9931:15;9949:12;:10;:12::i;:::-;9931:30;;9972:38;9988:4;9994:7;10003:6;9972:15;:38::i;:::-;10021:27;10031:4;10037:2;10041:6;10021:9;:27::i;:::-;10066:4;10059:11;;;9783:295;;;;;:::o;7613:93::-;7671:5;7696:2;7689:9;;7613:93;:::o;22855:423::-;22919:7;22939:19;22967:12;;;;;;;;;;;22961:29;;;22991:7;22961:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22939:60;;23010:20;23039:13;;;;;;;;;;;23033:30;;;23064:7;23033:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23010:62;;23083:22;23114:15;;;;;;;;;;;23108:32;;;23141:7;23108:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23083:66;;23255:14;23236:16;:33;;;;:::i;:::-;23219:12;23201:15;:30;;;;:::i;:::-;23185:11;23168:14;:28;;;;:::i;:::-;23167:65;;;;:::i;:::-;:103;;;;:::i;:::-;23160:110;;;;;22855:423;;;:::o;10487:238::-;10575:4;10592:13;10608:12;:10;:12::i;:::-;10592:28;;10631:64;10640:5;10647:7;10684:10;10656:25;10666:5;10673:7;10656:9;:25::i;:::-;:38;;;;:::i;:::-;10631:8;:64::i;:::-;10713:4;10706:11;;;10487:238;;;;:::o;23920:108::-;21026:8;:20;21035:10;21026:20;;;;;;;;;;;;;;;;;;;;;;;;;21018:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23998:22:::1;24004:7;24013:6;23998:5;:22::i;:::-;23920:108:::0;;:::o;23286:626::-;23357:7;23377:21;23401:25;23418:7;23401:16;:25::i;:::-;23377:49;;23437:24;23483:9;23478:271;23502:17;:26;23520:7;23502:26;;;;;;;;;;;;;;;:33;;;;23498:1;:37;23478:271;;;19987:12;23580:17;:26;23598:7;23580:26;;;;;;;;;;;;;;;23607:1;23580:29;;;;;;;;:::i;:::-;;;;;;;;;;;;:39;;;23562:15;:57;;;;:::i;:::-;23561:84;23557:181;;23686:17;:26;23704:7;23686:26;;;;;;;;;;;;;;;23713:1;23686:29;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;23666:56;;;;;:::i;:::-;;;23557:181;23537:3;;;;;:::i;:::-;;;;23478:271;;;;23783:13;23763:16;:33;23759:146;;23820:1;23813:8;;;;;;23759:146;23877:16;23861:13;:32;;;;:::i;:::-;23854:39;;;;23286:626;;;;:::o;20615:362::-;21026:8;:20;21035:10;21026:20;;;;;;;;;;;;;;;;;;;;;;;;;21018:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20755:11:::1;20740:12;;:26;;;;;;;;;;;;;;;;;;20793:12;20777:13;;:28;;;;;;;;;;;;;;;;;;20834:14;20816:15;;:32;;;;;;;;;;;;;;;;;;20883:4;20859:8;:21;20868:11;20859:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;20923:4;20898:8;:22;20907:12;20898:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;20965:4;20938:8;:24;20947:14;20938:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;20615:362:::0;;;:::o;7942:127::-;8016:7;8043:9;:18;8053:7;8043:18;;;;;;;;;;;;;;;;8036:25;;7942:127;;;:::o;6870:104::-;6926:13;6959:7;6952:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6870:104;:::o;11228:436::-;11321:4;11338:13;11354:12;:10;:12::i;:::-;11338:28;;11377:24;11404:25;11414:5;11421:7;11404:9;:25::i;:::-;11377:52;;11468:15;11448:16;:35;;11440:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11561:60;11570:5;11577:7;11605:15;11586:16;:34;11561:8;:60::i;:::-;11652:4;11645:11;;;;11228:436;;;;:::o;8275:193::-;8354:4;8371:13;8387:12;:10;:12::i;:::-;8371:28;;8410;8420:5;8427:2;8431:6;8410:9;:28::i;:::-;8456:4;8449:11;;;8275:193;;;;:::o;20314:57::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8531:151::-;8620:7;8647:11;:18;8659:5;8647:18;;;;;;;;;;;;;;;:27;8666:7;8647:27;;;;;;;;;;;;;;;;8640:34;;8531:151;;;;:::o;679:98::-;732:7;759:10;752:17;;679:98;:::o;15255:380::-;15408:1;15391:19;;:5;:19;;;15383:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15489:1;15470:21;;:7;:21;;;15462:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15573:6;15543:11;:18;15555:5;15543:18;;;;;;;;;;;;;;;:27;15562:7;15543:27;;;;;;;;;;;;;;;:36;;;;15611:7;15595:32;;15604:5;15595:32;;;15620:6;15595:32;;;;;;:::i;:::-;;;;;;;;15255:380;;;:::o;14142:675::-;14245:1;14226:21;;:7;:21;;;14218:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14298:49;14319:7;14336:1;14340:6;14298:20;:49::i;:::-;14360:22;14385:9;:18;14395:7;14385:18;;;;;;;;;;;;;;;;14360:43;;14440:6;14422:14;:24;;14414:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14559:6;14542:14;:23;14521:9;:18;14531:7;14521:18;;;;;;;;;;;;;;;:44;;;;14676:6;14660:12;;:22;;;;;;;;;;;14737:1;14711:37;;14720:7;14711:37;;;14741:6;14711:37;;;;;;:::i;:::-;;;;;;;;14761:48;14781:7;14798:1;14802:6;14761:19;:48::i;:::-;14207:610;14142:675;;:::o;21444:748::-;21514:9;21538:647;21549:17;:26;21567:7;21549:26;;;;;;;;;;;;;;;:33;;;;21545:1;:37;21538:647;;;19987:12;21621:17;:26;21639:7;21621:26;;;;;;;;;;;;;;;21648:1;21621:29;;;;;;;;:::i;:::-;;;;;;;;;;;;:39;;;21603:15;:57;;;;:::i;:::-;:81;21599:575;;;21800:9;21812:1;21800:13;;21795:176;21855:1;21819:17;:26;21837:7;21819:26;;;;;;;;;;;;;;;:33;;;;:37;;;;:::i;:::-;21815:1;:41;21795:176;;;21918:17;:26;21936:7;21918:26;;;;;;;;;;;;;;;21949:1;21945;:5;;;;:::i;:::-;21918:33;;;;;;;;:::i;:::-;;;;;;;;;;;;21886:17;:26;21904:7;21886:26;;;;;;;;;;;;;;;21913:1;21886:29;;;;;;;;:::i;:::-;;;;;;;;;;;;:65;;;;;;;;;;;;;;;;;;;21858:3;;;;;:::i;:::-;;;;21795:176;;;;21989:17;:26;22007:7;21989:26;;;;;;;;;;;;;;;:32;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21599:575;;;22100:3;;;;;:::i;:::-;;;;21599:575;21538:647;;;21503:689;21444:748;:::o;15926:453::-;16061:24;16088:25;16098:5;16105:7;16088:9;:25::i;:::-;16061:52;;16148:17;16128:16;:37;16124:248;;16210:6;16190:16;:26;;16182:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16294:51;16303:5;16310:7;16338:6;16319:16;:25;16294:8;:51::i;:::-;16124:248;16050:329;15926:453;;;:::o;21114:322::-;21221:18;21265:3;19912:2;21243:6;:18;;;;:::i;:::-;21242:26;;;;:::i;:::-;21221:47;;21279:22;21313:10;21304:6;:19;;;;:::i;:::-;21279:44;;21336:50;21352:6;21360:9;21371:14;21336:15;:50::i;:::-;21397:31;21409:6;21417:10;21397:11;:31::i;:::-;21210:226;;21114:322;;;:::o;13261:548::-;13364:1;13345:21;;:7;:21;;;13337:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13415:49;13444:1;13448:7;13457:6;13415:20;:49::i;:::-;13493:6;13477:12;;:22;;;;;;;:::i;:::-;;;;;;;;13670:6;13648:9;:18;13658:7;13648:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;13724:7;13703:37;;13720:1;13703:37;;;13733:6;13703:37;;;;;;:::i;:::-;;;;;;;;13753:48;13781:1;13785:7;13794:6;13753:19;:48::i;:::-;13261:548;;:::o;16979:125::-;;;;:::o;17708:124::-;;;;:::o;12134:840::-;12281:1;12265:18;;:4;:18;;;12257:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12358:1;12344:16;;:2;:16;;;12336:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12413:38;12434:4;12440:2;12444:6;12413:20;:38::i;:::-;12464:19;12486:9;:15;12496:4;12486:15;;;;;;;;;;;;;;;;12464:37;;12535:6;12520:11;:21;;12512:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12652:6;12638:11;:20;12620:9;:15;12630:4;12620:15;;;;;;;;;;;;;;;:38;;;;12855:6;12838:9;:13;12848:2;12838:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12905:2;12890:26;;12899:4;12890:26;;;12909:6;12890:26;;;;;;:::i;:::-;;;;;;;;12929:37;12949:4;12955:2;12959:6;12929:19;:37::i;:::-;12246:728;12134:840;;;:::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;1430:117::-;1539:1;1536;1529: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:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:619::-;5600:6;5608;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;6046:2;6072:53;6117:7;6108:6;6097:9;6093:22;6072:53;:::i;:::-;6062:63;;6017:118;5523:619;;;;;:::o;6148:332::-;6269:4;6307:2;6296:9;6292:18;6284:26;;6320:71;6388:1;6377:9;6373:17;6364:6;6320:71;:::i;:::-;6401:72;6469:2;6458:9;6454:18;6445:6;6401:72;:::i;:::-;6148:332;;;;;:::o;6486:474::-;6554:6;6562;6611:2;6599:9;6590:7;6586:23;6582:32;6579:119;;;6617:79;;:::i;:::-;6579:119;6737:1;6762:53;6807:7;6798:6;6787:9;6783:22;6762:53;:::i;:::-;6752:63;;6708:117;6864:2;6890:53;6935:7;6926:6;6915:9;6911:22;6890:53;:::i;:::-;6880:63;;6835:118;6486:474;;;;;:::o;6966:180::-;7014:77;7011:1;7004:88;7111:4;7108:1;7101:15;7135:4;7132:1;7125:15;7152:320;7196:6;7233:1;7227:4;7223:12;7213:22;;7280:1;7274:4;7270:12;7301:18;7291:81;;7357:4;7349:6;7345:17;7335:27;;7291:81;7419:2;7411:6;7408:14;7388:18;7385:38;7382:84;;7438:18;;:::i;:::-;7382:84;7203:269;7152:320;;;:::o;7478:239::-;7618:34;7614:1;7606:6;7602:14;7595:58;7687:22;7682:2;7674:6;7670:15;7663:47;7478:239;:::o;7723:366::-;7865:3;7886:67;7950:2;7945:3;7886:67;:::i;:::-;7879:74;;7962:93;8051:3;7962:93;:::i;:::-;8080:2;8075:3;8071:12;8064:19;;7723:366;;;:::o;8095:419::-;8261:4;8299:2;8288:9;8284:18;8276:26;;8348:9;8342:4;8338:20;8334:1;8323:9;8319:17;8312:47;8376:131;8502:4;8376:131;:::i;:::-;8368:139;;8095:419;;;:::o;8520:180::-;8568:77;8565:1;8558:88;8665:4;8662:1;8655:15;8689:4;8686:1;8679:15;8706:194;8746:4;8766:20;8784:1;8766:20;:::i;:::-;8761:25;;8800:20;8818:1;8800:20;:::i;:::-;8795:25;;8844:1;8841;8837:9;8829:17;;8868:1;8862:4;8859:11;8856:37;;;8873:18;;:::i;:::-;8856:37;8706:194;;;;:::o;8906:410::-;8946:7;8969:20;8987:1;8969:20;:::i;:::-;8964:25;;9003:20;9021:1;9003:20;:::i;:::-;8998:25;;9058:1;9055;9051:9;9080:30;9098:11;9080:30;:::i;:::-;9069:41;;9259:1;9250:7;9246:15;9243:1;9240:22;9220:1;9213:9;9193:83;9170:139;;9289:18;;:::i;:::-;9170:139;8954:362;8906:410;;;;:::o;9322:180::-;9370:77;9367:1;9360:88;9467:4;9464:1;9457:15;9491:4;9488:1;9481:15;9508:185;9548:1;9565:20;9583:1;9565:20;:::i;:::-;9560:25;;9599:20;9617:1;9599:20;:::i;:::-;9594:25;;9638:1;9628:35;;9643:18;;:::i;:::-;9628:35;9685:1;9682;9678:9;9673:14;;9508:185;;;;:::o;9699:118::-;9786:24;9804:5;9786:24;:::i;:::-;9781:3;9774:37;9699:118;;:::o;9823:332::-;9944:4;9982:2;9971:9;9967:18;9959:26;;9995:71;10063:1;10052:9;10048:17;10039:6;9995:71;:::i;:::-;10076:72;10144:2;10133:9;10129:18;10120:6;10076:72;:::i;:::-;9823:332;;;;;:::o;10161:222::-;10254:4;10292:2;10281:9;10277:18;10269:26;;10305:71;10373:1;10362:9;10358:17;10349:6;10305:71;:::i;:::-;10161:222;;;;:::o;10389:143::-;10446:5;10477:6;10471:13;10462:22;;10493:33;10520:5;10493:33;:::i;:::-;10389:143;;;;:::o;10538:351::-;10608:6;10657:2;10645:9;10636:7;10632:23;10628:32;10625:119;;;10663:79;;:::i;:::-;10625:119;10783:1;10808:64;10864:7;10855:6;10844:9;10840:22;10808:64;:::i;:::-;10798:74;;10754:128;10538:351;;;;:::o;10895:191::-;10935:3;10954:20;10972:1;10954:20;:::i;:::-;10949:25;;10988:20;11006:1;10988:20;:::i;:::-;10983:25;;11031:1;11028;11024:9;11017:16;;11052:3;11049:1;11046:10;11043:36;;;11059:18;;:::i;:::-;11043:36;10895:191;;;;:::o;11092:222::-;11232:34;11228:1;11220:6;11216:14;11209:58;11301:5;11296:2;11288:6;11284:15;11277:30;11092:222;:::o;11320:366::-;11462:3;11483:67;11547:2;11542:3;11483:67;:::i;:::-;11476:74;;11559:93;11648:3;11559:93;:::i;:::-;11677:2;11672:3;11668:12;11661:19;;11320:366;;;:::o;11692:419::-;11858:4;11896:2;11885:9;11881:18;11873:26;;11945:9;11939:4;11935:20;11931:1;11920:9;11916:17;11909:47;11973:131;12099:4;11973:131;:::i;:::-;11965:139;;11692:419;;;:::o;12117:180::-;12165:77;12162:1;12155:88;12262:4;12259:1;12252:15;12286:4;12283:1;12276:15;12303:233;12342:3;12365:24;12383:5;12365:24;:::i;:::-;12356:33;;12411:66;12404:5;12401:77;12398:103;;12481:18;;:::i;:::-;12398:103;12528:1;12521:5;12517:13;12510:20;;12303:233;;;:::o;12542:224::-;12682:34;12678:1;12670:6;12666:14;12659:58;12751:7;12746:2;12738:6;12734:15;12727:32;12542:224;:::o;12772:366::-;12914:3;12935:67;12999:2;12994:3;12935:67;:::i;:::-;12928:74;;13011:93;13100:3;13011:93;:::i;:::-;13129:2;13124:3;13120:12;13113:19;;12772:366;;;:::o;13144:419::-;13310:4;13348:2;13337:9;13333:18;13325:26;;13397:9;13391:4;13387:20;13383:1;13372:9;13368:17;13361:47;13425:131;13551:4;13425:131;:::i;:::-;13417:139;;13144:419;;;:::o;13569:223::-;13709:34;13705:1;13697:6;13693:14;13686:58;13778:6;13773:2;13765:6;13761:15;13754:31;13569:223;:::o;13798:366::-;13940:3;13961:67;14025:2;14020:3;13961:67;:::i;:::-;13954:74;;14037:93;14126:3;14037:93;:::i;:::-;14155:2;14150:3;14146:12;14139:19;;13798:366;;;:::o;14170:419::-;14336:4;14374:2;14363:9;14359:18;14351:26;;14423:9;14417:4;14413:20;14409:1;14398:9;14394:17;14387:47;14451:131;14577:4;14451:131;:::i;:::-;14443:139;;14170:419;;;:::o;14595:221::-;14735:34;14731:1;14723:6;14719:14;14712:58;14804:4;14799:2;14791:6;14787:15;14780:29;14595:221;:::o;14822:366::-;14964:3;14985:67;15049:2;15044:3;14985:67;:::i;:::-;14978:74;;15061:93;15150:3;15061:93;:::i;:::-;15179:2;15174:3;15170:12;15163:19;;14822:366;;;:::o;15194:419::-;15360:4;15398:2;15387:9;15383:18;15375:26;;15447:9;15441:4;15437:20;15433:1;15422:9;15418:17;15411:47;15475:131;15601:4;15475:131;:::i;:::-;15467:139;;15194:419;;;:::o;15619:220::-;15759:34;15755:1;15747:6;15743:14;15736:58;15828:3;15823:2;15815:6;15811:15;15804:28;15619:220;:::o;15845:366::-;15987:3;16008:67;16072:2;16067:3;16008:67;:::i;:::-;16001:74;;16084:93;16173:3;16084:93;:::i;:::-;16202:2;16197:3;16193:12;16186:19;;15845:366;;;:::o;16217:419::-;16383:4;16421:2;16410:9;16406:18;16398:26;;16470:9;16464:4;16460:20;16456:1;16445:9;16441:17;16434:47;16498:131;16624:4;16498:131;:::i;:::-;16490:139;;16217:419;;;:::o;16642:221::-;16782:34;16778:1;16770:6;16766:14;16759:58;16851:4;16846:2;16838:6;16834:15;16827:29;16642:221;:::o;16869:366::-;17011:3;17032:67;17096:2;17091:3;17032:67;:::i;:::-;17025:74;;17108:93;17197:3;17108:93;:::i;:::-;17226:2;17221:3;17217:12;17210:19;;16869:366;;;:::o;17241:419::-;17407:4;17445:2;17434:9;17430:18;17422:26;;17494:9;17488:4;17484:20;17480:1;17469:9;17465:17;17458:47;17522:131;17648:4;17522:131;:::i;:::-;17514:139;;17241:419;;;:::o;17666:180::-;17714:77;17711:1;17704:88;17811:4;17808:1;17801:15;17835:4;17832:1;17825:15;17852:179;17992:31;17988:1;17980:6;17976:14;17969:55;17852:179;:::o;18037:366::-;18179:3;18200:67;18264:2;18259:3;18200:67;:::i;:::-;18193:74;;18276:93;18365:3;18276:93;:::i;:::-;18394:2;18389:3;18385:12;18378:19;;18037:366;;;:::o;18409:419::-;18575:4;18613:2;18602:9;18598:18;18590:26;;18662:9;18656:4;18652:20;18648:1;18637:9;18633:17;18626:47;18690:131;18816:4;18690:131;:::i;:::-;18682:139;;18409:419;;;:::o;18834:181::-;18974:33;18970:1;18962:6;18958:14;18951:57;18834:181;:::o;19021:366::-;19163:3;19184:67;19248:2;19243:3;19184:67;:::i;:::-;19177:74;;19260:93;19349:3;19260:93;:::i;:::-;19378:2;19373:3;19369:12;19362:19;;19021:366;;;:::o;19393:419::-;19559:4;19597:2;19586:9;19582:18;19574:26;;19646:9;19640:4;19636:20;19632:1;19621:9;19617:17;19610:47;19674:131;19800:4;19674:131;:::i;:::-;19666:139;;19393:419;;;:::o;19818:224::-;19958:34;19954:1;19946:6;19942:14;19935:58;20027:7;20022:2;20014:6;20010:15;20003:32;19818:224;:::o;20048:366::-;20190:3;20211:67;20275:2;20270:3;20211:67;:::i;:::-;20204:74;;20287:93;20376:3;20287:93;:::i;:::-;20405:2;20400:3;20396:12;20389:19;;20048:366;;;:::o;20420:419::-;20586:4;20624:2;20613:9;20609:18;20601:26;;20673:9;20667:4;20663:20;20659:1;20648:9;20644:17;20637:47;20701:131;20827:4;20701:131;:::i;:::-;20693:139;;20420:419;;;:::o;20845:222::-;20985:34;20981:1;20973:6;20969:14;20962:58;21054:5;21049:2;21041:6;21037:15;21030:30;20845:222;:::o;21073:366::-;21215:3;21236:67;21300:2;21295:3;21236:67;:::i;:::-;21229:74;;21312:93;21401:3;21312:93;:::i;:::-;21430:2;21425:3;21421:12;21414:19;;21073:366;;;:::o;21445:419::-;21611:4;21649:2;21638:9;21634:18;21626:26;;21698:9;21692:4;21688:20;21684:1;21673:9;21669:17;21662:47;21726:131;21852:4;21726:131;:::i;:::-;21718:139;;21445:419;;;:::o;21870:225::-;22010:34;22006:1;21998:6;21994:14;21987:58;22079:8;22074:2;22066:6;22062:15;22055:33;21870:225;:::o;22101:366::-;22243:3;22264:67;22328:2;22323:3;22264:67;:::i;:::-;22257:74;;22340:93;22429:3;22340:93;:::i;:::-;22458:2;22453:3;22449:12;22442:19;;22101:366;;;:::o;22473:419::-;22639:4;22677:2;22666:9;22662:18;22654:26;;22726:9;22720:4;22716:20;22712:1;22701:9;22697:17;22690:47;22754:131;22880:4;22754:131;:::i;:::-;22746:139;;22473:419;;;:::o

Swarm Source

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