ETH Price: $2,511.32 (-0.46%)

Token

Star (STAR)
 

Overview

Max Total Supply

3,408,383.724942129629624576 STAR

Holders

820

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
mcclute.eth
Balance
65.615046296296296295 STAR

Value
$0.00
0xaB3418068Cdcf0cB116E408948c4aA1344519C3a
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
StarToken

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-07
*/

//SPDX-License-Identifier: NONE

pragma solidity ^0.8.0;

interface Ialien {
    function balanceOf(address _user) external view returns (uint);

    function tokensOfWalletOwner(address _user) external view returns (uint256[] memory);

    function ownerOf(uint256 tokenId) external view returns (address owner);

    function totalSupply() external view returns (uint256);
}

/**
 * @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/extensions/[email protected]


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

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

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


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


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

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


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


/**
 * @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 Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `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);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
    unchecked {
        _approve(sender, _msgSender(), currentAllowance - amount);
    }

        return true;
    }

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

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

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `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);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

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

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

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

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

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

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

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

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

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

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

// File contracts/StarToken.sol

pragma solidity ^0.8.0;

contract StarToken is ERC20 ("Star", "STAR") {

    uint public burnRate = 5 ether;
    uint public startingStar = 126 ether;
    uint public START;
    uint public END;
    //^^ https://www.epochconverter.com/ |

    mapping(uint => uint) private lastClaim;
    mapping(address => uint) private claimTime;

    Ialien public alienContract;

    event rewardPaid(address indexed user, uint256 reward);

    constructor(address _alien) {
        alienContract = Ialien(_alien);
        START = block.timestamp;
        END = START + 157766400;
        //^^ 5 years from deployment

    }

    function checkaliens(address _owner) public view returns (uint[] memory){
        return alienContract.tokensOfWalletOwner(_owner);
    }

    function checkReward(uint256 tokenId) public view returns (uint256) {
        require(alienContract.ownerOf(tokenId) != address(0), "alien has no owner");
        require(tokenId < alienContract.totalSupply(), "alien is nonexistent");
        uint _lastClaimed = uint(lastClaim[tokenId]);
        uint claimPeriod = _lastClaimed == 0 ? START : _lastClaimed;

        //There are 86400 seconds in a day
        uint rewardAmount = ((block.timestamp - claimPeriod) * burnRate) / 86400;

        // TO CLAIM STARTING STAR
        if (_lastClaimed == 0) rewardAmount += startingStar;

        return rewardAmount;
    }

    function getLastClaim(address _owner) public view returns (uint256) {
        return claimTime[_owner];
    }

    function checkTotalRewards(uint256[] memory tokenIds) public view returns (uint256) {
        uint256 rewardAmount = 0;
        for (uint i = 0; i < tokenIds.length; i++) {
            rewardAmount = rewardAmount + checkReward(tokenIds[i]);
        }

        return rewardAmount;
    }

    function claimRewards(uint[] memory tokenIds, address _owner) public returns (uint){
        require(block.timestamp < END, "There is no more $STAR available");
        uint totalClaimQty = 0;

        for (uint i = 0; i < tokenIds.length; i++) {
            require(tokenIds[i] < alienContract.totalSupply(), "alien is nonexistent");
            require(alienContract.ownerOf(tokenIds[i]) == msg.sender, "Claimant is not the owner");

            uint claimQty = checkReward(tokenIds[i]);
            if (claimQty != 0) {
                totalClaimQty += claimQty;
                lastClaim[tokenIds[i]] = block.timestamp;
            }
        }

        require(totalClaimQty != 0, "No accumulated $STAR");

        _mint(msg.sender, totalClaimQty);
        claimTime[_owner] = block.timestamp;

        emit rewardPaid(msg.sender, totalClaimQty);
        return totalClaimQty;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_alien","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"rewardPaid","type":"event"},{"inputs":[],"name":"END","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"START","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"alienContract","outputs":[{"internalType":"contract Ialien","name":"","type":"address"}],"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":[],"name":"burnRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"checkReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"checkTotalRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"checkaliens","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"address","name":"_owner","type":"address"}],"name":"claimRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"getLastClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startingStar","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"}]

6080604052674563918244f400006005556806d499ec6c633800006006553480156200002a57600080fd5b5060405162002bd538038062002bd5833981810160405281019062000050919062000273565b6040518060400160405280600481526020017f53746172000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f53544152000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000d492919062000159565b508060049080519060200190620000ed92919062000159565b50505080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260078190555063096753006007546200014c9190620002de565b60088190555050620003a0565b82805462000167906200036a565b90600052602060002090601f0160209004810192826200018b5760008555620001d7565b82601f10620001a657805160ff1916838001178555620001d7565b82800160010185558215620001d7579182015b82811115620001d6578251825591602001919060010190620001b9565b5b509050620001e69190620001ea565b5090565b5b8082111562000205576000816000905550600101620001eb565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200023b826200020e565b9050919050565b6200024d816200022e565b81146200025957600080fd5b50565b6000815190506200026d8162000242565b92915050565b6000602082840312156200028c576200028b62000209565b5b60006200029c848285016200025c565b91505092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620002eb82620002a5565b9150620002f883620002a5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000330576200032f620002af565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200038357607f821691505b602082108114156200039a57620003996200033b565b5b50919050565b61282580620003b06000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063ba9a061a1161007c578063ba9a061a146103b2578063bed99850146103d0578063dd62ed3e146103ee578063e46989911461041e578063ea5ad1381461044e578063efe7a5041461046c57610137565b806370a08231146102d45780638778f4151461030457806395d89b4114610334578063a457c2d714610352578063a9059cbb1461038257610137565b806323b872dd116100ff57806323b872dd146101f6578063242522e414610226578063313ce56714610256578063395093511461027457806347910af1146102a457610137565b80630520537f1461013c57806306fdde031461016c578063095ea7b31461018a5780630e188994146101ba57806318160ddd146101d8575b600080fd5b61015660048036038101906101519190611922565b61048a565b604051610163919061198d565b60405180910390f35b610174610879565b6040516101819190611a30565b60405180910390f35b6101a4600480360381019061019f9190611a52565b61090b565b6040516101b19190611aad565b60405180910390f35b6101c2610929565b6040516101cf919061198d565b60405180910390f35b6101e061092f565b6040516101ed919061198d565b60405180910390f35b610210600480360381019061020b9190611ac8565b610939565b60405161021d9190611aad565b60405180910390f35b610240600480360381019061023b9190611b1b565b610a31565b60405161024d9190611c06565b60405180910390f35b61025e610aea565b60405161026b9190611c44565b60405180910390f35b61028e60048036038101906102899190611a52565b610af3565b60405161029b9190611aad565b60405180910390f35b6102be60048036038101906102b99190611c5f565b610b9f565b6040516102cb919061198d565b60405180910390f35b6102ee60048036038101906102e99190611b1b565b610bff565b6040516102fb919061198d565b60405180910390f35b61031e60048036038101906103199190611b1b565b610c47565b60405161032b919061198d565b60405180910390f35b61033c610c90565b6040516103499190611a30565b60405180910390f35b61036c60048036038101906103679190611a52565b610d22565b6040516103799190611aad565b60405180910390f35b61039c60048036038101906103979190611a52565b610e0d565b6040516103a99190611aad565b60405180910390f35b6103ba610e2b565b6040516103c7919061198d565b60405180910390f35b6103d8610e31565b6040516103e5919061198d565b60405180910390f35b61040860048036038101906104039190611ca8565b610e37565b604051610415919061198d565b60405180910390f35b61043860048036038101906104339190611ce8565b610ebe565b604051610445919061198d565b60405180910390f35b610456611137565b6040516104639190611d74565b60405180910390f35b61047461115d565b604051610481919061198d565b60405180910390f35b600060085442106104d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c790611ddb565b60405180910390fd5b6000805b845181101561078e57600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561054557600080fd5b505afa158015610559573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057d9190611e10565b8582815181106105905761058f611e3d565b5b6020026020010151106105d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cf90611eb8565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e8784815181106106405761063f611e3d565b5b60200260200101516040518263ffffffff1660e01b8152600401610664919061198d565b60206040518083038186803b15801561067c57600080fd5b505afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b49190611eed565b73ffffffffffffffffffffffffffffffffffffffff161461070a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070190611f66565b60405180910390fd5b600061072f86838151811061072257610721611e3d565b5b6020026020010151610ebe565b90506000811461077a5780836107459190611fb5565b9250426009600088858151811061075f5761075e611e3d565b5b60200260200101518152602001908152602001600020819055505b5080806107869061200b565b9150506104d4565b5060008114156107d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ca906120a0565b60405180910390fd5b6107dd3382611163565b42600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f2ead7d650427e1b49175deda4434b2a0a65a543b49e012f8be34ecbc135c731a82604051610867919061198d565b60405180910390a28091505092915050565b606060038054610888906120ef565b80601f01602080910402602001604051908101604052809291908181526020018280546108b4906120ef565b80156109015780601f106108d657610100808354040283529160200191610901565b820191906000526020600020905b8154815290600101906020018083116108e457829003601f168201915b5050505050905090565b600061091f6109186112c3565b84846112cb565b6001905092915050565b60065481565b6000600254905090565b6000610946848484611496565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109916112c3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0890612193565b60405180910390fd5b610a2585610a1d6112c3565b8584036112cb565b60019150509392505050565b6060600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663859b584c836040518263ffffffff1660e01b8152600401610a8e91906121c2565b60006040518083038186803b158015610aa657600080fd5b505afa158015610aba573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610ae39190612274565b9050919050565b60006012905090565b6000610b95610b006112c3565b848460016000610b0e6112c3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b909190611fb5565b6112cb565b6001905092915050565b6000806000905060005b8351811015610bf557610bd5848281518110610bc857610bc7611e3d565b5b6020026020010151610ebe565b82610be09190611fb5565b91508080610bed9061200b565b915050610ba9565b5080915050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054610c9f906120ef565b80601f0160208091040260200160405190810160405280929190818152602001828054610ccb906120ef565b8015610d185780601f10610ced57610100808354040283529160200191610d18565b820191906000526020600020905b815481529060010190602001808311610cfb57829003601f168201915b5050505050905090565b60008060016000610d316112c3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de59061232f565b60405180910390fd5b610e02610df96112c3565b858584036112cb565b600191505092915050565b6000610e21610e1a6112c3565b8484611496565b6001905092915050565b60075481565b60055481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff1660e01b8152600401610f32919061198d565b60206040518083038186803b158015610f4a57600080fd5b505afa158015610f5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f829190611eed565b73ffffffffffffffffffffffffffffffffffffffff161415610fd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd09061239b565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110799190611e10565b82106110ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b190611eb8565b60405180910390fd5b60006009600084815260200190815260200160002054905060008082146110e157816110e5565b6007545b905060006201518060055483426110fc91906123bb565b61110691906123ef565b6111109190612478565b9050600083141561112c57600654816111299190611fb5565b90505b809350505050919050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ca906124f5565b60405180910390fd5b6111df60008383611717565b80600260008282546111f19190611fb5565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112469190611fb5565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112ab919061198d565b60405180910390a36112bf6000838361171c565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561133b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133290612587565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a290612619565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611489919061198d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611506576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fd906126ab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156d9061273d565b60405180910390fd5b611581838383611717565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fe906127cf565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461169a9190611fb5565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116fe919061198d565b60405180910390a361171184848461171c565b50505050565b505050565b505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6117838261173a565b810181811067ffffffffffffffff821117156117a2576117a161174b565b5b80604052505050565b60006117b5611721565b90506117c1828261177a565b919050565b600067ffffffffffffffff8211156117e1576117e061174b565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b61180a816117f7565b811461181557600080fd5b50565b60008135905061182781611801565b92915050565b600061184061183b846117c6565b6117ab565b90508083825260208201905060208402830185811115611863576118626117f2565b5b835b8181101561188c57806118788882611818565b845260208401935050602081019050611865565b5050509392505050565b600082601f8301126118ab576118aa611735565b5b81356118bb84826020860161182d565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006118ef826118c4565b9050919050565b6118ff816118e4565b811461190a57600080fd5b50565b60008135905061191c816118f6565b92915050565b600080604083850312156119395761193861172b565b5b600083013567ffffffffffffffff81111561195757611956611730565b5b61196385828601611896565b92505060206119748582860161190d565b9150509250929050565b611987816117f7565b82525050565b60006020820190506119a2600083018461197e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156119e25780820151818401526020810190506119c7565b838111156119f1576000848401525b50505050565b6000611a02826119a8565b611a0c81856119b3565b9350611a1c8185602086016119c4565b611a258161173a565b840191505092915050565b60006020820190508181036000830152611a4a81846119f7565b905092915050565b60008060408385031215611a6957611a6861172b565b5b6000611a778582860161190d565b9250506020611a8885828601611818565b9150509250929050565b60008115159050919050565b611aa781611a92565b82525050565b6000602082019050611ac26000830184611a9e565b92915050565b600080600060608486031215611ae157611ae061172b565b5b6000611aef8682870161190d565b9350506020611b008682870161190d565b9250506040611b1186828701611818565b9150509250925092565b600060208284031215611b3157611b3061172b565b5b6000611b3f8482850161190d565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611b7d816117f7565b82525050565b6000611b8f8383611b74565b60208301905092915050565b6000602082019050919050565b6000611bb382611b48565b611bbd8185611b53565b9350611bc883611b64565b8060005b83811015611bf9578151611be08882611b83565b9750611beb83611b9b565b925050600181019050611bcc565b5085935050505092915050565b60006020820190508181036000830152611c208184611ba8565b905092915050565b600060ff82169050919050565b611c3e81611c28565b82525050565b6000602082019050611c596000830184611c35565b92915050565b600060208284031215611c7557611c7461172b565b5b600082013567ffffffffffffffff811115611c9357611c92611730565b5b611c9f84828501611896565b91505092915050565b60008060408385031215611cbf57611cbe61172b565b5b6000611ccd8582860161190d565b9250506020611cde8582860161190d565b9150509250929050565b600060208284031215611cfe57611cfd61172b565b5b6000611d0c84828501611818565b91505092915050565b6000819050919050565b6000611d3a611d35611d30846118c4565b611d15565b6118c4565b9050919050565b6000611d4c82611d1f565b9050919050565b6000611d5e82611d41565b9050919050565b611d6e81611d53565b82525050565b6000602082019050611d896000830184611d65565b92915050565b7f5468657265206973206e6f206d6f726520245354415220617661696c61626c65600082015250565b6000611dc56020836119b3565b9150611dd082611d8f565b602082019050919050565b60006020820190508181036000830152611df481611db8565b9050919050565b600081519050611e0a81611801565b92915050565b600060208284031215611e2657611e2561172b565b5b6000611e3484828501611dfb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f616c69656e206973206e6f6e6578697374656e74000000000000000000000000600082015250565b6000611ea26014836119b3565b9150611ead82611e6c565b602082019050919050565b60006020820190508181036000830152611ed181611e95565b9050919050565b600081519050611ee7816118f6565b92915050565b600060208284031215611f0357611f0261172b565b5b6000611f1184828501611ed8565b91505092915050565b7f436c61696d616e74206973206e6f7420746865206f776e657200000000000000600082015250565b6000611f506019836119b3565b9150611f5b82611f1a565b602082019050919050565b60006020820190508181036000830152611f7f81611f43565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611fc0826117f7565b9150611fcb836117f7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561200057611fff611f86565b5b828201905092915050565b6000612016826117f7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561204957612048611f86565b5b600182019050919050565b7f4e6f20616363756d756c61746564202453544152000000000000000000000000600082015250565b600061208a6014836119b3565b915061209582612054565b602082019050919050565b600060208201905081810360008301526120b98161207d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061210757607f821691505b6020821081141561211b5761211a6120c0565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061217d6028836119b3565b915061218882612121565b604082019050919050565b600060208201905081810360008301526121ac81612170565b9050919050565b6121bc816118e4565b82525050565b60006020820190506121d760008301846121b3565b92915050565b60006121f06121eb846117c6565b6117ab565b90508083825260208201905060208402830185811115612213576122126117f2565b5b835b8181101561223c57806122288882611dfb565b845260208401935050602081019050612215565b5050509392505050565b600082601f83011261225b5761225a611735565b5b815161226b8482602086016121dd565b91505092915050565b60006020828403121561228a5761228961172b565b5b600082015167ffffffffffffffff8111156122a8576122a7611730565b5b6122b484828501612246565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006123196025836119b3565b9150612324826122bd565b604082019050919050565b600060208201905081810360008301526123488161230c565b9050919050565b7f616c69656e20686173206e6f206f776e65720000000000000000000000000000600082015250565b60006123856012836119b3565b91506123908261234f565b602082019050919050565b600060208201905081810360008301526123b481612378565b9050919050565b60006123c6826117f7565b91506123d1836117f7565b9250828210156123e4576123e3611f86565b5b828203905092915050565b60006123fa826117f7565b9150612405836117f7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561243e5761243d611f86565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612483826117f7565b915061248e836117f7565b92508261249e5761249d612449565b5b828204905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006124df601f836119b3565b91506124ea826124a9565b602082019050919050565b6000602082019050818103600083015261250e816124d2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006125716024836119b3565b915061257c82612515565b604082019050919050565b600060208201905081810360008301526125a081612564565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006126036022836119b3565b915061260e826125a7565b604082019050919050565b60006020820190508181036000830152612632816125f6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006126956025836119b3565b91506126a082612639565b604082019050919050565b600060208201905081810360008301526126c481612688565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006127276023836119b3565b9150612732826126cb565b604082019050919050565b600060208201905081810360008301526127568161271a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006127b96026836119b3565b91506127c48261275d565b604082019050919050565b600060208201905081810360008301526127e8816127ac565b905091905056fea26469706673582212205f0cb9e21d86cd5adb7cff989d61c2776f890af786cc12aa518a3c4db9b3e29364736f6c6343000809003300000000000000000000000056b391339615fd0e88e0d370f451fa91478bb20f

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063ba9a061a1161007c578063ba9a061a146103b2578063bed99850146103d0578063dd62ed3e146103ee578063e46989911461041e578063ea5ad1381461044e578063efe7a5041461046c57610137565b806370a08231146102d45780638778f4151461030457806395d89b4114610334578063a457c2d714610352578063a9059cbb1461038257610137565b806323b872dd116100ff57806323b872dd146101f6578063242522e414610226578063313ce56714610256578063395093511461027457806347910af1146102a457610137565b80630520537f1461013c57806306fdde031461016c578063095ea7b31461018a5780630e188994146101ba57806318160ddd146101d8575b600080fd5b61015660048036038101906101519190611922565b61048a565b604051610163919061198d565b60405180910390f35b610174610879565b6040516101819190611a30565b60405180910390f35b6101a4600480360381019061019f9190611a52565b61090b565b6040516101b19190611aad565b60405180910390f35b6101c2610929565b6040516101cf919061198d565b60405180910390f35b6101e061092f565b6040516101ed919061198d565b60405180910390f35b610210600480360381019061020b9190611ac8565b610939565b60405161021d9190611aad565b60405180910390f35b610240600480360381019061023b9190611b1b565b610a31565b60405161024d9190611c06565b60405180910390f35b61025e610aea565b60405161026b9190611c44565b60405180910390f35b61028e60048036038101906102899190611a52565b610af3565b60405161029b9190611aad565b60405180910390f35b6102be60048036038101906102b99190611c5f565b610b9f565b6040516102cb919061198d565b60405180910390f35b6102ee60048036038101906102e99190611b1b565b610bff565b6040516102fb919061198d565b60405180910390f35b61031e60048036038101906103199190611b1b565b610c47565b60405161032b919061198d565b60405180910390f35b61033c610c90565b6040516103499190611a30565b60405180910390f35b61036c60048036038101906103679190611a52565b610d22565b6040516103799190611aad565b60405180910390f35b61039c60048036038101906103979190611a52565b610e0d565b6040516103a99190611aad565b60405180910390f35b6103ba610e2b565b6040516103c7919061198d565b60405180910390f35b6103d8610e31565b6040516103e5919061198d565b60405180910390f35b61040860048036038101906104039190611ca8565b610e37565b604051610415919061198d565b60405180910390f35b61043860048036038101906104339190611ce8565b610ebe565b604051610445919061198d565b60405180910390f35b610456611137565b6040516104639190611d74565b60405180910390f35b61047461115d565b604051610481919061198d565b60405180910390f35b600060085442106104d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c790611ddb565b60405180910390fd5b6000805b845181101561078e57600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561054557600080fd5b505afa158015610559573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057d9190611e10565b8582815181106105905761058f611e3d565b5b6020026020010151106105d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cf90611eb8565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e8784815181106106405761063f611e3d565b5b60200260200101516040518263ffffffff1660e01b8152600401610664919061198d565b60206040518083038186803b15801561067c57600080fd5b505afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b49190611eed565b73ffffffffffffffffffffffffffffffffffffffff161461070a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070190611f66565b60405180910390fd5b600061072f86838151811061072257610721611e3d565b5b6020026020010151610ebe565b90506000811461077a5780836107459190611fb5565b9250426009600088858151811061075f5761075e611e3d565b5b60200260200101518152602001908152602001600020819055505b5080806107869061200b565b9150506104d4565b5060008114156107d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ca906120a0565b60405180910390fd5b6107dd3382611163565b42600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f2ead7d650427e1b49175deda4434b2a0a65a543b49e012f8be34ecbc135c731a82604051610867919061198d565b60405180910390a28091505092915050565b606060038054610888906120ef565b80601f01602080910402602001604051908101604052809291908181526020018280546108b4906120ef565b80156109015780601f106108d657610100808354040283529160200191610901565b820191906000526020600020905b8154815290600101906020018083116108e457829003601f168201915b5050505050905090565b600061091f6109186112c3565b84846112cb565b6001905092915050565b60065481565b6000600254905090565b6000610946848484611496565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109916112c3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0890612193565b60405180910390fd5b610a2585610a1d6112c3565b8584036112cb565b60019150509392505050565b6060600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663859b584c836040518263ffffffff1660e01b8152600401610a8e91906121c2565b60006040518083038186803b158015610aa657600080fd5b505afa158015610aba573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610ae39190612274565b9050919050565b60006012905090565b6000610b95610b006112c3565b848460016000610b0e6112c3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b909190611fb5565b6112cb565b6001905092915050565b6000806000905060005b8351811015610bf557610bd5848281518110610bc857610bc7611e3d565b5b6020026020010151610ebe565b82610be09190611fb5565b91508080610bed9061200b565b915050610ba9565b5080915050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054610c9f906120ef565b80601f0160208091040260200160405190810160405280929190818152602001828054610ccb906120ef565b8015610d185780601f10610ced57610100808354040283529160200191610d18565b820191906000526020600020905b815481529060010190602001808311610cfb57829003601f168201915b5050505050905090565b60008060016000610d316112c3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de59061232f565b60405180910390fd5b610e02610df96112c3565b858584036112cb565b600191505092915050565b6000610e21610e1a6112c3565b8484611496565b6001905092915050565b60075481565b60055481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff1660e01b8152600401610f32919061198d565b60206040518083038186803b158015610f4a57600080fd5b505afa158015610f5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f829190611eed565b73ffffffffffffffffffffffffffffffffffffffff161415610fd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd09061239b565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110799190611e10565b82106110ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b190611eb8565b60405180910390fd5b60006009600084815260200190815260200160002054905060008082146110e157816110e5565b6007545b905060006201518060055483426110fc91906123bb565b61110691906123ef565b6111109190612478565b9050600083141561112c57600654816111299190611fb5565b90505b809350505050919050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ca906124f5565b60405180910390fd5b6111df60008383611717565b80600260008282546111f19190611fb5565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112469190611fb5565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112ab919061198d565b60405180910390a36112bf6000838361171c565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561133b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133290612587565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a290612619565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611489919061198d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611506576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fd906126ab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156d9061273d565b60405180910390fd5b611581838383611717565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fe906127cf565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461169a9190611fb5565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116fe919061198d565b60405180910390a361171184848461171c565b50505050565b505050565b505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6117838261173a565b810181811067ffffffffffffffff821117156117a2576117a161174b565b5b80604052505050565b60006117b5611721565b90506117c1828261177a565b919050565b600067ffffffffffffffff8211156117e1576117e061174b565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b61180a816117f7565b811461181557600080fd5b50565b60008135905061182781611801565b92915050565b600061184061183b846117c6565b6117ab565b90508083825260208201905060208402830185811115611863576118626117f2565b5b835b8181101561188c57806118788882611818565b845260208401935050602081019050611865565b5050509392505050565b600082601f8301126118ab576118aa611735565b5b81356118bb84826020860161182d565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006118ef826118c4565b9050919050565b6118ff816118e4565b811461190a57600080fd5b50565b60008135905061191c816118f6565b92915050565b600080604083850312156119395761193861172b565b5b600083013567ffffffffffffffff81111561195757611956611730565b5b61196385828601611896565b92505060206119748582860161190d565b9150509250929050565b611987816117f7565b82525050565b60006020820190506119a2600083018461197e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156119e25780820151818401526020810190506119c7565b838111156119f1576000848401525b50505050565b6000611a02826119a8565b611a0c81856119b3565b9350611a1c8185602086016119c4565b611a258161173a565b840191505092915050565b60006020820190508181036000830152611a4a81846119f7565b905092915050565b60008060408385031215611a6957611a6861172b565b5b6000611a778582860161190d565b9250506020611a8885828601611818565b9150509250929050565b60008115159050919050565b611aa781611a92565b82525050565b6000602082019050611ac26000830184611a9e565b92915050565b600080600060608486031215611ae157611ae061172b565b5b6000611aef8682870161190d565b9350506020611b008682870161190d565b9250506040611b1186828701611818565b9150509250925092565b600060208284031215611b3157611b3061172b565b5b6000611b3f8482850161190d565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611b7d816117f7565b82525050565b6000611b8f8383611b74565b60208301905092915050565b6000602082019050919050565b6000611bb382611b48565b611bbd8185611b53565b9350611bc883611b64565b8060005b83811015611bf9578151611be08882611b83565b9750611beb83611b9b565b925050600181019050611bcc565b5085935050505092915050565b60006020820190508181036000830152611c208184611ba8565b905092915050565b600060ff82169050919050565b611c3e81611c28565b82525050565b6000602082019050611c596000830184611c35565b92915050565b600060208284031215611c7557611c7461172b565b5b600082013567ffffffffffffffff811115611c9357611c92611730565b5b611c9f84828501611896565b91505092915050565b60008060408385031215611cbf57611cbe61172b565b5b6000611ccd8582860161190d565b9250506020611cde8582860161190d565b9150509250929050565b600060208284031215611cfe57611cfd61172b565b5b6000611d0c84828501611818565b91505092915050565b6000819050919050565b6000611d3a611d35611d30846118c4565b611d15565b6118c4565b9050919050565b6000611d4c82611d1f565b9050919050565b6000611d5e82611d41565b9050919050565b611d6e81611d53565b82525050565b6000602082019050611d896000830184611d65565b92915050565b7f5468657265206973206e6f206d6f726520245354415220617661696c61626c65600082015250565b6000611dc56020836119b3565b9150611dd082611d8f565b602082019050919050565b60006020820190508181036000830152611df481611db8565b9050919050565b600081519050611e0a81611801565b92915050565b600060208284031215611e2657611e2561172b565b5b6000611e3484828501611dfb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f616c69656e206973206e6f6e6578697374656e74000000000000000000000000600082015250565b6000611ea26014836119b3565b9150611ead82611e6c565b602082019050919050565b60006020820190508181036000830152611ed181611e95565b9050919050565b600081519050611ee7816118f6565b92915050565b600060208284031215611f0357611f0261172b565b5b6000611f1184828501611ed8565b91505092915050565b7f436c61696d616e74206973206e6f7420746865206f776e657200000000000000600082015250565b6000611f506019836119b3565b9150611f5b82611f1a565b602082019050919050565b60006020820190508181036000830152611f7f81611f43565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611fc0826117f7565b9150611fcb836117f7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561200057611fff611f86565b5b828201905092915050565b6000612016826117f7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561204957612048611f86565b5b600182019050919050565b7f4e6f20616363756d756c61746564202453544152000000000000000000000000600082015250565b600061208a6014836119b3565b915061209582612054565b602082019050919050565b600060208201905081810360008301526120b98161207d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061210757607f821691505b6020821081141561211b5761211a6120c0565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061217d6028836119b3565b915061218882612121565b604082019050919050565b600060208201905081810360008301526121ac81612170565b9050919050565b6121bc816118e4565b82525050565b60006020820190506121d760008301846121b3565b92915050565b60006121f06121eb846117c6565b6117ab565b90508083825260208201905060208402830185811115612213576122126117f2565b5b835b8181101561223c57806122288882611dfb565b845260208401935050602081019050612215565b5050509392505050565b600082601f83011261225b5761225a611735565b5b815161226b8482602086016121dd565b91505092915050565b60006020828403121561228a5761228961172b565b5b600082015167ffffffffffffffff8111156122a8576122a7611730565b5b6122b484828501612246565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006123196025836119b3565b9150612324826122bd565b604082019050919050565b600060208201905081810360008301526123488161230c565b9050919050565b7f616c69656e20686173206e6f206f776e65720000000000000000000000000000600082015250565b60006123856012836119b3565b91506123908261234f565b602082019050919050565b600060208201905081810360008301526123b481612378565b9050919050565b60006123c6826117f7565b91506123d1836117f7565b9250828210156123e4576123e3611f86565b5b828203905092915050565b60006123fa826117f7565b9150612405836117f7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561243e5761243d611f86565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612483826117f7565b915061248e836117f7565b92508261249e5761249d612449565b5b828204905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006124df601f836119b3565b91506124ea826124a9565b602082019050919050565b6000602082019050818103600083015261250e816124d2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006125716024836119b3565b915061257c82612515565b604082019050919050565b600060208201905081810360008301526125a081612564565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006126036022836119b3565b915061260e826125a7565b604082019050919050565b60006020820190508181036000830152612632816125f6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006126956025836119b3565b91506126a082612639565b604082019050919050565b600060208201905081810360008301526126c481612688565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006127276023836119b3565b9150612732826126cb565b604082019050919050565b600060208201905081810360008301526127568161271a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006127b96026836119b3565b91506127c48261275d565b604082019050919050565b600060208201905081810360008301526127e8816127ac565b905091905056fea26469706673582212205f0cb9e21d86cd5adb7cff989d61c2776f890af786cc12aa518a3c4db9b3e29364736f6c63430008090033

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

00000000000000000000000056b391339615fd0e88e0d370f451fa91478bb20f

-----Decoded View---------------
Arg [0] : _alien (address): 0x56b391339615fd0e88E0D370f451fA91478Bb20F

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000056b391339615fd0e88e0d370f451fa91478bb20f


Deployed Bytecode Sourcemap

16612:2729:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18430:908;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6637:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8804:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16703:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7757:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9455:480;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17227:139;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7599:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10344:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18129:293;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7928:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18010:111;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6856:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11062:401;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8268:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16746:17;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16666:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8506:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17374:628;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16935:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16770:15;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18430:908;18508:4;18550:3;;18532:15;:21;18524:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;18601:18;18641:6;18636:454;18657:8;:15;18653:1;:19;18636:454;;;18716:13;;;;;;;;;;;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18702:8;18711:1;18702:11;;;;;;;;:::i;:::-;;;;;;;;:41;18694:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;18829:10;18791:48;;:13;;;;;;;;;;;:21;;;18813:8;18822:1;18813:11;;;;;;;;:::i;:::-;;;;;;;;18791:34;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;;;18783:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;18886:13;18902:24;18914:8;18923:1;18914:11;;;;;;;;:::i;:::-;;;;;;;;18902;:24::i;:::-;18886:40;;18957:1;18945:8;:13;18941:138;;18996:8;18979:25;;;;;:::i;:::-;;;19048:15;19023:9;:22;19033:8;19042:1;19033:11;;;;;;;;:::i;:::-;;;;;;;;19023:22;;;;;;;;;;;:40;;;;18941:138;18679:411;18674:3;;;;;:::i;:::-;;;;18636:454;;;;19127:1;19110:13;:18;;19102:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;19166:32;19172:10;19184:13;19166:5;:32::i;:::-;19229:15;19209:9;:17;19219:6;19209:17;;;;;;;;;;;;;;;:35;;;;19273:10;19262:37;;;19285:13;19262:37;;;;;;:::i;:::-;;;;;;;;19317:13;19310:20;;;18430:908;;;;:::o;6637:100::-;6691:13;6724:5;6717:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6637:100;:::o;8804:169::-;8887:4;8904:39;8913:12;:10;:12::i;:::-;8927:7;8936:6;8904:8;:39::i;:::-;8961:4;8954:11;;8804:169;;;;:::o;16703:36::-;;;;:::o;7757:108::-;7818:7;7845:12;;7838:19;;7757:108;:::o;9455:480::-;9595:4;9612:36;9622:6;9630:9;9641:6;9612:9;:36::i;:::-;9661:24;9688:11;:19;9700:6;9688:19;;;;;;;;;;;;;;;:33;9708:12;:10;:12::i;:::-;9688:33;;;;;;;;;;;;;;;;9661:60;;9760:6;9740:16;:26;;9732:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9839:57;9848:6;9856:12;:10;:12::i;:::-;9889:6;9870:16;:25;9839:8;:57::i;:::-;9923:4;9916:11;;;9455:480;;;;;:::o;17227:139::-;17285:13;17317;;;;;;;;;;;:33;;;17351:6;17317:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17310:48;;17227:139;;;:::o;7599:93::-;7657:5;7682:2;7675:9;;7599:93;:::o;10344:215::-;10432:4;10449:80;10458:12;:10;:12::i;:::-;10472:7;10518:10;10481:11;:25;10493:12;:10;:12::i;:::-;10481:25;;;;;;;;;;;;;;;:34;10507:7;10481:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;10449:8;:80::i;:::-;10547:4;10540:11;;10344:215;;;;:::o;18129:293::-;18204:7;18224:20;18247:1;18224:24;;18264:6;18259:124;18280:8;:15;18276:1;:19;18259:124;;;18347:24;18359:8;18368:1;18359:11;;;;;;;;:::i;:::-;;;;;;;;18347;:24::i;:::-;18332:12;:39;;;;:::i;:::-;18317:54;;18297:3;;;;;:::i;:::-;;;;18259:124;;;;18402:12;18395:19;;;18129:293;;;:::o;7928:127::-;8002:7;8029:9;:18;8039:7;8029:18;;;;;;;;;;;;;;;;8022:25;;7928:127;;;:::o;18010:111::-;18069:7;18096:9;:17;18106:6;18096:17;;;;;;;;;;;;;;;;18089:24;;18010:111;;;:::o;6856:104::-;6912:13;6945:7;6938:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6856:104;:::o;11062:401::-;11155:4;11172:24;11199:11;:25;11211:12;:10;:12::i;:::-;11199:25;;;;;;;;;;;;;;;:34;11225:7;11199:34;;;;;;;;;;;;;;;;11172:61;;11272:15;11252:16;:35;;11244:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11357:67;11366:12;:10;:12::i;:::-;11380:7;11408:15;11389:16;:34;11357:8;:67::i;:::-;11451:4;11444:11;;;11062:401;;;;:::o;8268:175::-;8354:4;8371:42;8381:12;:10;:12::i;:::-;8395:9;8406:6;8371:9;:42::i;:::-;8431:4;8424:11;;8268:175;;;;:::o;16746:17::-;;;;:::o;16666:30::-;;;;:::o;8506:151::-;8595:7;8622:11;:18;8634:5;8622:18;;;;;;;;;;;;;;;:27;8641:7;8622:27;;;;;;;;;;;;;;;;8615:34;;8506:151;;;;:::o;17374:628::-;17433:7;17503:1;17461:44;;:13;;;;;;;;;;;:21;;;17483:7;17461:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;;;;17453:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;17557:13;;;;;;;;;;;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17547:7;:37;17539:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;17620:17;17645:9;:18;17655:7;17645:18;;;;;;;;;;;;17620:44;;17675:16;17710:1;17694:12;:17;:40;;17722:12;17694:40;;;17714:5;;17694:40;17675:59;;17791:17;17858:5;17846:8;;17831:11;17813:15;:29;;;;:::i;:::-;17812:42;;;;:::i;:::-;17811:52;;;;:::i;:::-;17791:72;;17931:1;17915:12;:17;17911:51;;;17950:12;;17934:28;;;;;:::i;:::-;;;17911:51;17982:12;17975:19;;;;;17374:628;;;:::o;16935:27::-;;;;;;;;;;;;;:::o;16770:15::-;;;;:::o;12961:399::-;13064:1;13045:21;;:7;:21;;;;13037:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13115:49;13144:1;13148:7;13157:6;13115:20;:49::i;:::-;13193:6;13177:12;;:22;;;;;;;:::i;:::-;;;;;;;;13232:6;13210:9;:18;13220:7;13210:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;13275:7;13254:37;;13271:1;13254:37;;;13284:6;13254:37;;;;;;:::i;:::-;;;;;;;;13304:48;13332:1;13336:7;13345:6;13304:19;:48::i;:::-;12961:399;;:::o;4377:98::-;4430:7;4457:10;4450:17;;4377:98;:::o;14710:380::-;14863:1;14846:19;;:5;:19;;;;14838:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14944:1;14925:21;;:7;:21;;;;14917:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15028:6;14998:11;:18;15010:5;14998:18;;;;;;;;;;;;;;;:27;15017:7;14998:27;;;;;;;;;;;;;;;:36;;;;15066:7;15050:32;;15059:5;15050:32;;;15075:6;15050:32;;;;;;:::i;:::-;;;;;;;;14710:380;;;:::o;11953:721::-;12111:1;12093:20;;:6;:20;;;;12085:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12195:1;12174:23;;:9;:23;;;;12166:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12250:47;12271:6;12279:9;12290:6;12250:20;:47::i;:::-;12310:21;12334:9;:17;12344:6;12334:17;;;;;;;;;;;;;;;;12310:41;;12387:6;12370:13;:23;;12362:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12500:6;12484:13;:22;12464:9;:17;12474:6;12464:17;;;;;;;;;;;;;;;:42;;;;12548:6;12524:9;:20;12534:9;12524:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12589:9;12572:35;;12581:6;12572:35;;;12600:6;12572:35;;;;;;:::i;:::-;;;;;;;;12620:46;12640:6;12648:9;12659:6;12620:19;:46::i;:::-;12074:600;11953:721;;;:::o;15690:125::-;;;;:::o;16419:124::-;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:77;1650:7;1679:5;1668:16;;1613:77;;;:::o;1696:122::-;1769:24;1787:5;1769:24;:::i;:::-;1762:5;1759:35;1749:63;;1808:1;1805;1798:12;1749:63;1696:122;:::o;1824:139::-;1870:5;1908:6;1895:20;1886:29;;1924:33;1951:5;1924:33;:::i;:::-;1824:139;;;;:::o;1986:710::-;2082:5;2107:81;2123:64;2180:6;2123:64;:::i;:::-;2107:81;:::i;:::-;2098:90;;2208:5;2237:6;2230:5;2223:21;2271:4;2264:5;2260:16;2253:23;;2324:4;2316:6;2312:17;2304:6;2300:30;2353:3;2345:6;2342:15;2339:122;;;2372:79;;:::i;:::-;2339:122;2487:6;2470:220;2504:6;2499:3;2496:15;2470:220;;;2579:3;2608:37;2641:3;2629:10;2608:37;:::i;:::-;2603:3;2596:50;2675:4;2670:3;2666:14;2659:21;;2546:144;2530:4;2525:3;2521:14;2514:21;;2470:220;;;2474:21;2088:608;;1986:710;;;;;:::o;2719:370::-;2790:5;2839:3;2832:4;2824:6;2820:17;2816:27;2806:122;;2847:79;;:::i;:::-;2806:122;2964:6;2951:20;2989:94;3079:3;3071:6;3064:4;3056:6;3052:17;2989:94;:::i;:::-;2980:103;;2796:293;2719:370;;;;:::o;3095:126::-;3132:7;3172:42;3165:5;3161:54;3150:65;;3095:126;;;:::o;3227:96::-;3264:7;3293:24;3311:5;3293:24;:::i;:::-;3282:35;;3227:96;;;:::o;3329:122::-;3402:24;3420:5;3402:24;:::i;:::-;3395:5;3392:35;3382:63;;3441:1;3438;3431:12;3382:63;3329:122;:::o;3457:139::-;3503:5;3541:6;3528:20;3519:29;;3557:33;3584:5;3557:33;:::i;:::-;3457:139;;;;:::o;3602:684::-;3695:6;3703;3752:2;3740:9;3731:7;3727:23;3723:32;3720:119;;;3758:79;;:::i;:::-;3720:119;3906:1;3895:9;3891:17;3878:31;3936:18;3928:6;3925:30;3922:117;;;3958:79;;:::i;:::-;3922:117;4063:78;4133:7;4124:6;4113:9;4109:22;4063:78;:::i;:::-;4053:88;;3849:302;4190:2;4216:53;4261:7;4252:6;4241:9;4237:22;4216:53;:::i;:::-;4206:63;;4161:118;3602:684;;;;;:::o;4292:118::-;4379:24;4397:5;4379:24;:::i;:::-;4374:3;4367:37;4292:118;;:::o;4416:222::-;4509:4;4547:2;4536:9;4532:18;4524:26;;4560:71;4628:1;4617:9;4613:17;4604:6;4560:71;:::i;:::-;4416:222;;;;:::o;4644:99::-;4696:6;4730:5;4724:12;4714:22;;4644:99;;;:::o;4749:169::-;4833:11;4867:6;4862:3;4855:19;4907:4;4902:3;4898:14;4883:29;;4749:169;;;;:::o;4924:307::-;4992:1;5002:113;5016:6;5013:1;5010:13;5002:113;;;5101:1;5096:3;5092:11;5086:18;5082:1;5077:3;5073:11;5066:39;5038:2;5035:1;5031:10;5026:15;;5002:113;;;5133:6;5130:1;5127:13;5124:101;;;5213:1;5204:6;5199:3;5195:16;5188:27;5124:101;4973:258;4924:307;;;:::o;5237:364::-;5325:3;5353:39;5386:5;5353:39;:::i;:::-;5408:71;5472:6;5467:3;5408:71;:::i;:::-;5401:78;;5488:52;5533:6;5528:3;5521:4;5514:5;5510:16;5488:52;:::i;:::-;5565:29;5587:6;5565:29;:::i;:::-;5560:3;5556:39;5549:46;;5329:272;5237:364;;;;:::o;5607:313::-;5720:4;5758:2;5747:9;5743:18;5735:26;;5807:9;5801:4;5797:20;5793:1;5782:9;5778:17;5771:47;5835:78;5908:4;5899:6;5835:78;:::i;:::-;5827:86;;5607:313;;;;:::o;5926:474::-;5994:6;6002;6051:2;6039:9;6030:7;6026:23;6022:32;6019:119;;;6057:79;;:::i;:::-;6019:119;6177:1;6202:53;6247:7;6238:6;6227:9;6223:22;6202:53;:::i;:::-;6192:63;;6148:117;6304:2;6330:53;6375:7;6366:6;6355:9;6351:22;6330:53;:::i;:::-;6320:63;;6275:118;5926:474;;;;;:::o;6406:90::-;6440:7;6483:5;6476:13;6469:21;6458:32;;6406:90;;;:::o;6502:109::-;6583:21;6598:5;6583:21;:::i;:::-;6578:3;6571:34;6502:109;;:::o;6617:210::-;6704:4;6742:2;6731:9;6727:18;6719:26;;6755:65;6817:1;6806:9;6802:17;6793:6;6755:65;:::i;:::-;6617:210;;;;:::o;6833:619::-;6910:6;6918;6926;6975:2;6963:9;6954:7;6950:23;6946:32;6943:119;;;6981:79;;:::i;:::-;6943:119;7101:1;7126:53;7171:7;7162:6;7151:9;7147:22;7126:53;:::i;:::-;7116:63;;7072:117;7228:2;7254:53;7299:7;7290:6;7279:9;7275:22;7254:53;:::i;:::-;7244:63;;7199:118;7356:2;7382:53;7427:7;7418:6;7407:9;7403:22;7382:53;:::i;:::-;7372:63;;7327:118;6833:619;;;;;:::o;7458:329::-;7517:6;7566:2;7554:9;7545:7;7541:23;7537:32;7534:119;;;7572:79;;:::i;:::-;7534:119;7692:1;7717:53;7762:7;7753:6;7742:9;7738:22;7717:53;:::i;:::-;7707:63;;7663:117;7458:329;;;;:::o;7793:114::-;7860:6;7894:5;7888:12;7878:22;;7793:114;;;:::o;7913:184::-;8012:11;8046:6;8041:3;8034:19;8086:4;8081:3;8077:14;8062:29;;7913:184;;;;:::o;8103:132::-;8170:4;8193:3;8185:11;;8223:4;8218:3;8214:14;8206:22;;8103:132;;;:::o;8241:108::-;8318:24;8336:5;8318:24;:::i;:::-;8313:3;8306:37;8241:108;;:::o;8355:179::-;8424:10;8445:46;8487:3;8479:6;8445:46;:::i;:::-;8523:4;8518:3;8514:14;8500:28;;8355:179;;;;:::o;8540:113::-;8610:4;8642;8637:3;8633:14;8625:22;;8540:113;;;:::o;8689:732::-;8808:3;8837:54;8885:5;8837:54;:::i;:::-;8907:86;8986:6;8981:3;8907:86;:::i;:::-;8900:93;;9017:56;9067:5;9017:56;:::i;:::-;9096:7;9127:1;9112:284;9137:6;9134:1;9131:13;9112:284;;;9213:6;9207:13;9240:63;9299:3;9284:13;9240:63;:::i;:::-;9233:70;;9326:60;9379:6;9326:60;:::i;:::-;9316:70;;9172:224;9159:1;9156;9152:9;9147:14;;9112:284;;;9116:14;9412:3;9405:10;;8813:608;;;8689:732;;;;:::o;9427:373::-;9570:4;9608:2;9597:9;9593:18;9585:26;;9657:9;9651:4;9647:20;9643:1;9632:9;9628:17;9621:47;9685:108;9788:4;9779:6;9685:108;:::i;:::-;9677:116;;9427:373;;;;:::o;9806:86::-;9841:7;9881:4;9874:5;9870:16;9859:27;;9806:86;;;:::o;9898:112::-;9981:22;9997:5;9981:22;:::i;:::-;9976:3;9969:35;9898:112;;:::o;10016:214::-;10105:4;10143:2;10132:9;10128:18;10120:26;;10156:67;10220:1;10209:9;10205:17;10196:6;10156:67;:::i;:::-;10016:214;;;;:::o;10236:539::-;10320:6;10369:2;10357:9;10348:7;10344:23;10340:32;10337:119;;;10375:79;;:::i;:::-;10337:119;10523:1;10512:9;10508:17;10495:31;10553:18;10545:6;10542:30;10539:117;;;10575:79;;:::i;:::-;10539:117;10680:78;10750:7;10741:6;10730:9;10726:22;10680:78;:::i;:::-;10670:88;;10466:302;10236:539;;;;:::o;10781:474::-;10849:6;10857;10906:2;10894:9;10885:7;10881:23;10877:32;10874:119;;;10912:79;;:::i;:::-;10874:119;11032:1;11057:53;11102:7;11093:6;11082:9;11078:22;11057:53;:::i;:::-;11047:63;;11003:117;11159:2;11185:53;11230:7;11221:6;11210:9;11206:22;11185:53;:::i;:::-;11175:63;;11130:118;10781:474;;;;;:::o;11261:329::-;11320:6;11369:2;11357:9;11348:7;11344:23;11340:32;11337:119;;;11375:79;;:::i;:::-;11337:119;11495:1;11520:53;11565:7;11556:6;11545:9;11541:22;11520:53;:::i;:::-;11510:63;;11466:117;11261:329;;;;:::o;11596:60::-;11624:3;11645:5;11638:12;;11596:60;;;:::o;11662:142::-;11712:9;11745:53;11763:34;11772:24;11790:5;11772:24;:::i;:::-;11763:34;:::i;:::-;11745:53;:::i;:::-;11732:66;;11662:142;;;:::o;11810:126::-;11860:9;11893:37;11924:5;11893:37;:::i;:::-;11880:50;;11810:126;;;:::o;11942:139::-;12005:9;12038:37;12069:5;12038:37;:::i;:::-;12025:50;;11942:139;;;:::o;12087:157::-;12187:50;12231:5;12187:50;:::i;:::-;12182:3;12175:63;12087:157;;:::o;12250:248::-;12356:4;12394:2;12383:9;12379:18;12371:26;;12407:84;12488:1;12477:9;12473:17;12464:6;12407:84;:::i;:::-;12250:248;;;;:::o;12504:182::-;12644:34;12640:1;12632:6;12628:14;12621:58;12504:182;:::o;12692:366::-;12834:3;12855:67;12919:2;12914:3;12855:67;:::i;:::-;12848:74;;12931:93;13020:3;12931:93;:::i;:::-;13049:2;13044:3;13040:12;13033:19;;12692:366;;;:::o;13064:419::-;13230:4;13268:2;13257:9;13253:18;13245:26;;13317:9;13311:4;13307:20;13303:1;13292:9;13288:17;13281:47;13345:131;13471:4;13345:131;:::i;:::-;13337:139;;13064:419;;;:::o;13489:143::-;13546:5;13577:6;13571:13;13562:22;;13593:33;13620:5;13593:33;:::i;:::-;13489:143;;;;:::o;13638:351::-;13708:6;13757:2;13745:9;13736:7;13732:23;13728:32;13725:119;;;13763:79;;:::i;:::-;13725:119;13883:1;13908:64;13964:7;13955:6;13944:9;13940:22;13908:64;:::i;:::-;13898:74;;13854:128;13638:351;;;;:::o;13995:180::-;14043:77;14040:1;14033:88;14140:4;14137:1;14130:15;14164:4;14161:1;14154:15;14181:170;14321:22;14317:1;14309:6;14305:14;14298:46;14181:170;:::o;14357:366::-;14499:3;14520:67;14584:2;14579:3;14520:67;:::i;:::-;14513:74;;14596:93;14685:3;14596:93;:::i;:::-;14714:2;14709:3;14705:12;14698:19;;14357:366;;;:::o;14729:419::-;14895:4;14933:2;14922:9;14918:18;14910:26;;14982:9;14976:4;14972:20;14968:1;14957:9;14953:17;14946:47;15010:131;15136:4;15010:131;:::i;:::-;15002:139;;14729:419;;;:::o;15154:143::-;15211:5;15242:6;15236:13;15227:22;;15258:33;15285:5;15258:33;:::i;:::-;15154:143;;;;:::o;15303:351::-;15373:6;15422:2;15410:9;15401:7;15397:23;15393:32;15390:119;;;15428:79;;:::i;:::-;15390:119;15548:1;15573:64;15629:7;15620:6;15609:9;15605:22;15573:64;:::i;:::-;15563:74;;15519:128;15303:351;;;;:::o;15660:175::-;15800:27;15796:1;15788:6;15784:14;15777:51;15660:175;:::o;15841:366::-;15983:3;16004:67;16068:2;16063:3;16004:67;:::i;:::-;15997:74;;16080:93;16169:3;16080:93;:::i;:::-;16198:2;16193:3;16189:12;16182:19;;15841:366;;;:::o;16213:419::-;16379:4;16417:2;16406:9;16402:18;16394:26;;16466:9;16460:4;16456:20;16452:1;16441:9;16437:17;16430:47;16494:131;16620:4;16494:131;:::i;:::-;16486:139;;16213:419;;;:::o;16638:180::-;16686:77;16683:1;16676:88;16783:4;16780:1;16773:15;16807:4;16804:1;16797:15;16824:305;16864:3;16883:20;16901:1;16883:20;:::i;:::-;16878:25;;16917:20;16935:1;16917:20;:::i;:::-;16912:25;;17071:1;17003:66;16999:74;16996:1;16993:81;16990:107;;;17077:18;;:::i;:::-;16990:107;17121:1;17118;17114:9;17107:16;;16824:305;;;;:::o;17135:233::-;17174:3;17197:24;17215:5;17197:24;:::i;:::-;17188:33;;17243:66;17236:5;17233:77;17230:103;;;17313:18;;:::i;:::-;17230:103;17360:1;17353:5;17349:13;17342:20;;17135:233;;;:::o;17374:170::-;17514:22;17510:1;17502:6;17498:14;17491:46;17374:170;:::o;17550:366::-;17692:3;17713:67;17777:2;17772:3;17713:67;:::i;:::-;17706:74;;17789:93;17878:3;17789:93;:::i;:::-;17907:2;17902:3;17898:12;17891:19;;17550:366;;;:::o;17922:419::-;18088:4;18126:2;18115:9;18111:18;18103:26;;18175:9;18169:4;18165:20;18161:1;18150:9;18146:17;18139:47;18203:131;18329:4;18203:131;:::i;:::-;18195:139;;17922:419;;;:::o;18347:180::-;18395:77;18392:1;18385:88;18492:4;18489:1;18482:15;18516:4;18513:1;18506:15;18533:320;18577:6;18614:1;18608:4;18604:12;18594:22;;18661:1;18655:4;18651:12;18682:18;18672:81;;18738:4;18730:6;18726:17;18716:27;;18672:81;18800:2;18792:6;18789:14;18769:18;18766:38;18763:84;;;18819:18;;:::i;:::-;18763:84;18584:269;18533:320;;;:::o;18859:227::-;18999:34;18995:1;18987:6;18983:14;18976:58;19068:10;19063:2;19055:6;19051:15;19044:35;18859:227;:::o;19092:366::-;19234:3;19255:67;19319:2;19314:3;19255:67;:::i;:::-;19248:74;;19331:93;19420:3;19331:93;:::i;:::-;19449:2;19444:3;19440:12;19433:19;;19092:366;;;:::o;19464:419::-;19630:4;19668:2;19657:9;19653:18;19645:26;;19717:9;19711:4;19707:20;19703:1;19692:9;19688:17;19681:47;19745:131;19871:4;19745:131;:::i;:::-;19737:139;;19464:419;;;:::o;19889:118::-;19976:24;19994:5;19976:24;:::i;:::-;19971:3;19964:37;19889:118;;:::o;20013:222::-;20106:4;20144:2;20133:9;20129:18;20121:26;;20157:71;20225:1;20214:9;20210:17;20201:6;20157:71;:::i;:::-;20013:222;;;;:::o;20258:732::-;20365:5;20390:81;20406:64;20463:6;20406:64;:::i;:::-;20390:81;:::i;:::-;20381:90;;20491:5;20520:6;20513:5;20506:21;20554:4;20547:5;20543:16;20536:23;;20607:4;20599:6;20595:17;20587:6;20583:30;20636:3;20628:6;20625:15;20622:122;;;20655:79;;:::i;:::-;20622:122;20770:6;20753:231;20787:6;20782:3;20779:15;20753:231;;;20862:3;20891:48;20935:3;20923:10;20891:48;:::i;:::-;20886:3;20879:61;20969:4;20964:3;20960:14;20953:21;;20829:155;20813:4;20808:3;20804:14;20797:21;;20753:231;;;20757:21;20371:619;;20258:732;;;;;:::o;21013:385::-;21095:5;21144:3;21137:4;21129:6;21125:17;21121:27;21111:122;;21152:79;;:::i;:::-;21111:122;21262:6;21256:13;21287:105;21388:3;21380:6;21373:4;21365:6;21361:17;21287:105;:::i;:::-;21278:114;;21101:297;21013:385;;;;:::o;21404:554::-;21499:6;21548:2;21536:9;21527:7;21523:23;21519:32;21516:119;;;21554:79;;:::i;:::-;21516:119;21695:1;21684:9;21680:17;21674:24;21725:18;21717:6;21714:30;21711:117;;;21747:79;;:::i;:::-;21711:117;21852:89;21933:7;21924:6;21913:9;21909:22;21852:89;:::i;:::-;21842:99;;21645:306;21404:554;;;;:::o;21964:224::-;22104:34;22100:1;22092:6;22088:14;22081:58;22173:7;22168:2;22160:6;22156:15;22149:32;21964:224;:::o;22194:366::-;22336:3;22357:67;22421:2;22416:3;22357:67;:::i;:::-;22350:74;;22433:93;22522:3;22433:93;:::i;:::-;22551:2;22546:3;22542:12;22535:19;;22194:366;;;:::o;22566:419::-;22732:4;22770:2;22759:9;22755:18;22747:26;;22819:9;22813:4;22809:20;22805:1;22794:9;22790:17;22783:47;22847:131;22973:4;22847:131;:::i;:::-;22839:139;;22566:419;;;:::o;22991:168::-;23131:20;23127:1;23119:6;23115:14;23108:44;22991:168;:::o;23165:366::-;23307:3;23328:67;23392:2;23387:3;23328:67;:::i;:::-;23321:74;;23404:93;23493:3;23404:93;:::i;:::-;23522:2;23517:3;23513:12;23506:19;;23165:366;;;:::o;23537:419::-;23703:4;23741:2;23730:9;23726:18;23718:26;;23790:9;23784:4;23780:20;23776:1;23765:9;23761:17;23754:47;23818:131;23944:4;23818:131;:::i;:::-;23810:139;;23537:419;;;:::o;23962:191::-;24002:4;24022:20;24040:1;24022:20;:::i;:::-;24017:25;;24056:20;24074:1;24056:20;:::i;:::-;24051:25;;24095:1;24092;24089:8;24086:34;;;24100:18;;:::i;:::-;24086:34;24145:1;24142;24138:9;24130:17;;23962:191;;;;:::o;24159:348::-;24199:7;24222:20;24240:1;24222:20;:::i;:::-;24217:25;;24256:20;24274:1;24256:20;:::i;:::-;24251:25;;24444:1;24376:66;24372:74;24369:1;24366:81;24361:1;24354:9;24347:17;24343:105;24340:131;;;24451:18;;:::i;:::-;24340:131;24499:1;24496;24492:9;24481:20;;24159:348;;;;:::o;24513:180::-;24561:77;24558:1;24551:88;24658:4;24655:1;24648:15;24682:4;24679:1;24672:15;24699:185;24739:1;24756:20;24774:1;24756:20;:::i;:::-;24751:25;;24790:20;24808:1;24790:20;:::i;:::-;24785:25;;24829:1;24819:35;;24834:18;;:::i;:::-;24819:35;24876:1;24873;24869:9;24864:14;;24699:185;;;;:::o;24890:181::-;25030:33;25026:1;25018:6;25014:14;25007:57;24890:181;:::o;25077:366::-;25219:3;25240:67;25304:2;25299:3;25240:67;:::i;:::-;25233:74;;25316:93;25405:3;25316:93;:::i;:::-;25434:2;25429:3;25425:12;25418:19;;25077:366;;;:::o;25449:419::-;25615:4;25653:2;25642:9;25638:18;25630:26;;25702:9;25696:4;25692:20;25688:1;25677:9;25673:17;25666:47;25730:131;25856:4;25730:131;:::i;:::-;25722:139;;25449:419;;;:::o;25874:223::-;26014:34;26010:1;26002:6;25998:14;25991:58;26083:6;26078:2;26070:6;26066:15;26059:31;25874:223;:::o;26103:366::-;26245:3;26266:67;26330:2;26325:3;26266:67;:::i;:::-;26259:74;;26342:93;26431:3;26342:93;:::i;:::-;26460:2;26455:3;26451:12;26444:19;;26103:366;;;:::o;26475:419::-;26641:4;26679:2;26668:9;26664:18;26656:26;;26728:9;26722:4;26718:20;26714:1;26703:9;26699:17;26692:47;26756:131;26882:4;26756:131;:::i;:::-;26748:139;;26475:419;;;:::o;26900:221::-;27040:34;27036:1;27028:6;27024:14;27017:58;27109:4;27104:2;27096:6;27092:15;27085:29;26900:221;:::o;27127:366::-;27269:3;27290:67;27354:2;27349:3;27290:67;:::i;:::-;27283:74;;27366:93;27455:3;27366:93;:::i;:::-;27484:2;27479:3;27475:12;27468:19;;27127:366;;;:::o;27499:419::-;27665:4;27703:2;27692:9;27688:18;27680:26;;27752:9;27746:4;27742:20;27738:1;27727:9;27723:17;27716:47;27780:131;27906:4;27780:131;:::i;:::-;27772:139;;27499:419;;;:::o;27924:224::-;28064:34;28060:1;28052:6;28048:14;28041:58;28133:7;28128:2;28120:6;28116:15;28109:32;27924:224;:::o;28154:366::-;28296:3;28317:67;28381:2;28376:3;28317:67;:::i;:::-;28310:74;;28393:93;28482:3;28393:93;:::i;:::-;28511:2;28506:3;28502:12;28495:19;;28154:366;;;:::o;28526:419::-;28692:4;28730:2;28719:9;28715:18;28707:26;;28779:9;28773:4;28769:20;28765:1;28754:9;28750:17;28743:47;28807:131;28933:4;28807:131;:::i;:::-;28799:139;;28526:419;;;:::o;28951:222::-;29091:34;29087:1;29079:6;29075:14;29068:58;29160:5;29155:2;29147:6;29143:15;29136:30;28951:222;:::o;29179:366::-;29321:3;29342:67;29406:2;29401:3;29342:67;:::i;:::-;29335:74;;29418:93;29507:3;29418:93;:::i;:::-;29536:2;29531:3;29527:12;29520:19;;29179:366;;;:::o;29551:419::-;29717:4;29755:2;29744:9;29740:18;29732:26;;29804:9;29798:4;29794:20;29790:1;29779:9;29775:17;29768:47;29832:131;29958:4;29832:131;:::i;:::-;29824:139;;29551:419;;;:::o;29976:225::-;30116:34;30112:1;30104:6;30100:14;30093:58;30185:8;30180:2;30172:6;30168:15;30161:33;29976:225;:::o;30207:366::-;30349:3;30370:67;30434:2;30429:3;30370:67;:::i;:::-;30363:74;;30446:93;30535:3;30446:93;:::i;:::-;30564:2;30559:3;30555:12;30548:19;;30207:366;;;:::o;30579:419::-;30745:4;30783:2;30772:9;30768:18;30760:26;;30832:9;30826:4;30822:20;30818:1;30807:9;30803:17;30796:47;30860:131;30986:4;30860:131;:::i;:::-;30852:139;;30579:419;;;:::o

Swarm Source

ipfs://5f0cb9e21d86cd5adb7cff989d61c2776f890af786cc12aa518a3c4db9b3e293
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.