FTM Price: $0.676574 (+7.74%)
 

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve939317422024-10-08 1:17:303 days ago1728350250IN
Fantom Oasis: FTMO Token
0 FTM0.0006815227.31125249
Approve938836092024-10-07 14:34:154 days ago1728311655IN
Fantom Oasis: FTMO Token
0 FTM0.0033222958.60976661
Approve929517582024-09-28 19:14:0113 days ago1727550841IN
Fantom Oasis: FTMO Token
0 FTM0.0006943814
Approve929167782024-09-28 11:18:1213 days ago1727522292IN
Fantom Oasis: FTMO Token
0 FTM0.0008431817.84980483
Approve928983532024-09-28 7:02:4613 days ago1727506966IN
Fantom Oasis: FTMO Token
0 FTM0.0008102516.83786612
Approve926631362024-09-25 20:09:2916 days ago1727294969IN
Fantom Oasis: FTMO Token
0 FTM0.0005085310.7762382
Transfer926199102024-09-25 10:04:4216 days ago1727258682IN
Fantom Oasis: FTMO Token
0 FTM0.0006417812.86614564
Approve923583952024-09-22 15:11:0019 days ago1727017860IN
Fantom Oasis: FTMO Token
0 FTM0.0005464611.58012832
Approve923482142024-09-22 12:36:5419 days ago1727008614IN
Fantom Oasis: FTMO Token
0 FTM0.0005452511.31662837
Transfer923060082024-09-22 0:47:0220 days ago1726966022IN
Fantom Oasis: FTMO Token
0 FTM0.0005581911.1902707
Transfer907931812024-09-05 6:46:3136 days ago1725518791IN
Fantom Oasis: FTMO Token
0 FTM0.000120243.13874207
Transfer907162302024-09-04 9:07:5937 days ago1725440879IN
Fantom Oasis: FTMO Token
0 FTM0.000195425.19841767
Transfer905802332024-09-02 18:58:5939 days ago1725303539IN
Fantom Oasis: FTMO Token
0 FTM0.000530469.70518544
Transfer896334222024-08-22 13:11:0550 days ago1724332265IN
Fantom Oasis: FTMO Token
0 FTM0.0003835810.20327238
Approve892651332024-08-18 15:41:5654 days ago1723995716IN
Fantom Oasis: FTMO Token
0 FTM0.000344037.14040704
Transfer879261932024-08-05 23:52:4267 days ago1722901962IN
Fantom Oasis: FTMO Token
0 FTM0.002929857.15473482
Transfer868132852024-07-26 10:01:3877 days ago1721988098IN
Fantom Oasis: FTMO Token
0 FTM0.0018706749.76
Transfer868130942024-07-26 9:57:5277 days ago1721987872IN
Fantom Oasis: FTMO Token
0 FTM0.0024572465.404325
Approve866340502024-07-24 9:16:2879 days ago1721812588IN
Fantom Oasis: FTMO Token
0 FTM0.00521741110
Approve866026582024-07-24 0:41:1280 days ago1721781672IN
Fantom Oasis: FTMO Token
0 FTM0.0006644414.16313227
Approve865511912024-07-23 10:57:3880 days ago1721732258IN
Fantom Oasis: FTMO Token
0 FTM0.0007976415.87534485
Approve864139432024-07-22 5:18:5981 days ago1721625539IN
Fantom Oasis: FTMO Token
0 FTM0.00025479
Approve864129882024-07-22 5:06:4681 days ago1721624806IN
Fantom Oasis: FTMO Token
0 FTM0.0002830110
Approve864122172024-07-22 4:57:0881 days ago1721624228IN
Fantom Oasis: FTMO Token
0 FTM0.000237969
Approve862643942024-07-20 21:01:4383 days ago1721509303IN
Fantom Oasis: FTMO Token
0 FTM0.0004409617.67118349
View all transactions

Latest 1 internal transaction

Parent Transaction Hash Block From To
170202992021-09-13 23:23:351124 days ago1631575415  Contract Creation0 FTM
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FTMOToken

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 6: FTMOToken.sol
// SPDX-License-Identifier: None

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./IERC20Metadata.sol";
import "./Context.sol";
import "./SafeERC20.sol";

/**
 * @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.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of 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 FTMOToken is Context, IERC20, IERC20Metadata {
    using SafeERC20 for IERC20;
    mapping (address => uint256) private _balances;

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

    mapping (address => bool) private _authorized;
    address[] private _listAuthorized;
    address private _admin;

    uint256 private _totalSupply;
    uint256 private _operaCap;

    string private _name;
    string private _symbol;

    bool private _tokenPaused;

    /**
     * @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 (address admin) {
        _name = "Fantom Oasis Token";
        _symbol = "FTMO";
        _totalSupply = 100000000000000000000000000;     
        _admin = admin;
        _balances[_admin] = _totalSupply;
        _operaCap = _totalSupply;
        _tokenPaused = false;
        emit Transfer(address(0), _admin, _totalSupply);
    }

    /**
     * @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:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        require(!_tokenPaused, "FTMOToken: transfers are currently paused");
        _transfer(_msgSender(), recipient, 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}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), 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}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        require(!_tokenPaused, "FTMOToken: transfers are currently paused");
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "FTMOToken: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - 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) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][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) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "FTMOToken: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is 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:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "FTMOToken: transfer from the zero address");
        require(recipient != address(0), "FTMOToken: transfer to the zero address");
        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "FTMOToken: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, 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), "FTMOToken: mint to the zero address");
        require(_totalSupply + amount <= _operaCap, "FTMOToken: cap exceeded");
        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(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), "FTMOToken: burn from the zero address");

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "FTMOToken: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(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), "FTMOToken: approve from the zero address");
        require(spender != address(0), "FTMOToken: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, 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 to 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 { }

    /**
     * Check if you are admin
     */
    function amIAdmin() external view returns (bool) {
        return (msg.sender == _admin);
    }

    /**
     * Check if you are authorized
     */
    function amIAuthorized() external view returns (bool) {
        return (_authorized[msg.sender]);
    }
    
    /**
     * Change the admin address
     * For eg: to transfer ownership into a multi-sig wallet contract
     */
    function replaceAdmin(address newAdmin) 
        external 
        onlyAdmin() {
            _admin = newAdmin;
    }

    /**
     * Authorize an address
     */
    function authorize(address delegate)
        external
        onlyAdmin() {
            _authorized[delegate] = true;
            _listAuthorized.push(delegate);
    }

    /**
     * Reset all authorizations
     */
    function resetAuthorizations()
        external
        onlyAdmin() {
            for (uint8 i = 0; i < _listAuthorized.length; i++) {
                address delegate = _listAuthorized[i];
                _authorized[delegate] = false;
            }
            delete _listAuthorized;
    } 

    /**
     * Allows admin to pause and resume transfers
     */
    function setTokenPaused (bool status)
        external
        onlyAdmin() {
        _tokenPaused = status;
    }

    /**
     * There should never be more than 100,000,000 FTMO tokens in total,
     * across all chains.
     */
    function setOperaCap (uint256 cap)
        external
        onlyAuthorized() {
            require(cap <= 100000000000000000000000000,
            "FTMOToken: Hard cap is 100,000,000 tokens");
            _operaCap = cap;
    }

    /**
     * Allows authorized addresses to transfer
     * For eg: swap contracts
     */
    function authorizedTransfer(address sender, address recipient, uint256 amount) 
        external 
        onlyAuthorized() {
            _transfer(sender, recipient, amount);
    }

    /**
     * Allows authorized addresses to mint
     * For eg: bridge contract for Opera-ETH
     */
    function authorizedMint(address account, uint256 amount) 
        external 
        onlyAuthorized() {
            _mint(account, amount);
    }

    /**
     * Allows authorized addresses to burn
     * For eg: leftover tokens in sale contract
     */
    function authorizedBurn(address account, uint256 amount) 
        external
        onlyAuthorized() {
            _burn(account, amount);
    }

    /**
     * Allows authorized addresses to approve
     * For eg: delegate contracts
     */
    function authorizedApprove(address owner, address spender, uint256 amount) 
        external 
        onlyAuthorized() {
            _approve(owner, spender, amount);
    }

    /**
     * Only admin can run certain actions
     */
    modifier onlyAdmin() {
        require(msg.sender == _admin, "FTMOToken: Only admin can do this");
        _;
    }

    /**
     * Only authorized addresses can run certain actions
     */
    modifier onlyAuthorized() {
        require(_authorized[msg.sender], "FTMOToken: Only authorized can do this");
        _;
    }
}

File 2 of 6: Address.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }
}

File 3 of 6: Context.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

File 4 of 6: IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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 `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, 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 `sender` to `recipient` 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 sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @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);
}

File 5 of 6: IERC20Metadata.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "./IERC20.sol";

/**
 * @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 6 of 6: SafeERC20.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "./Address.sol";
import "./IERC20.sol";

library SafeERC20 {
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }
    function callOptionalReturn(IERC20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeERC20: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"admin","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":[],"name":"amIAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amIAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"delegate","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"authorizedApprove","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"authorizedBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"authorizedMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"authorizedTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"replaceAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetAuthorizations","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"cap","type":"uint256"}],"name":"setOperaCap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setTokenPaused","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162002bb738038062002bb783398181016040528101906200003791906200030b565b6040518060400160405280601281526020017f46616e746f6d204f6173697320546f6b656e0000000000000000000000000000815250600790805190602001906200008492919062000244565b506040518060400160405280600481526020017f46544d4f0000000000000000000000000000000000000000000000000000000081525060089080519060200190620000d292919062000244565b506a52b7d2dcc80cd2e400000060058190555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600554600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506005546006819055506000600960006101000a81548160ff021916908315150217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040516200023591906200034e565b60405180910390a3506200042d565b8280546200025290620003a9565b90600052602060002090601f016020900481019282620002765760008555620002c2565b82601f106200029157805160ff1916838001178555620002c2565b82800160010185558215620002c2579182015b82811115620002c1578251825591602001919060010190620002a4565b5b509050620002d19190620002d5565b5090565b5b80821115620002f0576000816000905550600101620002d6565b5090565b600081519050620003058162000413565b92915050565b6000602082840312156200032457620003236200040e565b5b60006200033484828501620002f4565b91505092915050565b62000348816200039f565b82525050565b60006020820190506200036560008301846200033d565b92915050565b600062000378826200037f565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006002820490506001821680620003c257607f821691505b60208210811415620003d957620003d8620003df565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6200041e816200036b565b81146200042a57600080fd5b50565b61277a806200043d6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806395d89b41116100b8578063b6a5d7de1161007c578063b6a5d7de14610377578063c4b53e7414610393578063c4f4face146103af578063dd62ed3e146103cb578063fc48b653146103fb578063fcf7b1931461041757610142565b806395d89b41146102c1578063a457c2d7146102df578063a9059cbb1461030f578063ae48d1e31461033f578063b542b3661461035b57610142565b8063295194571161010a57806329519457146101ed578063313ce56714610209578063395093511461022757806370a082311461025757806373b8d9c714610287578063934f1cca146102a357610142565b8063064d8bea1461014757806306fdde0314610151578063095ea7b31461016f57806318160ddd1461019f57806323b872dd146101bd575b600080fd5b61014f610435565b005b61015961059b565b6040516101669190611e1f565b60405180910390f35b61018960048036038101906101849190611af7565b61062d565b6040516101969190611e04565b60405180910390f35b6101a761064b565b6040516101b49190612021565b60405180910390f35b6101d760048036038101906101d29190611aa4565b610655565b6040516101e49190611e04565b60405180910390f35b61020760048036038101906102029190611b37565b6107a6565b005b610211610853565b60405161021e919061203c565b60405180910390f35b610241600480360381019061023c9190611af7565b61085c565b60405161024e9190611e04565b60405180910390f35b610271600480360381019061026c9190611a37565b610908565b60405161027e9190612021565b60405180910390f35b6102a1600480360381019061029c9190611af7565b610950565b005b6102ab6109ea565b6040516102b89190611e04565b60405180910390f35b6102c9610a42565b6040516102d69190611e1f565b60405180910390f35b6102f960048036038101906102f49190611af7565b610ad4565b6040516103069190611e04565b60405180910390f35b61032960048036038101906103249190611af7565b610bc8565b6040516103369190611e04565b60405180910390f35b61035960048036038101906103549190611b64565b610c36565b005b61037560048036038101906103709190611aa4565b610d1a565b005b610391600480360381019061038c9190611a37565b610db6565b005b6103ad60048036038101906103a89190611af7565b610f04565b005b6103c960048036038101906103c49190611a37565b610f9e565b005b6103e560048036038101906103e09190611a64565b611072565b6040516103f29190612021565b60405180910390f35b61041560048036038101906104109190611aa4565b6110f9565b005b61041f611195565b60405161042c9190611e04565b60405180910390f35b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104bc90611fa1565b60405180910390fd5b60005b6003805490508160ff16101561058a57600060038260ff16815481106104f1576104f061223f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550508080610582906121b7565b9150506104c8565b506003600061059991906119ba565b565b6060600780546105aa90612185565b80601f01602080910402602001604051908101604052809291908181526020018280546105d690612185565b80156106235780601f106105f857610100808354040283529160200191610623565b820191906000526020600020905b81548152906001019060200180831161060657829003601f168201915b5050505050905090565b600061064161063a6111e9565b84846111f1565b6001905092915050565b6000600554905090565b6000600960009054906101000a900460ff16156106a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069e90611e61565b60405180910390fd5b6106b28484846113bc565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106fd6111e9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561077d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077490611f41565b60405180910390fd5b61079a856107896111e9565b858461079591906120c9565b6111f1565b60019150509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610836576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90611fa1565b60405180910390fd5b80600960006101000a81548160ff02191690831515021790555050565b60006012905090565b60006108fe6108696111e9565b8484600160006108776111e9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108f99190612073565b6111f1565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166109dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d390611f61565b60405180910390fd5b6109e6828261163b565b5050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b606060088054610a5190612185565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7d90612185565b8015610aca5780601f10610a9f57610100808354040283529160200191610aca565b820191906000526020600020905b815481529060010190602001808311610aad57829003601f168201915b5050505050905090565b60008060016000610ae36111e9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9790611ee1565b60405180910390fd5b610bbd610bab6111e9565b858584610bb891906120c9565b6111f1565b600191505092915050565b6000600960009054906101000a900460ff1615610c1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1190611e61565b60405180910390fd5b610c2c610c256111e9565b84846113bc565b6001905092915050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610cc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb990611f61565b60405180910390fd5b6a52b7d2dcc80cd2e4000000811115610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0790611f01565b60405180910390fd5b8060068190555050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9d90611f61565b60405180910390fd5b610db18383836111f1565b505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3d90611fa1565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506003819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8790611f61565b60405180910390fd5b610f9a82826117e1565b5050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461102e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102590611fa1565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c90611f61565b60405180910390fd5b6111908383836113bc565b505050565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125890612001565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c890611fc1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113af9190612021565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561142c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142390611fe1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561149c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149390611e81565b60405180910390fd5b6114a78383836119b5565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561152d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152490611f81565b60405180910390fd5b818161153991906120c9565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115c99190612073565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161162d9190612021565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a290611ea1565b60405180910390fd5b600654816005546116bc9190612073565b11156116fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f490611f21565b60405180910390fd5b611709600083836119b5565b806005600082825461171b9190612073565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117709190612073565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117d59190612021565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611851576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184890611ec1565b60405180910390fd5b61185d826000836119b5565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156118e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118da90611e41565b60405180910390fd5b81816118ef91906120c9565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816005600082825461194391906120c9565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119a89190612021565b60405180910390a3505050565b505050565b50805460008255906000526020600020908101906119d891906119db565b50565b5b808211156119f45760008160009055506001016119dc565b5090565b600081359050611a07816126ff565b92915050565b600081359050611a1c81612716565b92915050565b600081359050611a318161272d565b92915050565b600060208284031215611a4d57611a4c61226e565b5b6000611a5b848285016119f8565b91505092915050565b60008060408385031215611a7b57611a7a61226e565b5b6000611a89858286016119f8565b9250506020611a9a858286016119f8565b9150509250929050565b600080600060608486031215611abd57611abc61226e565b5b6000611acb868287016119f8565b9350506020611adc868287016119f8565b9250506040611aed86828701611a22565b9150509250925092565b60008060408385031215611b0e57611b0d61226e565b5b6000611b1c858286016119f8565b9250506020611b2d85828601611a22565b9150509250929050565b600060208284031215611b4d57611b4c61226e565b5b6000611b5b84828501611a0d565b91505092915050565b600060208284031215611b7a57611b7961226e565b5b6000611b8884828501611a22565b91505092915050565b611b9a8161210f565b82525050565b6000611bab82612057565b611bb58185612062565b9350611bc5818560208601612152565b611bce81612273565b840191505092915050565b6000611be6602683612062565b9150611bf182612284565b604082019050919050565b6000611c09602983612062565b9150611c14826122d3565b604082019050919050565b6000611c2c602783612062565b9150611c3782612322565b604082019050919050565b6000611c4f602383612062565b9150611c5a82612371565b604082019050919050565b6000611c72602583612062565b9150611c7d826123c0565b604082019050919050565b6000611c95602983612062565b9150611ca08261240f565b604082019050919050565b6000611cb8602983612062565b9150611cc38261245e565b604082019050919050565b6000611cdb601783612062565b9150611ce6826124ad565b602082019050919050565b6000611cfe602c83612062565b9150611d09826124d6565b604082019050919050565b6000611d21602683612062565b9150611d2c82612525565b604082019050919050565b6000611d44602a83612062565b9150611d4f82612574565b604082019050919050565b6000611d67602183612062565b9150611d72826125c3565b604082019050919050565b6000611d8a602683612062565b9150611d9582612612565b604082019050919050565b6000611dad602983612062565b9150611db882612661565b604082019050919050565b6000611dd0602883612062565b9150611ddb826126b0565b604082019050919050565b611def8161213b565b82525050565b611dfe81612145565b82525050565b6000602082019050611e196000830184611b91565b92915050565b60006020820190508181036000830152611e398184611ba0565b905092915050565b60006020820190508181036000830152611e5a81611bd9565b9050919050565b60006020820190508181036000830152611e7a81611bfc565b9050919050565b60006020820190508181036000830152611e9a81611c1f565b9050919050565b60006020820190508181036000830152611eba81611c42565b9050919050565b60006020820190508181036000830152611eda81611c65565b9050919050565b60006020820190508181036000830152611efa81611c88565b9050919050565b60006020820190508181036000830152611f1a81611cab565b9050919050565b60006020820190508181036000830152611f3a81611cce565b9050919050565b60006020820190508181036000830152611f5a81611cf1565b9050919050565b60006020820190508181036000830152611f7a81611d14565b9050919050565b60006020820190508181036000830152611f9a81611d37565b9050919050565b60006020820190508181036000830152611fba81611d5a565b9050919050565b60006020820190508181036000830152611fda81611d7d565b9050919050565b60006020820190508181036000830152611ffa81611da0565b9050919050565b6000602082019050818103600083015261201a81611dc3565b9050919050565b60006020820190506120366000830184611de6565b92915050565b60006020820190506120516000830184611df5565b92915050565b600081519050919050565b600082825260208201905092915050565b600061207e8261213b565b91506120898361213b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156120be576120bd6121e1565b5b828201905092915050565b60006120d48261213b565b91506120df8361213b565b9250828210156120f2576120f16121e1565b5b828203905092915050565b60006121088261211b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612170578082015181840152602081019050612155565b8381111561217f576000848401525b50505050565b6000600282049050600182168061219d57607f821691505b602082108114156121b1576121b0612210565b5b50919050565b60006121c282612145565b915060ff8214156121d6576121d56121e1565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f46544d4f546f6b656e3a206275726e20616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a207472616e7366657273206172652063757272656e7460008201527f6c79207061757365640000000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a207472616e7366657220746f20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a206d696e7420746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a206275726e2066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a2064656372656173656420616c6c6f77616e6365206260008201527f656c6f77207a65726f0000000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a204861726420636170206973203130302c3030302c3060008201527f303020746f6b656e730000000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a20636170206578636565646564000000000000000000600082015250565b7f46544d4f546f6b656e3a207472616e7366657220616d6f756e7420657863656560008201527f647320616c6c6f77616e63650000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a204f6e6c7920617574686f72697a65642063616e206460008201527f6f20746869730000000000000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a207472616e7366657220616d6f756e7420657863656560008201527f64732062616c616e636500000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a204f6e6c792061646d696e2063616e20646f2074686960008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a20617070726f766520746f20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a207472616e736665722066726f6d20746865207a657260008201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a20617070726f76652066726f6d20746865207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b612708816120fd565b811461271357600080fd5b50565b61271f8161210f565b811461272a57600080fd5b50565b6127368161213b565b811461274157600080fd5b5056fea26469706673582212203d9d41f1289b6da95a826fdc5e6ccde68dbfcf6029c804e7354d056d906536f764736f6c634300080700330000000000000000000000006f1a558dec5f483848c3d87ac4eb1c2bd46ee1be

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c806395d89b41116100b8578063b6a5d7de1161007c578063b6a5d7de14610377578063c4b53e7414610393578063c4f4face146103af578063dd62ed3e146103cb578063fc48b653146103fb578063fcf7b1931461041757610142565b806395d89b41146102c1578063a457c2d7146102df578063a9059cbb1461030f578063ae48d1e31461033f578063b542b3661461035b57610142565b8063295194571161010a57806329519457146101ed578063313ce56714610209578063395093511461022757806370a082311461025757806373b8d9c714610287578063934f1cca146102a357610142565b8063064d8bea1461014757806306fdde0314610151578063095ea7b31461016f57806318160ddd1461019f57806323b872dd146101bd575b600080fd5b61014f610435565b005b61015961059b565b6040516101669190611e1f565b60405180910390f35b61018960048036038101906101849190611af7565b61062d565b6040516101969190611e04565b60405180910390f35b6101a761064b565b6040516101b49190612021565b60405180910390f35b6101d760048036038101906101d29190611aa4565b610655565b6040516101e49190611e04565b60405180910390f35b61020760048036038101906102029190611b37565b6107a6565b005b610211610853565b60405161021e919061203c565b60405180910390f35b610241600480360381019061023c9190611af7565b61085c565b60405161024e9190611e04565b60405180910390f35b610271600480360381019061026c9190611a37565b610908565b60405161027e9190612021565b60405180910390f35b6102a1600480360381019061029c9190611af7565b610950565b005b6102ab6109ea565b6040516102b89190611e04565b60405180910390f35b6102c9610a42565b6040516102d69190611e1f565b60405180910390f35b6102f960048036038101906102f49190611af7565b610ad4565b6040516103069190611e04565b60405180910390f35b61032960048036038101906103249190611af7565b610bc8565b6040516103369190611e04565b60405180910390f35b61035960048036038101906103549190611b64565b610c36565b005b61037560048036038101906103709190611aa4565b610d1a565b005b610391600480360381019061038c9190611a37565b610db6565b005b6103ad60048036038101906103a89190611af7565b610f04565b005b6103c960048036038101906103c49190611a37565b610f9e565b005b6103e560048036038101906103e09190611a64565b611072565b6040516103f29190612021565b60405180910390f35b61041560048036038101906104109190611aa4565b6110f9565b005b61041f611195565b60405161042c9190611e04565b60405180910390f35b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104bc90611fa1565b60405180910390fd5b60005b6003805490508160ff16101561058a57600060038260ff16815481106104f1576104f061223f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550508080610582906121b7565b9150506104c8565b506003600061059991906119ba565b565b6060600780546105aa90612185565b80601f01602080910402602001604051908101604052809291908181526020018280546105d690612185565b80156106235780601f106105f857610100808354040283529160200191610623565b820191906000526020600020905b81548152906001019060200180831161060657829003601f168201915b5050505050905090565b600061064161063a6111e9565b84846111f1565b6001905092915050565b6000600554905090565b6000600960009054906101000a900460ff16156106a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069e90611e61565b60405180910390fd5b6106b28484846113bc565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106fd6111e9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561077d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077490611f41565b60405180910390fd5b61079a856107896111e9565b858461079591906120c9565b6111f1565b60019150509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610836576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90611fa1565b60405180910390fd5b80600960006101000a81548160ff02191690831515021790555050565b60006012905090565b60006108fe6108696111e9565b8484600160006108776111e9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108f99190612073565b6111f1565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166109dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d390611f61565b60405180910390fd5b6109e6828261163b565b5050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b606060088054610a5190612185565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7d90612185565b8015610aca5780601f10610a9f57610100808354040283529160200191610aca565b820191906000526020600020905b815481529060010190602001808311610aad57829003601f168201915b5050505050905090565b60008060016000610ae36111e9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9790611ee1565b60405180910390fd5b610bbd610bab6111e9565b858584610bb891906120c9565b6111f1565b600191505092915050565b6000600960009054906101000a900460ff1615610c1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1190611e61565b60405180910390fd5b610c2c610c256111e9565b84846113bc565b6001905092915050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610cc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb990611f61565b60405180910390fd5b6a52b7d2dcc80cd2e4000000811115610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0790611f01565b60405180910390fd5b8060068190555050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9d90611f61565b60405180910390fd5b610db18383836111f1565b505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3d90611fa1565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506003819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8790611f61565b60405180910390fd5b610f9a82826117e1565b5050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461102e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102590611fa1565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c90611f61565b60405180910390fd5b6111908383836113bc565b505050565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125890612001565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c890611fc1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113af9190612021565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561142c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142390611fe1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561149c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149390611e81565b60405180910390fd5b6114a78383836119b5565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561152d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152490611f81565b60405180910390fd5b818161153991906120c9565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115c99190612073565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161162d9190612021565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a290611ea1565b60405180910390fd5b600654816005546116bc9190612073565b11156116fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f490611f21565b60405180910390fd5b611709600083836119b5565b806005600082825461171b9190612073565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117709190612073565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117d59190612021565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611851576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184890611ec1565b60405180910390fd5b61185d826000836119b5565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156118e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118da90611e41565b60405180910390fd5b81816118ef91906120c9565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816005600082825461194391906120c9565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119a89190612021565b60405180910390a3505050565b505050565b50805460008255906000526020600020908101906119d891906119db565b50565b5b808211156119f45760008160009055506001016119dc565b5090565b600081359050611a07816126ff565b92915050565b600081359050611a1c81612716565b92915050565b600081359050611a318161272d565b92915050565b600060208284031215611a4d57611a4c61226e565b5b6000611a5b848285016119f8565b91505092915050565b60008060408385031215611a7b57611a7a61226e565b5b6000611a89858286016119f8565b9250506020611a9a858286016119f8565b9150509250929050565b600080600060608486031215611abd57611abc61226e565b5b6000611acb868287016119f8565b9350506020611adc868287016119f8565b9250506040611aed86828701611a22565b9150509250925092565b60008060408385031215611b0e57611b0d61226e565b5b6000611b1c858286016119f8565b9250506020611b2d85828601611a22565b9150509250929050565b600060208284031215611b4d57611b4c61226e565b5b6000611b5b84828501611a0d565b91505092915050565b600060208284031215611b7a57611b7961226e565b5b6000611b8884828501611a22565b91505092915050565b611b9a8161210f565b82525050565b6000611bab82612057565b611bb58185612062565b9350611bc5818560208601612152565b611bce81612273565b840191505092915050565b6000611be6602683612062565b9150611bf182612284565b604082019050919050565b6000611c09602983612062565b9150611c14826122d3565b604082019050919050565b6000611c2c602783612062565b9150611c3782612322565b604082019050919050565b6000611c4f602383612062565b9150611c5a82612371565b604082019050919050565b6000611c72602583612062565b9150611c7d826123c0565b604082019050919050565b6000611c95602983612062565b9150611ca08261240f565b604082019050919050565b6000611cb8602983612062565b9150611cc38261245e565b604082019050919050565b6000611cdb601783612062565b9150611ce6826124ad565b602082019050919050565b6000611cfe602c83612062565b9150611d09826124d6565b604082019050919050565b6000611d21602683612062565b9150611d2c82612525565b604082019050919050565b6000611d44602a83612062565b9150611d4f82612574565b604082019050919050565b6000611d67602183612062565b9150611d72826125c3565b604082019050919050565b6000611d8a602683612062565b9150611d9582612612565b604082019050919050565b6000611dad602983612062565b9150611db882612661565b604082019050919050565b6000611dd0602883612062565b9150611ddb826126b0565b604082019050919050565b611def8161213b565b82525050565b611dfe81612145565b82525050565b6000602082019050611e196000830184611b91565b92915050565b60006020820190508181036000830152611e398184611ba0565b905092915050565b60006020820190508181036000830152611e5a81611bd9565b9050919050565b60006020820190508181036000830152611e7a81611bfc565b9050919050565b60006020820190508181036000830152611e9a81611c1f565b9050919050565b60006020820190508181036000830152611eba81611c42565b9050919050565b60006020820190508181036000830152611eda81611c65565b9050919050565b60006020820190508181036000830152611efa81611c88565b9050919050565b60006020820190508181036000830152611f1a81611cab565b9050919050565b60006020820190508181036000830152611f3a81611cce565b9050919050565b60006020820190508181036000830152611f5a81611cf1565b9050919050565b60006020820190508181036000830152611f7a81611d14565b9050919050565b60006020820190508181036000830152611f9a81611d37565b9050919050565b60006020820190508181036000830152611fba81611d5a565b9050919050565b60006020820190508181036000830152611fda81611d7d565b9050919050565b60006020820190508181036000830152611ffa81611da0565b9050919050565b6000602082019050818103600083015261201a81611dc3565b9050919050565b60006020820190506120366000830184611de6565b92915050565b60006020820190506120516000830184611df5565b92915050565b600081519050919050565b600082825260208201905092915050565b600061207e8261213b565b91506120898361213b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156120be576120bd6121e1565b5b828201905092915050565b60006120d48261213b565b91506120df8361213b565b9250828210156120f2576120f16121e1565b5b828203905092915050565b60006121088261211b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612170578082015181840152602081019050612155565b8381111561217f576000848401525b50505050565b6000600282049050600182168061219d57607f821691505b602082108114156121b1576121b0612210565b5b50919050565b60006121c282612145565b915060ff8214156121d6576121d56121e1565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f46544d4f546f6b656e3a206275726e20616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a207472616e7366657273206172652063757272656e7460008201527f6c79207061757365640000000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a207472616e7366657220746f20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a206d696e7420746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a206275726e2066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a2064656372656173656420616c6c6f77616e6365206260008201527f656c6f77207a65726f0000000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a204861726420636170206973203130302c3030302c3060008201527f303020746f6b656e730000000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a20636170206578636565646564000000000000000000600082015250565b7f46544d4f546f6b656e3a207472616e7366657220616d6f756e7420657863656560008201527f647320616c6c6f77616e63650000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a204f6e6c7920617574686f72697a65642063616e206460008201527f6f20746869730000000000000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a207472616e7366657220616d6f756e7420657863656560008201527f64732062616c616e636500000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a204f6e6c792061646d696e2063616e20646f2074686960008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a20617070726f766520746f20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a207472616e736665722066726f6d20746865207a657260008201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b7f46544d4f546f6b656e3a20617070726f76652066726f6d20746865207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b612708816120fd565b811461271357600080fd5b50565b61271f8161210f565b811461272a57600080fd5b50565b6127368161213b565b811461274157600080fd5b5056fea26469706673582212203d9d41f1289b6da95a826fdc5e6ccde68dbfcf6029c804e7354d056d906536f764736f6c63430008070033

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

0000000000000000000000006f1a558dec5f483848c3d87ac4eb1c2bd46ee1be

-----Decoded View---------------
Arg [0] : admin (address): 0x6f1a558DEc5F483848C3D87aC4EB1C2Bd46Ee1bE

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006f1a558dec5f483848c3d87ac4eb1c2bd46ee1be


Deployed Bytecode Sourcemap

1360:13512:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12509:300;;;:::i;:::-;;2605:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4850:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3725:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5501:504;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12887:117;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3567:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6414:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3896:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13769:148;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11704:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2824:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7132:381;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4236:253;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13131:233;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14291:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12278:172;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14036:147;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12102:121;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4552:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13469:184;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11863:105;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12509:300;14590:6;;;;;;;;;;;14576:20;;:10;:20;;;14568:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;12599:7:::1;12594:171;12616:15;:22;;;;12612:1;:26;;;12594:171;;;12664:16;12683:15;12699:1;12683:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12664:37;;12744:5;12720:11;:21;12732:8;12720:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;12645:120;12640:3;;;;;:::i;:::-;;;;12594:171;;;;12786:15;;12779:22;;;;:::i;:::-;12509:300::o:0;2605:100::-;2659:13;2692:5;2685:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2605:100;:::o;4850:169::-;4933:4;4950:39;4959:12;:10;:12::i;:::-;4973:7;4982:6;4950:8;:39::i;:::-;5007:4;5000:11;;4850:169;;;;:::o;3725:108::-;3786:7;3813:12;;3806:19;;3725:108;:::o;5501:504::-;5607:4;5633:12;;;;;;;;;;;5632:13;5624:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5702:36;5712:6;5720:9;5731:6;5702:9;:36::i;:::-;5751:24;5778:11;:19;5790:6;5778:19;;;;;;;;;;;;;;;:33;5798:12;:10;:12::i;:::-;5778:33;;;;;;;;;;;;;;;;5751:60;;5850:6;5830:16;:26;;5822:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;5916:57;5925:6;5933:12;:10;:12::i;:::-;5966:6;5947:16;:25;;;;:::i;:::-;5916:8;:57::i;:::-;5993:4;5986:11;;;5501:504;;;;;:::o;12887:117::-;14590:6;;;;;;;;;;;14576:20;;:10;:20;;;14568:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;12990:6:::1;12975:12;;:21;;;;;;;;;;;;;;;;;;12887:117:::0;:::o;3567:93::-;3625:5;3650:2;3643:9;;3567:93;:::o;6414:215::-;6502:4;6519:80;6528:12;:10;:12::i;:::-;6542:7;6588:10;6551:11;:25;6563:12;:10;:12::i;:::-;6551:25;;;;;;;;;;;;;;;:34;6577:7;6551:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6519:8;:80::i;:::-;6617:4;6610:11;;6414:215;;;;:::o;3896:127::-;3970:7;3997:9;:18;4007:7;3997:18;;;;;;;;;;;;;;;;3990:25;;3896:127;;;:::o;13769:148::-;14783:11;:23;14795:10;14783:23;;;;;;;;;;;;;;;;;;;;;;;;;14775:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13887:22:::1;13893:7;13902:6;13887:5;:22::i;:::-;13769:148:::0;;:::o;11704:97::-;11747:4;11786:6;;;;;;;;;;;11772:20;;:10;:20;;;11764:29;;11704:97;:::o;2824:104::-;2880:13;2913:7;2906:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2824:104;:::o;7132:381::-;7225:4;7242:24;7269:11;:25;7281:12;:10;:12::i;:::-;7269:25;;;;;;;;;;;;;;;:34;7295:7;7269:34;;;;;;;;;;;;;;;;7242:61;;7342:15;7322:16;:35;;7314:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;7414:67;7423:12;:10;:12::i;:::-;7437:7;7465:15;7446:16;:34;;;;:::i;:::-;7414:8;:67::i;:::-;7501:4;7494:11;;;7132:381;;;;:::o;4236:253::-;4322:4;4348:12;;;;;;;;;;;4347:13;4339:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4417:42;4427:12;:10;:12::i;:::-;4441:9;4452:6;4417:9;:42::i;:::-;4477:4;4470:11;;4236:253;;;;:::o;13131:233::-;14783:11;:23;14795:10;14783:23;;;;;;;;;;;;;;;;;;;;;;;;;14775:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13240:27:::1;13233:3;:34;;13225:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;13353:3;13341:9;:15;;;;13131:233:::0;:::o;14291:176::-;14783:11;:23;14795:10;14783:23;;;;;;;;;;;;;;;;;;;;;;;;;14775:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;14427:32:::1;14436:5;14443:7;14452:6;14427:8;:32::i;:::-;14291:176:::0;;;:::o;12278:172::-;14590:6;;;;;;;;;;;14576:20;;:10;:20;;;14568:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;12393:4:::1;12369:11;:21;12381:8;12369:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;12412:15;12433:8;12412:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12278:172:::0;:::o;14036:147::-;14783:11;:23;14795:10;14783:23;;;;;;;;;;;;;;;;;;;;;;;;;14775:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;14153:22:::1;14159:7;14168:6;14153:5;:22::i;:::-;14036:147:::0;;:::o;12102:121::-;14590:6;;;;;;;;;;;14576:20;;:10;:20;;;14568:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;12207:8:::1;12198:6;;:17;;;;;;;;;;;;;;;;;;12102:121:::0;:::o;4552:151::-;4641:7;4668:11;:18;4680:5;4668:18;;;;;;;;;;;;;;;:27;4687:7;4668:27;;;;;;;;;;;;;;;;4661:34;;4552:151;;;;:::o;13469:184::-;14783:11;:23;14795:10;14783:23;;;;;;;;;;;;;;;;;;;;;;;;;14775:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13609:36:::1;13619:6;13627:9;13638:6;13609:9;:36::i;:::-;13469:184:::0;;;:::o;11863:105::-;11911:4;11936:11;:23;11948:10;11936:23;;;;;;;;;;;;;;;;;;;;;;;;;11928:32;;11863:105;:::o;601:98:1:-;654:7;681:10;674:17;;601:98;:::o;10598:354:2:-;10717:1;10700:19;;:5;:19;;;;10692:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10802:1;10783:21;;:7;:21;;;;10775:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10890:6;10860:11;:18;10872:5;10860:18;;;;;;;;;;;;;;;:27;10879:7;10860:27;;;;;;;;;;;;;;;:36;;;;10928:7;10912:32;;10921:5;10912:32;;;10937:6;10912:32;;;;;;:::i;:::-;;;;;;;;10598:354;;;:::o;8003:614::-;8127:1;8109:20;;:6;:20;;;;8101:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8215:1;8194:23;;:9;:23;;;;8186:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;8272:47;8293:6;8301:9;8312:6;8272:20;:47::i;:::-;8332:21;8356:9;:17;8366:6;8356:17;;;;;;;;;;;;;;;;8332:41;;8409:6;8392:13;:23;;8384:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;8509:6;8493:13;:22;;;;:::i;:::-;8473:9;:17;8483:6;8473:17;;;;;;;;;;;;;;;:42;;;;8550:6;8526:9;:20;8536:9;8526:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8591:9;8574:35;;8583:6;8574:35;;;8602:6;8574:35;;;;;;:::i;:::-;;;;;;;;8090:527;8003:614;;;:::o;8904:421::-;9007:1;8988:21;;:7;:21;;;;8980:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;9093:9;;9083:6;9068:12;;:21;;;;:::i;:::-;:34;;9060:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9141:49;9170:1;9174:7;9183:6;9141:20;:49::i;:::-;9219:6;9203:12;;:22;;;;;;;:::i;:::-;;;;;;;;9258:6;9236:9;:18;9246:7;9236:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;9301:7;9280:37;;9297:1;9280:37;;;9310:6;9280:37;;;;;;:::i;:::-;;;;;;;;8904:421;;:::o;9658:502::-;9761:1;9742:21;;:7;:21;;;;9734:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9818:49;9839:7;9856:1;9860:6;9818:20;:49::i;:::-;9880:22;9905:9;:18;9915:7;9905:18;;;;;;;;;;;;;;;;9880:43;;9960:6;9942:14;:24;;9934:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;10058:6;10041:14;:23;;;;:::i;:::-;10020:9;:18;10030:7;10020:18;;;;;;;;;;;;;;;:44;;;;10091:6;10075:12;;:22;;;;;;;:::i;:::-;;;;;;;;10141:1;10115:37;;10124:7;10115:37;;;10145:6;10115:37;;;;;;:::i;:::-;;;;;;;;9723:437;9658:502;;:::o;11555:92::-;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:139:6:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:133::-;195:5;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;152:133;;;;:::o;291:139::-;337:5;375:6;362:20;353:29;;391:33;418:5;391:33;:::i;:::-;291:139;;;;:::o;436:329::-;495:6;544:2;532:9;523:7;519:23;515:32;512:119;;;550:79;;:::i;:::-;512:119;670:1;695:53;740:7;731:6;720:9;716:22;695:53;:::i;:::-;685:63;;641:117;436:329;;;;:::o;771:474::-;839:6;847;896:2;884:9;875:7;871:23;867:32;864:119;;;902:79;;:::i;:::-;864:119;1022:1;1047:53;1092:7;1083:6;1072:9;1068:22;1047:53;:::i;:::-;1037:63;;993:117;1149:2;1175:53;1220:7;1211:6;1200:9;1196:22;1175:53;:::i;:::-;1165:63;;1120:118;771:474;;;;;:::o;1251:619::-;1328:6;1336;1344;1393:2;1381:9;1372:7;1368:23;1364:32;1361:119;;;1399:79;;:::i;:::-;1361:119;1519:1;1544:53;1589:7;1580:6;1569:9;1565:22;1544:53;:::i;:::-;1534:63;;1490:117;1646:2;1672:53;1717:7;1708:6;1697:9;1693:22;1672:53;:::i;:::-;1662:63;;1617:118;1774:2;1800:53;1845:7;1836:6;1825:9;1821:22;1800:53;:::i;:::-;1790:63;;1745:118;1251:619;;;;;:::o;1876:474::-;1944:6;1952;2001:2;1989:9;1980:7;1976:23;1972:32;1969:119;;;2007:79;;:::i;:::-;1969:119;2127:1;2152:53;2197:7;2188:6;2177:9;2173:22;2152:53;:::i;:::-;2142:63;;2098:117;2254:2;2280:53;2325:7;2316:6;2305:9;2301:22;2280:53;:::i;:::-;2270:63;;2225:118;1876:474;;;;;:::o;2356:323::-;2412:6;2461:2;2449:9;2440:7;2436:23;2432:32;2429:119;;;2467:79;;:::i;:::-;2429:119;2587:1;2612:50;2654:7;2645:6;2634:9;2630:22;2612:50;:::i;:::-;2602:60;;2558:114;2356:323;;;;:::o;2685:329::-;2744:6;2793:2;2781:9;2772:7;2768:23;2764:32;2761:119;;;2799:79;;:::i;:::-;2761:119;2919:1;2944:53;2989:7;2980:6;2969:9;2965:22;2944:53;:::i;:::-;2934:63;;2890:117;2685:329;;;;:::o;3020:109::-;3101:21;3116:5;3101:21;:::i;:::-;3096:3;3089:34;3020:109;;:::o;3135:364::-;3223:3;3251:39;3284:5;3251:39;:::i;:::-;3306:71;3370:6;3365:3;3306:71;:::i;:::-;3299:78;;3386:52;3431:6;3426:3;3419:4;3412:5;3408:16;3386:52;:::i;:::-;3463:29;3485:6;3463:29;:::i;:::-;3458:3;3454:39;3447:46;;3227:272;3135:364;;;;:::o;3505:366::-;3647:3;3668:67;3732:2;3727:3;3668:67;:::i;:::-;3661:74;;3744:93;3833:3;3744:93;:::i;:::-;3862:2;3857:3;3853:12;3846:19;;3505:366;;;:::o;3877:::-;4019:3;4040:67;4104:2;4099:3;4040:67;:::i;:::-;4033:74;;4116:93;4205:3;4116:93;:::i;:::-;4234:2;4229:3;4225:12;4218:19;;3877:366;;;:::o;4249:::-;4391:3;4412:67;4476:2;4471:3;4412:67;:::i;:::-;4405:74;;4488:93;4577:3;4488:93;:::i;:::-;4606:2;4601:3;4597:12;4590:19;;4249:366;;;:::o;4621:::-;4763:3;4784:67;4848:2;4843:3;4784:67;:::i;:::-;4777:74;;4860:93;4949:3;4860:93;:::i;:::-;4978:2;4973:3;4969:12;4962:19;;4621:366;;;:::o;4993:::-;5135:3;5156:67;5220:2;5215:3;5156:67;:::i;:::-;5149:74;;5232:93;5321:3;5232:93;:::i;:::-;5350:2;5345:3;5341:12;5334:19;;4993:366;;;:::o;5365:::-;5507:3;5528:67;5592:2;5587:3;5528:67;:::i;:::-;5521:74;;5604:93;5693:3;5604:93;:::i;:::-;5722:2;5717:3;5713:12;5706:19;;5365:366;;;:::o;5737:::-;5879:3;5900:67;5964:2;5959:3;5900:67;:::i;:::-;5893:74;;5976:93;6065:3;5976:93;:::i;:::-;6094:2;6089:3;6085:12;6078:19;;5737:366;;;:::o;6109:::-;6251:3;6272:67;6336:2;6331:3;6272:67;:::i;:::-;6265:74;;6348:93;6437:3;6348:93;:::i;:::-;6466:2;6461:3;6457:12;6450:19;;6109:366;;;:::o;6481:::-;6623:3;6644:67;6708:2;6703:3;6644:67;:::i;:::-;6637:74;;6720:93;6809:3;6720:93;:::i;:::-;6838:2;6833:3;6829:12;6822:19;;6481:366;;;:::o;6853:::-;6995:3;7016:67;7080:2;7075:3;7016:67;:::i;:::-;7009:74;;7092:93;7181:3;7092:93;:::i;:::-;7210:2;7205:3;7201:12;7194:19;;6853:366;;;:::o;7225:::-;7367:3;7388:67;7452:2;7447:3;7388:67;:::i;:::-;7381:74;;7464:93;7553:3;7464:93;:::i;:::-;7582:2;7577:3;7573:12;7566:19;;7225:366;;;:::o;7597:::-;7739:3;7760:67;7824:2;7819:3;7760:67;:::i;:::-;7753:74;;7836:93;7925:3;7836:93;:::i;:::-;7954:2;7949:3;7945:12;7938:19;;7597:366;;;:::o;7969:::-;8111:3;8132:67;8196:2;8191:3;8132:67;:::i;:::-;8125:74;;8208:93;8297:3;8208:93;:::i;:::-;8326:2;8321:3;8317:12;8310:19;;7969:366;;;:::o;8341:::-;8483:3;8504:67;8568:2;8563:3;8504:67;:::i;:::-;8497:74;;8580:93;8669:3;8580:93;:::i;:::-;8698:2;8693:3;8689:12;8682:19;;8341:366;;;:::o;8713:::-;8855:3;8876:67;8940:2;8935:3;8876:67;:::i;:::-;8869:74;;8952:93;9041:3;8952:93;:::i;:::-;9070:2;9065:3;9061:12;9054:19;;8713:366;;;:::o;9085:118::-;9172:24;9190:5;9172:24;:::i;:::-;9167:3;9160:37;9085:118;;:::o;9209:112::-;9292:22;9308:5;9292:22;:::i;:::-;9287:3;9280:35;9209:112;;:::o;9327:210::-;9414:4;9452:2;9441:9;9437:18;9429:26;;9465:65;9527:1;9516:9;9512:17;9503:6;9465:65;:::i;:::-;9327:210;;;;:::o;9543:313::-;9656:4;9694:2;9683:9;9679:18;9671:26;;9743:9;9737:4;9733:20;9729:1;9718:9;9714:17;9707:47;9771:78;9844:4;9835:6;9771:78;:::i;:::-;9763:86;;9543:313;;;;:::o;9862:419::-;10028:4;10066:2;10055:9;10051:18;10043:26;;10115:9;10109:4;10105:20;10101:1;10090:9;10086:17;10079:47;10143:131;10269:4;10143:131;:::i;:::-;10135:139;;9862:419;;;:::o;10287:::-;10453:4;10491:2;10480:9;10476:18;10468:26;;10540:9;10534:4;10530:20;10526:1;10515:9;10511:17;10504:47;10568:131;10694:4;10568:131;:::i;:::-;10560:139;;10287:419;;;:::o;10712:::-;10878:4;10916:2;10905:9;10901:18;10893:26;;10965:9;10959:4;10955:20;10951:1;10940:9;10936:17;10929:47;10993:131;11119:4;10993:131;:::i;:::-;10985:139;;10712:419;;;:::o;11137:::-;11303:4;11341:2;11330:9;11326:18;11318:26;;11390:9;11384:4;11380:20;11376:1;11365:9;11361:17;11354:47;11418:131;11544:4;11418:131;:::i;:::-;11410:139;;11137:419;;;:::o;11562:::-;11728:4;11766:2;11755:9;11751:18;11743:26;;11815:9;11809:4;11805:20;11801:1;11790:9;11786:17;11779:47;11843:131;11969:4;11843:131;:::i;:::-;11835:139;;11562:419;;;:::o;11987:::-;12153:4;12191:2;12180:9;12176:18;12168:26;;12240:9;12234:4;12230:20;12226:1;12215:9;12211:17;12204:47;12268:131;12394:4;12268:131;:::i;:::-;12260:139;;11987:419;;;:::o;12412:::-;12578:4;12616:2;12605:9;12601:18;12593:26;;12665:9;12659:4;12655:20;12651:1;12640:9;12636:17;12629:47;12693:131;12819:4;12693:131;:::i;:::-;12685:139;;12412:419;;;:::o;12837:::-;13003:4;13041:2;13030:9;13026:18;13018:26;;13090:9;13084:4;13080:20;13076:1;13065:9;13061:17;13054:47;13118:131;13244:4;13118:131;:::i;:::-;13110:139;;12837:419;;;:::o;13262:::-;13428:4;13466:2;13455:9;13451:18;13443:26;;13515:9;13509:4;13505:20;13501:1;13490:9;13486:17;13479:47;13543:131;13669:4;13543:131;:::i;:::-;13535:139;;13262:419;;;:::o;13687:::-;13853:4;13891:2;13880:9;13876:18;13868:26;;13940:9;13934:4;13930:20;13926:1;13915:9;13911:17;13904:47;13968:131;14094:4;13968:131;:::i;:::-;13960:139;;13687:419;;;:::o;14112:::-;14278:4;14316:2;14305:9;14301:18;14293:26;;14365:9;14359:4;14355:20;14351:1;14340:9;14336:17;14329:47;14393:131;14519:4;14393:131;:::i;:::-;14385:139;;14112:419;;;:::o;14537:::-;14703:4;14741:2;14730:9;14726:18;14718:26;;14790:9;14784:4;14780:20;14776:1;14765:9;14761:17;14754:47;14818:131;14944:4;14818:131;:::i;:::-;14810:139;;14537:419;;;:::o;14962:::-;15128:4;15166:2;15155:9;15151:18;15143:26;;15215:9;15209:4;15205:20;15201:1;15190:9;15186:17;15179:47;15243:131;15369:4;15243:131;:::i;:::-;15235:139;;14962:419;;;:::o;15387:::-;15553:4;15591:2;15580:9;15576:18;15568:26;;15640:9;15634:4;15630:20;15626:1;15615:9;15611:17;15604:47;15668:131;15794:4;15668:131;:::i;:::-;15660:139;;15387:419;;;:::o;15812:::-;15978:4;16016:2;16005:9;16001:18;15993:26;;16065:9;16059:4;16055:20;16051:1;16040:9;16036:17;16029:47;16093:131;16219:4;16093:131;:::i;:::-;16085:139;;15812:419;;;:::o;16237:222::-;16330:4;16368:2;16357:9;16353:18;16345:26;;16381:71;16449:1;16438:9;16434:17;16425:6;16381:71;:::i;:::-;16237:222;;;;:::o;16465:214::-;16554:4;16592:2;16581:9;16577:18;16569:26;;16605:67;16669:1;16658:9;16654:17;16645:6;16605:67;:::i;:::-;16465:214;;;;:::o;16766:99::-;16818:6;16852:5;16846:12;16836:22;;16766:99;;;:::o;16871:169::-;16955:11;16989:6;16984:3;16977:19;17029:4;17024:3;17020:14;17005:29;;16871:169;;;;:::o;17046:305::-;17086:3;17105:20;17123:1;17105:20;:::i;:::-;17100:25;;17139:20;17157:1;17139:20;:::i;:::-;17134:25;;17293:1;17225:66;17221:74;17218:1;17215:81;17212:107;;;17299:18;;:::i;:::-;17212:107;17343:1;17340;17336:9;17329:16;;17046:305;;;;:::o;17357:191::-;17397:4;17417:20;17435:1;17417:20;:::i;:::-;17412:25;;17451:20;17469:1;17451:20;:::i;:::-;17446:25;;17490:1;17487;17484:8;17481:34;;;17495:18;;:::i;:::-;17481:34;17540:1;17537;17533:9;17525:17;;17357:191;;;;:::o;17554:96::-;17591:7;17620:24;17638:5;17620:24;:::i;:::-;17609:35;;17554:96;;;:::o;17656:90::-;17690:7;17733:5;17726:13;17719:21;17708:32;;17656:90;;;:::o;17752:126::-;17789:7;17829:42;17822:5;17818:54;17807:65;;17752:126;;;:::o;17884:77::-;17921:7;17950:5;17939:16;;17884:77;;;:::o;17967:86::-;18002:7;18042:4;18035:5;18031:16;18020:27;;17967:86;;;:::o;18059:307::-;18127:1;18137:113;18151:6;18148:1;18145:13;18137:113;;;18236:1;18231:3;18227:11;18221:18;18217:1;18212:3;18208:11;18201:39;18173:2;18170:1;18166:10;18161:15;;18137:113;;;18268:6;18265:1;18262:13;18259:101;;;18348:1;18339:6;18334:3;18330:16;18323:27;18259:101;18108:258;18059:307;;;:::o;18372:320::-;18416:6;18453:1;18447:4;18443:12;18433:22;;18500:1;18494:4;18490:12;18521:18;18511:81;;18577:4;18569:6;18565:17;18555:27;;18511:81;18639:2;18631:6;18628:14;18608:18;18605:38;18602:84;;;18658:18;;:::i;:::-;18602:84;18423:269;18372:320;;;:::o;18698:167::-;18735:3;18758:22;18774:5;18758:22;:::i;:::-;18749:31;;18802:4;18795:5;18792:15;18789:41;;;18810:18;;:::i;:::-;18789:41;18857:1;18850:5;18846:13;18839:20;;18698:167;;;:::o;18871:180::-;18919:77;18916:1;18909:88;19016:4;19013:1;19006:15;19040:4;19037:1;19030:15;19057:180;19105:77;19102:1;19095:88;19202:4;19199:1;19192:15;19226:4;19223:1;19216:15;19243:180;19291:77;19288:1;19281:88;19388:4;19385:1;19378:15;19412:4;19409:1;19402:15;19552:117;19661:1;19658;19651:12;19675:102;19716:6;19767:2;19763:7;19758:2;19751:5;19747:14;19743:28;19733:38;;19675:102;;;:::o;19783:225::-;19923:34;19919:1;19911:6;19907:14;19900:58;19992:8;19987:2;19979:6;19975:15;19968:33;19783:225;:::o;20014:228::-;20154:34;20150:1;20142:6;20138:14;20131:58;20223:11;20218:2;20210:6;20206:15;20199:36;20014:228;:::o;20248:226::-;20388:34;20384:1;20376:6;20372:14;20365:58;20457:9;20452:2;20444:6;20440:15;20433:34;20248:226;:::o;20480:222::-;20620:34;20616:1;20608:6;20604:14;20597:58;20689:5;20684:2;20676:6;20672:15;20665:30;20480:222;:::o;20708:224::-;20848:34;20844:1;20836:6;20832:14;20825:58;20917:7;20912:2;20904:6;20900:15;20893:32;20708:224;:::o;20938:228::-;21078:34;21074:1;21066:6;21062:14;21055:58;21147:11;21142:2;21134:6;21130:15;21123:36;20938:228;:::o;21172:::-;21312:34;21308:1;21300:6;21296:14;21289:58;21381:11;21376:2;21368:6;21364:15;21357:36;21172:228;:::o;21406:173::-;21546:25;21542:1;21534:6;21530:14;21523:49;21406:173;:::o;21585:231::-;21725:34;21721:1;21713:6;21709:14;21702:58;21794:14;21789:2;21781:6;21777:15;21770:39;21585:231;:::o;21822:225::-;21962:34;21958:1;21950:6;21946:14;21939:58;22031:8;22026:2;22018:6;22014:15;22007:33;21822:225;:::o;22053:229::-;22193:34;22189:1;22181:6;22177:14;22170:58;22262:12;22257:2;22249:6;22245:15;22238:37;22053:229;:::o;22288:220::-;22428:34;22424:1;22416:6;22412:14;22405:58;22497:3;22492:2;22484:6;22480:15;22473:28;22288:220;:::o;22514:225::-;22654:34;22650:1;22642:6;22638:14;22631:58;22723:8;22718:2;22710:6;22706:15;22699:33;22514:225;:::o;22745:228::-;22885:34;22881:1;22873:6;22869:14;22862:58;22954:11;22949:2;22941:6;22937:15;22930:36;22745:228;:::o;22979:227::-;23119:34;23115:1;23107:6;23103:14;23096:58;23188:10;23183:2;23175:6;23171:15;23164:35;22979:227;:::o;23212:122::-;23285:24;23303:5;23285:24;:::i;:::-;23278:5;23275:35;23265:63;;23324:1;23321;23314:12;23265:63;23212:122;:::o;23340:116::-;23410:21;23425:5;23410:21;:::i;:::-;23403:5;23400:32;23390:60;;23446:1;23443;23436:12;23390:60;23340:116;:::o;23462:122::-;23535:24;23553:5;23535:24;:::i;:::-;23528:5;23525:35;23515:63;;23574:1;23571;23564:12;23515:63;23462:122;:::o

Swarm Source

ipfs://3d9d41f1289b6da95a826fdc5e6ccde68dbfcf6029c804e7354d056d906536f7

Block Transaction Gas Used Reward
view all blocks produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

FTMO is a project launchpad designed to jump-start the nascent Fantom ecosystem by providing both a means for innovative project developers and investors to connect. The platform will support and incubate fledgling products powered by Fantom’s bleeding-edge efficiency and speed.

Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.