S Price: $0.454206 (+0.70%)

Token

SHARE (SHARE)

Overview

Max Total Supply

80,001 SHARE

Holders

6

Total Transfers

-

Market

Price

$0.00 @ 0.000000 S

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
Share

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at SonicScan.org on 2025-03-08
*/

/**
 *Submitted for verification at FtmScan.com on 2022-02-25
*/

/**
 *Submitted for verification at FtmScan.com on 2022-02-02
*/

// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        uint256 c = a + b;
        if (c < a) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b > a) return (false, 0);
        return (true, a - b);
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) return (true, 0);
        uint256 c = a * b;
        if (c / a != b) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a / b);
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a % b);
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) return 0;
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: modulo by zero");
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        return a - b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryDiv}.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a % b;
    }
}


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



pragma solidity >=0.6.0 <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 GSN 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 payable) {
        return msg.sender;
    }

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


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



pragma solidity >=0.6.0 <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 @openzeppelin/contracts/token/ERC20/[email protected]



pragma solidity >=0.6.0 <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.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 ERC20 is Context, IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    /**
     * @dev Sets the values for {name} and {symbol}, initializes {decimals} with
     * a default value of 18.
     *
     * To select a different value for {decimals}, use {_setupDecimals}.
     *
     * All three of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name_, string memory symbol_) public {
        _name = name_;
        _symbol = symbol_;
        _decimals = 18;
    }

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

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual 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 {_setupDecimals} is
     * called.
     *
     * 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 returns (uint8) {
        return _decimals;
    }

    /**
     * @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) {
        _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) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        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].add(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) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        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), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(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:
     *
     * - `to` 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 = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(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), "ERC20: burn from the zero address");

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

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(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), "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 Sets {decimals} to a value other than the default one of 18.
     *
     * WARNING: This function should only be called from the constructor. Most
     * applications that interact with token contracts will not expect
     * {decimals} to ever change, and may work incorrectly if it does.
     */
    function _setupDecimals(uint8 decimals_) internal virtual {
        _decimals = decimals_;
    }

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


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



pragma solidity >=0.6.0 <0.8.0;


/**
 * @dev Extension of {ERC20} that allows token holders to destroy both their own
 * tokens and those that they have an allowance for, in a way that can be
 * recognized off-chain (via event analysis).
 */
abstract contract ERC20Burnable is Context, ERC20 {
    using SafeMath for uint256;

    /**
     * @dev Destroys `amount` tokens from the caller.
     *
     * See {ERC20-_burn}.
     */
    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, deducting from the caller's
     * allowance.
     *
     * See {ERC20-_burn} and {ERC20-allowance}.
     *
     * Requirements:
     *
     * - the caller must have allowance for ``accounts``'s tokens of at least
     * `amount`.
     */
    function burnFrom(address account, uint256 amount) public virtual {
        uint256 decreasedAllowance = allowance(account, _msgSender()).sub(amount, "ERC20: burn amount exceeds allowance");

        _approve(account, _msgSender(), decreasedAllowance);
        _burn(account, amount);
    }
}


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



pragma solidity >=0.6.0 <0.8.0;


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



pragma solidity >=0.6.0 <0.8.0;

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

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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


// File contracts/owner/Operator.sol



pragma solidity 0.6.12;


contract Operator is Context, Ownable {
    address private _operator;

    event OperatorTransferred(address indexed previousOperator, address indexed newOperator);

    constructor() internal {
        _operator = _msgSender();
        emit OperatorTransferred(address(0), _operator);
    }

    function operator() public view returns (address) {
        return _operator;
    }

    modifier onlyOperator() {
        require(_operator == msg.sender, "operator: caller is not the operator");
        _;
    }

    function isOperator() public view returns (bool) {
        return _msgSender() == _operator;
    }

    function transferOperator(address newOperator_) public onlyOwner {
        _transferOperator(newOperator_);
    }

    function _transferOperator(address newOperator_) internal {
        require(newOperator_ != address(0), "operator: zero address given for new operator");
        emit OperatorTransferred(address(0), newOperator_);
        _operator = newOperator_;
    }
}
contract Share is ERC20Burnable, Operator {
    using SafeMath for uint256;

    // TOTAL MAX SUPPLY = 100,000 SHARE
    uint256 public constant FARMING_POOL_REWARD_ALLOCATION = 80000 ether;
    uint256 public constant COMMUNITY_FUND_POOL_ALLOCATION = 15000 ether;
    uint256 public constant DEV_FUND_POOL_ALLOCATION = 4999 ether;

    uint256 public constant VESTING_DURATION = 2 days;
    uint256 public startTime;
    uint256 public endTime;

    uint256 public communityFundRewardRate;
    uint256 public devFundRewardRate;

    address public communityFund;
    address public devFund1;
    address public devFund2;
    address public devFund3;
    address public devFund4;

    uint256 public communityFundLastClaimed;
    uint256 public devFundLastClaimed;

    bool public rewardPoolDistributed = false;

    constructor(uint256 _startTime, address _communityFund, address _devFund1, address _devFund2, address _devFund3, address _devFund4) public ERC20("SHARE", "SHARE") {
        _mint(msg.sender, 1 ether); // mint 1 SHARE for initial pools deployment

        startTime = _startTime;
        endTime = startTime + VESTING_DURATION;

        communityFundLastClaimed = startTime;
        devFundLastClaimed = startTime;

        communityFundRewardRate = COMMUNITY_FUND_POOL_ALLOCATION.div(VESTING_DURATION);
        devFundRewardRate = DEV_FUND_POOL_ALLOCATION.div(VESTING_DURATION);

        require(_devFund1 != address(0), "Address cannot be 0");
        require(_devFund2 != address(0), "Address cannot be 0");
        require(_devFund3 != address(0), "Address cannot be 0");
        require(_devFund4 != address(0), "Address cannot be 0");
        devFund1 = _devFund1;
        devFund2 = _devFund2;
        devFund3 = _devFund3;
        devFund4 = _devFund4;

        require(_communityFund != address(0), "Address cannot be 0");
        communityFund = _communityFund;
    }

    function setTreasuryFund(address _communityFund) external onlyOwner {
        require(_communityFund != address(0), "zero");
        communityFund = _communityFund;
    }

    function setDevFund(uint parameter, address _devFund) external onlyOwner {
        require(_devFund != address(0), "zero"); 
        if (parameter == 1) {
            devFund1 = _devFund;
        } else if (parameter == 2) {
            devFund2 = _devFund;
        } else if (parameter == 3) {
            devFund3 = _devFund;
        } else if (parameter == 4) {
            devFund4 = _devFund;
        }
    }

    function unclaimedTreasuryFund() public view returns (uint256 _pending) {
        uint256 _now = block.timestamp;
        if (_now > endTime) _now = endTime;
        if (communityFundLastClaimed >= _now) return 0;
        _pending = _now.sub(communityFundLastClaimed).mul(communityFundRewardRate);
    }

    function unclaimedDevFund() public view returns (uint256 _pending) {
        uint256 _now = block.timestamp;
        if (_now > endTime) _now = endTime;
        if (devFundLastClaimed >= _now) return 0;
        _pending = _now.sub(devFundLastClaimed).mul(devFundRewardRate);
    }

    /**
     * @dev Claim pending rewards to community and dev fund
     */
    function claimRewards() external onlyOwner {
        uint256 _pending = unclaimedTreasuryFund();
        if (_pending > 0 && communityFund != address(0)) {
            _mint(communityFund, _pending);
            communityFundLastClaimed = block.timestamp;
        }
        _pending = unclaimedDevFund();
        if (_pending > 0 && devFund1 != address(0) && devFund2 != address(0) && devFund3 != address(0) && devFund4 != address(0)) {
            _mint(devFund1, _pending.div(4));
            _mint(devFund2, _pending.div(4));
            _mint(devFund3, _pending.div(4));
            _mint(devFund4, _pending.div(4));
            devFundLastClaimed = block.timestamp;
        }
    }

    /**
     * @notice distribute to reward pool (only once)
     */
    function distributeReward(address _farmingIncentiveFund) external onlyOperator {
        require(!rewardPoolDistributed, "only can distribute once");
        require(_farmingIncentiveFund != address(0), "!_farmingIncentiveFund");
        rewardPoolDistributed = true;
        _mint(_farmingIncentiveFund, FARMING_POOL_REWARD_ALLOCATION);
    }

    function burn(uint256 amount) public override {
        super.burn(amount);
    }

    function governanceRecoverUnsupported(
        IERC20 _token,
        uint256 _amount,
        address _to
    ) external onlyOperator {
        _token.transfer(_to, _amount);
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"},{"internalType":"address","name":"_communityFund","type":"address"},{"internalType":"address","name":"_devFund1","type":"address"},{"internalType":"address","name":"_devFund2","type":"address"},{"internalType":"address","name":"_devFund3","type":"address"},{"internalType":"address","name":"_devFund4","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":"previousOperator","type":"address"},{"indexed":true,"internalType":"address","name":"newOperator","type":"address"}],"name":"OperatorTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"COMMUNITY_FUND_POOL_ALLOCATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEV_FUND_POOL_ALLOCATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FARMING_POOL_REWARD_ALLOCATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VESTING_DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"communityFund","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"communityFundLastClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"communityFundRewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devFund1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFund2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFund3","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFund4","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFundLastClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFundRewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_farmingIncentiveFund","type":"address"}],"name":"distributeReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_to","type":"address"}],"name":"governanceRecoverUnsupported","outputs":[],"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":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPoolDistributed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"parameter","type":"uint256"},{"internalType":"address","name":"_devFund","type":"address"}],"name":"setDevFund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_communityFund","type":"address"}],"name":"setTreasuryFund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"inputs":[{"internalType":"address","name":"newOperator_","type":"address"}],"name":"transferOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unclaimedDevFund","outputs":[{"internalType":"uint256","name":"_pending","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unclaimedTreasuryFund","outputs":[{"internalType":"uint256","name":"_pending","type":"uint256"}],"stateMutability":"view","type":"function"}]

60806040526000601260006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b5060405162003d6a38038062003d6a833981810160405260c08110156200005257600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050506040518060400160405280600581526020017f53484152450000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f534841524500000000000000000000000000000000000000000000000000000081525081600390805190602001906200011992919062000aee565b5080600490805190602001906200013292919062000aee565b506012600560006101000a81548160ff021916908360ff1602179055505050600062000163620007ef60201b60201c565b905080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35062000212620007ef60201b60201c565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a3620002e933670de0b6b3a7640000620007f760201b60201c565b856007819055506202a30060075401600881905550600754601081905550600754601181905550620003376202a30069032d26d12e980b600000620009d560201b620023331790919060201c565b600981905550620003646202a30069010eff0fae29b1bc0000620009d560201b620023331790919060201c565b600a81905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156200040e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f416464726573732063616e6e6f7420626520300000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415620004b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f416464726573732063616e6e6f7420626520300000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000556576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f416464726573732063616e6e6f7420626520300000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620005fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f416464726573732063616e6e6f7420626520300000000000000000000000000081525060200191505060405180910390fd5b83600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415620007a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f416464726573732063616e6e6f7420626520300000000000000000000000000081525060200191505060405180910390fd5b84600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505062000b94565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200089b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b620008af6000838362000a6060201b60201c565b620008cb8160025462000a6560201b620023bc1790919060201c565b60028190555062000929816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000a6560201b620023bc1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600080821162000a4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b81838162000a5757fe5b04905092915050565b505050565b60008082840190508381101562000ae4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000b3157805160ff191683800117855562000b62565b8280016001018555821562000b62579182015b8281111562000b6157825182559160200191906001019062000b44565b5b50905062000b71919062000b75565b5090565b5b8082111562000b9057600081600090555060010162000b76565b5090565b6131c68062000ba46000396000f3fe608060405234801561001057600080fd5b506004361061025d5760003560e01c80634cfc4d30116101465780638da5cb5b116100c3578063a9059cbb11610087578063a9059cbb14610a45578063abb4b1be14610aa9578063ca9ab2ee14610ac7578063dd62ed3e14610afb578063f2fde38b14610b73578063f746b71814610bb75761025d565b80638da5cb5b146108ec57806395d89b41146109205780639662676c146109a3578063a06160fd146109c3578063a457c2d7146109e15761025d565b80636dc651d91161010a5780636dc651d9146107ea57806370a082311461081e578063715018a61461087657806378e979251461088057806379cc67901461089e5761025d565b80634cfc4d30146106d85780634f337dd5146106f657806354575af414610714578063570ca735146107825780636beec71a146107b65761025d565b80632c07a624116101df578063387e1faf116101a3578063387e1faf1461059c57806339509351146105ea5780633bba8eed1461064e57806342966c681461066c5780634456eda21461069a57806344cdc454146106ba5761025d565b80632c07a624146105175780632e3367ce14610535578063313ce567146105535780633197cbb614610574578063372500ab146105925761025d565b8063117effeb11610226578063117effeb146103df578063177647821461041357806318160ddd1461043157806323b872dd1461044f57806329605e77146104d35761025d565b8062f380f414610262578063040173151461029657806306fdde03146102b4578063092193ab14610337578063095ea7b31461037b575b600080fd5b61026a610bfb565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61029e610c21565b6040518082815260200191505060405180910390f35b6102bc610c27565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102fc5780820151818401526020810190506102e1565b50505050905090810190601f1680156103295780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103796004803603602081101561034d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cc9565b005b6103c76004803603604081101561039157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ec7565b60405180821515815260200191505060405180910390f35b6103e7610ee5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61041b610f0b565b6040518082815260200191505060405180910390f35b610439610f64565b6040518082815260200191505060405180910390f35b6104bb6004803603606081101561046557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f6e565b60405180821515815260200191505060405180910390f35b610515600480360360208110156104e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611047565b005b61051f611102565b6040518082815260200191505060405180910390f35b61053d61115b565b6040518082815260200191505060405180910390f35b61055b611161565b604051808260ff16815260200191505060405180910390f35b61057c611178565b6040518082815260200191505060405180910390f35b61059a61117e565b005b6105e8600480360360408110156105b257600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611557565b005b6106366004803603604081101561060057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117e8565b60405180821515815260200191505060405180910390f35b61065661189b565b6040518082815260200191505060405180910390f35b6106986004803603602081101561068257600080fd5b81019080803590602001909291905050506118a9565b005b6106a26118b5565b60405180821515815260200191505060405180910390f35b6106c2611914565b6040518082815260200191505060405180910390f35b6106e061191a565b6040518082815260200191505060405180910390f35b6106fe611921565b6040518082815260200191505060405180910390f35b6107806004803603606081101561072a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061192f565b005b61078a611a87565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107be611ab1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107f2611ad7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108606004803603602081101561083457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611afd565b6040518082815260200191505060405180910390f35b61087e611b45565b005b610888611cb5565b6040518082815260200191505060405180910390f35b6108ea600480360360408110156108b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cbb565b005b6108f4611d1d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610928611d47565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561096857808201518184015260208101905061094d565b50505050905090810190601f1680156109955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6109ab611de9565b60405180821515815260200191505060405180910390f35b6109cb611dfc565b6040518082815260200191505060405180910390f35b610a2d600480360360408110156109f757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e0a565b60405180821515815260200191505060405180910390f35b610a9160048036036040811015610a5b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ed7565b60405180821515815260200191505060405180910390f35b610ab1611ef5565b6040518082815260200191505060405180910390f35b610acf611efb565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b5d60048036036040811015610b1157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f21565b6040518082815260200191505060405180910390f35b610bb560048036036020811015610b8957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fa8565b005b610bf960048036036020811015610bcd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061219d565b005b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cbf5780601f10610c9457610100808354040283529160200191610cbf565b820191906000526020600020905b815481529060010190602001808311610ca257829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806130de6024913960400191505060405180910390fd5b601260009054906101000a900460ff1615610df2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6f6e6c792063616e2064697374726962757465206f6e6365000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e95576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f215f6661726d696e67496e63656e7469766546756e640000000000000000000081525060200191505060405180910390fd5b6001601260006101000a81548160ff021916908315150217905550610ec4816910f0cf064dd592000000612444565b50565b6000610edb610ed461260b565b8484612613565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080429050600854811115610f215760085490505b8060105410610f34576000915050610f61565b610f5d600954610f4f6010548461280a90919063ffffffff16565b61288d90919063ffffffff16565b9150505b90565b6000600254905090565b6000610f7b848484612913565b61103c84610f8761260b565b6110378560405180606001604052806028815260200161309260289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610fed61260b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bd49092919063ffffffff16565b612613565b600190509392505050565b61104f61260b565b73ffffffffffffffffffffffffffffffffffffffff1661106d611d1d565b73ffffffffffffffffffffffffffffffffffffffff16146110f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6110ff81612c8e565b50565b6000804290506008548111156111185760085490505b806011541061112b576000915050611158565b611154600a546111466011548461280a90919063ffffffff16565b61288d90919063ffffffff16565b9150505b90565b600a5481565b6000600560009054906101000a900460ff16905090565b60085481565b61118661260b565b73ffffffffffffffffffffffffffffffffffffffff166111a4611d1d565b73ffffffffffffffffffffffffffffffffffffffff161461122d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000611237610f0b565b90506000811180156112985750600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b156112d1576112c9600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612444565b426010819055505b6112d9611102565b905060008111801561133a5750600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80156113955750600073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80156113f05750600073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b801561144b5750600073ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b156115545761148f600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661148a60048461233390919063ffffffff16565b612444565b6114ce600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114c960048461233390919063ffffffff16565b612444565b61150d600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661150860048461233390919063ffffffff16565b612444565b61154c600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661154760048461233390919063ffffffff16565b612444565b426011819055505b50565b61155f61260b565b73ffffffffffffffffffffffffffffffffffffffff1661157d611d1d565b73ffffffffffffffffffffffffffffffffffffffff1614611606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f7a65726f0000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018214156116f85780600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117e4565b60028214156117475780600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117e3565b60038214156117965780600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117e2565b60048214156117e15780600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b5b5b5050565b60006118916117f561260b565b8461188c856001600061180661260b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bc90919063ffffffff16565b612613565b6001905092915050565b69032d26d12e980b60000081565b6118b281612db3565b50565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118f861260b565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b60095481565b6202a30081565b69010eff0fae29b1bc000081565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806130de6024913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611a4657600080fd5b505af1158015611a5a573d6000803e3d6000fd5b505050506040513d6020811015611a7057600080fd5b810190808051906020019092919050505050505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611b4d61260b565b73ffffffffffffffffffffffffffffffffffffffff16611b6b611d1d565b73ffffffffffffffffffffffffffffffffffffffff1614611bf4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60075481565b6000611cfa826040518060600160405280602481526020016130ba60249139611ceb86611ce661260b565b611f21565b612bd49092919063ffffffff16565b9050611d0e83611d0861260b565b83612613565b611d188383612dc7565b505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ddf5780601f10611db457610100808354040283529160200191611ddf565b820191906000526020600020905b815481529060010190602001808311611dc257829003601f168201915b5050505050905090565b601260009054906101000a900460ff1681565b6910f0cf064dd59200000081565b6000611ecd611e1761260b565b84611ec88560405180606001604052806025815260200161316c6025913960016000611e4161260b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bd49092919063ffffffff16565b612613565b6001905092915050565b6000611eeb611ee461260b565b8484612913565b6001905092915050565b60105481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611fb061260b565b73ffffffffffffffffffffffffffffffffffffffff16611fce611d1d565b73ffffffffffffffffffffffffffffffffffffffff1614612057576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156120dd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612fd66026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6121a561260b565b73ffffffffffffffffffffffffffffffffffffffff166121c3611d1d565b73ffffffffffffffffffffffffffffffffffffffff161461224c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156122ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f7a65726f0000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008082116123aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b8183816123b357fe5b04905092915050565b60008082840190508381101561243a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6124f360008383612f8b565b612508816002546123bc90919063ffffffff16565b60028190555061255f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bc90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612699576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806131486024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561271f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612ffc6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600082821115612882576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b6000808314156128a0576000905061290d565b60008284029050828482816128b157fe5b0414612908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806130716021913960400191505060405180910390fd5b809150505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612999576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806131236025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612f916023913960400191505060405180910390fd5b612a2a838383612f8b565b612a958160405180606001604052806026815260200161301e602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bd49092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b28816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bc90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290612c81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612c46578082015181840152602081019050612c2b565b50505050905090810190601f168015612c735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612d14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180613044602d913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612dc4612dbe61260b565b82612dc7565b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e4d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806131026021913960400191505060405180910390fd5b612e5982600083612f8b565b612ec481604051806060016040528060228152602001612fb4602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bd49092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f1b8160025461280a90919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63656f70657261746f723a207a65726f206164647265737320676976656e20666f72206e6577206f70657261746f72536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e63656f70657261746f723a2063616c6c6572206973206e6f7420746865206f70657261746f7245524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220623d9086db486bb17dfa18c1c768e212c9b12615f3445827d05dccc77edd92eb64736f6c634300060c00330000000000000000000000000000000000000000000000000000000067cc85a0000000000000000000000000ef353f79d4368a26ee535a21763fa5ee2bd87171000000000000000000000000ef353f79d4368a26ee535a21763fa5ee2bd87171000000000000000000000000ef353f79d4368a26ee535a21763fa5ee2bd87171000000000000000000000000ef353f79d4368a26ee535a21763fa5ee2bd87171000000000000000000000000ef353f79d4368a26ee535a21763fa5ee2bd87171

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061025d5760003560e01c80634cfc4d30116101465780638da5cb5b116100c3578063a9059cbb11610087578063a9059cbb14610a45578063abb4b1be14610aa9578063ca9ab2ee14610ac7578063dd62ed3e14610afb578063f2fde38b14610b73578063f746b71814610bb75761025d565b80638da5cb5b146108ec57806395d89b41146109205780639662676c146109a3578063a06160fd146109c3578063a457c2d7146109e15761025d565b80636dc651d91161010a5780636dc651d9146107ea57806370a082311461081e578063715018a61461087657806378e979251461088057806379cc67901461089e5761025d565b80634cfc4d30146106d85780634f337dd5146106f657806354575af414610714578063570ca735146107825780636beec71a146107b65761025d565b80632c07a624116101df578063387e1faf116101a3578063387e1faf1461059c57806339509351146105ea5780633bba8eed1461064e57806342966c681461066c5780634456eda21461069a57806344cdc454146106ba5761025d565b80632c07a624146105175780632e3367ce14610535578063313ce567146105535780633197cbb614610574578063372500ab146105925761025d565b8063117effeb11610226578063117effeb146103df578063177647821461041357806318160ddd1461043157806323b872dd1461044f57806329605e77146104d35761025d565b8062f380f414610262578063040173151461029657806306fdde03146102b4578063092193ab14610337578063095ea7b31461037b575b600080fd5b61026a610bfb565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61029e610c21565b6040518082815260200191505060405180910390f35b6102bc610c27565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102fc5780820151818401526020810190506102e1565b50505050905090810190601f1680156103295780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103796004803603602081101561034d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cc9565b005b6103c76004803603604081101561039157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ec7565b60405180821515815260200191505060405180910390f35b6103e7610ee5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61041b610f0b565b6040518082815260200191505060405180910390f35b610439610f64565b6040518082815260200191505060405180910390f35b6104bb6004803603606081101561046557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f6e565b60405180821515815260200191505060405180910390f35b610515600480360360208110156104e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611047565b005b61051f611102565b6040518082815260200191505060405180910390f35b61053d61115b565b6040518082815260200191505060405180910390f35b61055b611161565b604051808260ff16815260200191505060405180910390f35b61057c611178565b6040518082815260200191505060405180910390f35b61059a61117e565b005b6105e8600480360360408110156105b257600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611557565b005b6106366004803603604081101561060057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117e8565b60405180821515815260200191505060405180910390f35b61065661189b565b6040518082815260200191505060405180910390f35b6106986004803603602081101561068257600080fd5b81019080803590602001909291905050506118a9565b005b6106a26118b5565b60405180821515815260200191505060405180910390f35b6106c2611914565b6040518082815260200191505060405180910390f35b6106e061191a565b6040518082815260200191505060405180910390f35b6106fe611921565b6040518082815260200191505060405180910390f35b6107806004803603606081101561072a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061192f565b005b61078a611a87565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107be611ab1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107f2611ad7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108606004803603602081101561083457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611afd565b6040518082815260200191505060405180910390f35b61087e611b45565b005b610888611cb5565b6040518082815260200191505060405180910390f35b6108ea600480360360408110156108b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cbb565b005b6108f4611d1d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610928611d47565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561096857808201518184015260208101905061094d565b50505050905090810190601f1680156109955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6109ab611de9565b60405180821515815260200191505060405180910390f35b6109cb611dfc565b6040518082815260200191505060405180910390f35b610a2d600480360360408110156109f757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e0a565b60405180821515815260200191505060405180910390f35b610a9160048036036040811015610a5b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ed7565b60405180821515815260200191505060405180910390f35b610ab1611ef5565b6040518082815260200191505060405180910390f35b610acf611efb565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b5d60048036036040811015610b1157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f21565b6040518082815260200191505060405180910390f35b610bb560048036036020811015610b8957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fa8565b005b610bf960048036036020811015610bcd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061219d565b005b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cbf5780601f10610c9457610100808354040283529160200191610cbf565b820191906000526020600020905b815481529060010190602001808311610ca257829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806130de6024913960400191505060405180910390fd5b601260009054906101000a900460ff1615610df2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6f6e6c792063616e2064697374726962757465206f6e6365000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e95576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f215f6661726d696e67496e63656e7469766546756e640000000000000000000081525060200191505060405180910390fd5b6001601260006101000a81548160ff021916908315150217905550610ec4816910f0cf064dd592000000612444565b50565b6000610edb610ed461260b565b8484612613565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080429050600854811115610f215760085490505b8060105410610f34576000915050610f61565b610f5d600954610f4f6010548461280a90919063ffffffff16565b61288d90919063ffffffff16565b9150505b90565b6000600254905090565b6000610f7b848484612913565b61103c84610f8761260b565b6110378560405180606001604052806028815260200161309260289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610fed61260b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bd49092919063ffffffff16565b612613565b600190509392505050565b61104f61260b565b73ffffffffffffffffffffffffffffffffffffffff1661106d611d1d565b73ffffffffffffffffffffffffffffffffffffffff16146110f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6110ff81612c8e565b50565b6000804290506008548111156111185760085490505b806011541061112b576000915050611158565b611154600a546111466011548461280a90919063ffffffff16565b61288d90919063ffffffff16565b9150505b90565b600a5481565b6000600560009054906101000a900460ff16905090565b60085481565b61118661260b565b73ffffffffffffffffffffffffffffffffffffffff166111a4611d1d565b73ffffffffffffffffffffffffffffffffffffffff161461122d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000611237610f0b565b90506000811180156112985750600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b156112d1576112c9600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612444565b426010819055505b6112d9611102565b905060008111801561133a5750600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80156113955750600073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80156113f05750600073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b801561144b5750600073ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b156115545761148f600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661148a60048461233390919063ffffffff16565b612444565b6114ce600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114c960048461233390919063ffffffff16565b612444565b61150d600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661150860048461233390919063ffffffff16565b612444565b61154c600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661154760048461233390919063ffffffff16565b612444565b426011819055505b50565b61155f61260b565b73ffffffffffffffffffffffffffffffffffffffff1661157d611d1d565b73ffffffffffffffffffffffffffffffffffffffff1614611606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f7a65726f0000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018214156116f85780600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117e4565b60028214156117475780600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117e3565b60038214156117965780600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117e2565b60048214156117e15780600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b5b5b5050565b60006118916117f561260b565b8461188c856001600061180661260b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bc90919063ffffffff16565b612613565b6001905092915050565b69032d26d12e980b60000081565b6118b281612db3565b50565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118f861260b565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b60095481565b6202a30081565b69010eff0fae29b1bc000081565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806130de6024913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611a4657600080fd5b505af1158015611a5a573d6000803e3d6000fd5b505050506040513d6020811015611a7057600080fd5b810190808051906020019092919050505050505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611b4d61260b565b73ffffffffffffffffffffffffffffffffffffffff16611b6b611d1d565b73ffffffffffffffffffffffffffffffffffffffff1614611bf4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60075481565b6000611cfa826040518060600160405280602481526020016130ba60249139611ceb86611ce661260b565b611f21565b612bd49092919063ffffffff16565b9050611d0e83611d0861260b565b83612613565b611d188383612dc7565b505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ddf5780601f10611db457610100808354040283529160200191611ddf565b820191906000526020600020905b815481529060010190602001808311611dc257829003601f168201915b5050505050905090565b601260009054906101000a900460ff1681565b6910f0cf064dd59200000081565b6000611ecd611e1761260b565b84611ec88560405180606001604052806025815260200161316c6025913960016000611e4161260b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bd49092919063ffffffff16565b612613565b6001905092915050565b6000611eeb611ee461260b565b8484612913565b6001905092915050565b60105481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611fb061260b565b73ffffffffffffffffffffffffffffffffffffffff16611fce611d1d565b73ffffffffffffffffffffffffffffffffffffffff1614612057576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156120dd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612fd66026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6121a561260b565b73ffffffffffffffffffffffffffffffffffffffff166121c3611d1d565b73ffffffffffffffffffffffffffffffffffffffff161461224c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156122ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f7a65726f0000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008082116123aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b8183816123b357fe5b04905092915050565b60008082840190508381101561243a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6124f360008383612f8b565b612508816002546123bc90919063ffffffff16565b60028190555061255f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bc90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612699576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806131486024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561271f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612ffc6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600082821115612882576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b6000808314156128a0576000905061290d565b60008284029050828482816128b157fe5b0414612908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806130716021913960400191505060405180910390fd5b809150505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612999576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806131236025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612f916023913960400191505060405180910390fd5b612a2a838383612f8b565b612a958160405180606001604052806026815260200161301e602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bd49092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b28816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bc90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290612c81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612c46578082015181840152602081019050612c2b565b50505050905090810190601f168015612c735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612d14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180613044602d913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612dc4612dbe61260b565b82612dc7565b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e4d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806131026021913960400191505060405180910390fd5b612e5982600083612f8b565b612ec481604051806060016040528060228152602001612fb4602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bd49092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f1b8160025461280a90919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63656f70657261746f723a207a65726f206164647265737320676976656e20666f72206e6577206f70657261746f72536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e63656f70657261746f723a2063616c6c6572206973206e6f7420746865206f70657261746f7245524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220623d9086db486bb17dfa18c1c768e212c9b12615f3445827d05dccc77edd92eb64736f6c634300060c0033

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

0000000000000000000000000000000000000000000000000000000067cc85a0000000000000000000000000ef353f79d4368a26ee535a21763fa5ee2bd87171000000000000000000000000ef353f79d4368a26ee535a21763fa5ee2bd87171000000000000000000000000ef353f79d4368a26ee535a21763fa5ee2bd87171000000000000000000000000ef353f79d4368a26ee535a21763fa5ee2bd87171000000000000000000000000ef353f79d4368a26ee535a21763fa5ee2bd87171

-----Decoded View---------------
Arg [0] : _startTime (uint256): 1741456800
Arg [1] : _communityFund (address): 0xef353f79d4368A26eE535a21763fa5EE2bd87171
Arg [2] : _devFund1 (address): 0xef353f79d4368A26eE535a21763fa5EE2bd87171
Arg [3] : _devFund2 (address): 0xef353f79d4368A26eE535a21763fa5EE2bd87171
Arg [4] : _devFund3 (address): 0xef353f79d4368A26eE535a21763fa5EE2bd87171
Arg [5] : _devFund4 (address): 0xef353f79d4368A26eE535a21763fa5EE2bd87171

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000067cc85a0
Arg [1] : 000000000000000000000000ef353f79d4368a26ee535a21763fa5ee2bd87171
Arg [2] : 000000000000000000000000ef353f79d4368a26ee535a21763fa5ee2bd87171
Arg [3] : 000000000000000000000000ef353f79d4368a26ee535a21763fa5ee2bd87171
Arg [4] : 000000000000000000000000ef353f79d4368a26ee535a21763fa5ee2bd87171
Arg [5] : 000000000000000000000000ef353f79d4368a26ee535a21763fa5ee2bd87171


Deployed Bytecode Sourcemap

27213:4669:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27762:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;27965:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13572:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31245:348;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15718:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;27827:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;29777:308;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14671:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16369:321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;26828:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;30093:285;;;:::i;:::-;;;;;;;;;;;;;;;;;;;27721:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14515:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;27645:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;30465:700;;;:::i;:::-;;29345:424;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17099:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;27413:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;31601:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;26720:100;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;27676:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;27558:49;;;:::i;:::-;;;;;;;;;;;;;;;;;;;27488:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;31692:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;26492:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;27887:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;27797;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14842:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25555:148;;;:::i;:::-;;27614:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23384:295;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24904:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13782:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28007:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;27338:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17820:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15182:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;27919:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;27857:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15420:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25858:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;29164:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;27762:28;;;;;;;;;;;;;:::o;27965:33::-;;;;:::o;13572:91::-;13617:13;13650:5;13643:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13572:91;:::o;31245:348::-;26641:10;26628:23;;:9;;;;;;;;;;;:23;;;26620:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31344:21:::1;;;;;;;;;;;31343:22;31335:59;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;31446:1;31413:35;;:21;:35;;;;31405:70;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;31510:4;31486:21;;:28;;;;;;;;;;;;;;;;;;31525:60;31531:21;27395:11;31525:5;:60::i;:::-;31245:348:::0;:::o;15718:169::-;15801:4;15818:39;15827:12;:10;:12::i;:::-;15841:7;15850:6;15818:8;:39::i;:::-;15875:4;15868:11;;15718:169;;;;:::o;27827:23::-;;;;;;;;;;;;;:::o;29777:308::-;29831:16;29860:12;29875:15;29860:30;;29912:7;;29905:4;:14;29901:34;;;29928:7;;29921:14;;29901:34;29978:4;29950:24;;:32;29946:46;;29991:1;29984:8;;;;;29946:46;30014:63;30053:23;;30014:34;30023:24;;30014:4;:8;;:34;;;;:::i;:::-;:38;;:63;;;;:::i;:::-;30003:74;;29777:308;;;:::o;14671:108::-;14732:7;14759:12;;14752:19;;14671:108;:::o;16369:321::-;16475:4;16492:36;16502:6;16510:9;16521:6;16492:9;:36::i;:::-;16539:121;16548:6;16556:12;:10;:12::i;:::-;16570:89;16608:6;16570:89;;;;;;;;;;;;;;;;;:11;:19;16582:6;16570:19;;;;;;;;;;;;;;;:33;16590:12;:10;:12::i;:::-;16570:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;16539:8;:121::i;:::-;16678:4;16671:11;;16369:321;;;;;:::o;26828:115::-;25135:12;:10;:12::i;:::-;25124:23;;:7;:5;:7::i;:::-;:23;;;25116:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26904:31:::1;26922:12;26904:17;:31::i;:::-;26828:115:::0;:::o;30093:285::-;30142:16;30171:12;30186:15;30171:30;;30223:7;;30216:4;:14;30212:34;;;30239:7;;30232:14;;30212:34;30283:4;30261:18;;:26;30257:40;;30296:1;30289:8;;;;;30257:40;30319:51;30352:17;;30319:28;30328:18;;30319:4;:8;;:28;;;;:::i;:::-;:32;;:51;;;;:::i;:::-;30308:62;;30093:285;;;:::o;27721:32::-;;;;:::o;14515:91::-;14564:5;14589:9;;;;;;;;;;;14582:16;;14515:91;:::o;27645:22::-;;;;:::o;30465:700::-;25135:12;:10;:12::i;:::-;25124:23;;:7;:5;:7::i;:::-;:23;;;25116:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30519:16:::1;30538:23;:21;:23::i;:::-;30519:42;;30587:1;30576:8;:12;:43;;;;;30617:1;30592:27;;:13;;;;;;;;;;;:27;;;;30576:43;30572:163;;;30636:30;30642:13;;;;;;;;;;;30657:8;30636:5;:30::i;:::-;30708:15;30681:24;:42;;;;30572:163;30756:18;:16;:18::i;:::-;30745:29;;30800:1;30789:8;:12;:38;;;;;30825:1;30805:22;;:8;;;;;;;;;;;:22;;;;30789:38;:64;;;;;30851:1;30831:22;;:8;;;;;;;;;;;:22;;;;30789:64;:90;;;;;30877:1;30857:22;;:8;;;;;;;;;;;:22;;;;30789:90;:116;;;;;30903:1;30883:22;;:8;;;;;;;;;;;:22;;;;30789:116;30785:373;;;30922:32;30928:8;;;;;;;;;;;30938:15;30951:1;30938:8;:12;;:15;;;;:::i;:::-;30922:5;:32::i;:::-;30969;30975:8;;;;;;;;;;;30985:15;30998:1;30985:8;:12;;:15;;;;:::i;:::-;30969:5;:32::i;:::-;31016;31022:8;;;;;;;;;;;31032:15;31045:1;31032:8;:12;;:15;;;;:::i;:::-;31016:5;:32::i;:::-;31063;31069:8;;;;;;;;;;;31079:15;31092:1;31079:8;:12;;:15;;;;:::i;:::-;31063:5;:32::i;:::-;31131:15;31110:18;:36;;;;30785:373;25195:1;30465:700::o:0;29345:424::-;25135:12;:10;:12::i;:::-;25124:23;;:7;:5;:7::i;:::-;:23;;;25116:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29457:1:::1;29437:22;;:8;:22;;;;29429:39;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;29497:1;29484:9;:14;29480:282;;;29526:8;29515;;:19;;;;;;;;;;;;;;;;;;29480:282;;;29569:1;29556:9;:14;29552:210;;;29598:8;29587;;:19;;;;;;;;;;;;;;;;;;29552:210;;;29641:1;29628:9;:14;29624:138;;;29670:8;29659;;:19;;;;;;;;;;;;;;;;;;29624:138;;;29713:1;29700:9;:14;29696:66;;;29742:8;29731;;:19;;;;;;;;;;;;;;;;;;29696:66;29624:138;29552:210;29480:282;29345:424:::0;;:::o;17099:218::-;17187:4;17204:83;17213:12;:10;:12::i;:::-;17227:7;17236:50;17275:10;17236:11;:25;17248:12;:10;:12::i;:::-;17236:25;;;;;;;;;;;;;;;:34;17262:7;17236:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;17204:8;:83::i;:::-;17305:4;17298:11;;17099:218;;;;:::o;27413:68::-;27470:11;27413:68;:::o;31601:83::-;31658:18;31669:6;31658:10;:18::i;:::-;31601:83;:::o;26720:100::-;26763:4;26803:9;;;;;;;;;;;26787:25;;:12;:10;:12::i;:::-;:25;;;26780:32;;26720:100;:::o;27676:38::-;;;;:::o;27558:49::-;27601:6;27558:49;:::o;27488:61::-;27539:10;27488:61;:::o;31692:187::-;26641:10;26628:23;;:9;;;;;;;;;;;:23;;;26620:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31842:6:::1;:15;;;31858:3;31863:7;31842:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;31692:187:::0;;;:::o;26492:85::-;26533:7;26560:9;;;;;;;;;;;26553:16;;26492:85;:::o;27887:23::-;;;;;;;;;;;;;:::o;27797:::-;;;;;;;;;;;;;:::o;14842:127::-;14916:7;14943:9;:18;14953:7;14943:18;;;;;;;;;;;;;;;;14936:25;;14842:127;;;:::o;25555:148::-;25135:12;:10;:12::i;:::-;25124:23;;:7;:5;:7::i;:::-;:23;;;25116:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25662:1:::1;25625:40;;25646:6;;;;;;;;;;;25625:40;;;;;;;;;;;;25693:1;25676:6;;:19;;;;;;;;;;;;;;;;;;25555:148::o:0;27614:24::-;;;;:::o;23384:295::-;23461:26;23490:84;23527:6;23490:84;;;;;;;;;;;;;;;;;:32;23500:7;23509:12;:10;:12::i;:::-;23490:9;:32::i;:::-;:36;;:84;;;;;:::i;:::-;23461:113;;23587:51;23596:7;23605:12;:10;:12::i;:::-;23619:18;23587:8;:51::i;:::-;23649:22;23655:7;23664:6;23649:5;:22::i;:::-;23384:295;;;:::o;24904:87::-;24950:7;24977:6;;;;;;;;;;;24970:13;;24904:87;:::o;13782:95::-;13829:13;13862:7;13855:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13782:95;:::o;28007:41::-;;;;;;;;;;;;;:::o;27338:68::-;27395:11;27338:68;:::o;17820:269::-;17913:4;17930:129;17939:12;:10;:12::i;:::-;17953:7;17962:96;18001:15;17962:96;;;;;;;;;;;;;;;;;:11;:25;17974:12;:10;:12::i;:::-;17962:25;;;;;;;;;;;;;;;:34;17988:7;17962:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;17930:8;:129::i;:::-;18077:4;18070:11;;17820:269;;;;:::o;15182:175::-;15268:4;15285:42;15295:12;:10;:12::i;:::-;15309:9;15320:6;15285:9;:42::i;:::-;15345:4;15338:11;;15182:175;;;;:::o;27919:39::-;;;;:::o;27857:23::-;;;;;;;;;;;;;:::o;15420:151::-;15509:7;15536:11;:18;15548:5;15536:18;;;;;;;;;;;;;;;:27;15555:7;15536:27;;;;;;;;;;;;;;;;15529:34;;15420:151;;;;:::o;25858:244::-;25135:12;:10;:12::i;:::-;25124:23;;:7;:5;:7::i;:::-;:23;;;25116:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25967:1:::1;25947:22;;:8;:22;;;;25939:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26057:8;26028:38;;26049:6;;;;;;;;;;;26028:38;;;;;;;;;;;;26086:8;26077:6;;:17;;;;;;;;;;;;;;;;;;25858:244:::0;:::o;29164:173::-;25135:12;:10;:12::i;:::-;25124:23;;:7;:5;:7::i;:::-;:23;;;25116:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29277:1:::1;29251:28;;:14;:28;;;;29243:45;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;29315:14;29299:13;;:30;;;;;;;;;;;;;;;;;;29164:173:::0;:::o;4491:153::-;4549:7;4581:1;4577;:5;4569:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4635:1;4631;:5;;;;;;4624:12;;4491:153;;;;:::o;2914:179::-;2972:7;2992:9;3008:1;3004;:5;2992:17;;3033:1;3028;:6;;3020:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3084:1;3077:8;;;2914:179;;;;:::o;19400:378::-;19503:1;19484:21;;:7;:21;;;;19476:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19554:49;19583:1;19587:7;19596:6;19554:20;:49::i;:::-;19631:24;19648:6;19631:12;;:16;;:24;;;;:::i;:::-;19616:12;:39;;;;19687:30;19710:6;19687:9;:18;19697:7;19687:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;19666:9;:18;19676:7;19666:18;;;;;;;;;;;;;;;:51;;;;19754:7;19733:37;;19750:1;19733:37;;;19763:6;19733:37;;;;;;;;;;;;;;;;;;19400:378;;:::o;8225:106::-;8278:15;8313:10;8306:17;;8225:106;:::o;20967:346::-;21086:1;21069:19;;:5;:19;;;;21061:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21167:1;21148:21;;:7;:21;;;;21140:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21251:6;21221:11;:18;21233:5;21221:18;;;;;;;;;;;;;;;:27;21240:7;21221:27;;;;;;;;;;;;;;;:36;;;;21289:7;21273:32;;21282:5;21273:32;;;21298:6;21273:32;;;;;;;;;;;;;;;;;;20967:346;;;:::o;3376:158::-;3434:7;3467:1;3462;:6;;3454:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3525:1;3521;:5;3514:12;;3376:158;;;;:::o;3793:220::-;3851:7;3880:1;3875;:6;3871:20;;;3890:1;3883:8;;;;3871:20;3902:9;3918:1;3914;:5;3902:17;;3947:1;3942;3938;:5;;;;;;:10;3930:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4004:1;3997:8;;;3793:220;;;;;:::o;18579:539::-;18703:1;18685:20;;:6;:20;;;;18677:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18787:1;18766:23;;:9;:23;;;;18758:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18842:47;18863:6;18871:9;18882:6;18842:20;:47::i;:::-;18922:71;18944:6;18922:71;;;;;;;;;;;;;;;;;:9;:17;18932:6;18922:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;18902:9;:17;18912:6;18902:17;;;;;;;;;;;;;;;:91;;;;19027:32;19052:6;19027:9;:20;19037:9;19027:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;19004:9;:20;19014:9;19004:20;;;;;;;;;;;;;;;:55;;;;19092:9;19075:35;;19084:6;19075:35;;;19103:6;19075:35;;;;;;;;;;;;;;;;;;18579:539;;;:::o;5741:166::-;5827:7;5860:1;5855;:6;;5863:12;5847:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5898:1;5894;:5;5887:12;;5741:166;;;;;:::o;26951:257::-;27052:1;27028:26;;:12;:26;;;;27020:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27152:12;27120:45;;27148:1;27120:45;;;;;;;;;;;;27188:12;27176:9;;:24;;;;;;;;;;;;;;;;;;26951:257;:::o;22974:91::-;23030:27;23036:12;:10;:12::i;:::-;23050:6;23030:5;:27::i;:::-;22974:91;:::o;20111:418::-;20214:1;20195:21;;:7;:21;;;;20187:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20267:49;20288:7;20305:1;20309:6;20267:20;:49::i;:::-;20350:68;20373:6;20350:68;;;;;;;;;;;;;;;;;:9;:18;20360:7;20350:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;20329:9;:18;20339:7;20329:18;;;;;;;;;;;;;;;:89;;;;20444:24;20461:6;20444:12;;:16;;:24;;;;:::i;:::-;20429:12;:39;;;;20510:1;20484:37;;20493:7;20484:37;;;20514:6;20484:37;;;;;;;;;;;;;;;;;;20111:418;;:::o;22346:92::-;;;;:::o

Swarm Source

ipfs://623d9086db486bb17dfa18c1c768e212c9b12615f3445827d05dccc77edd92eb
[ 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.