S Price: $0.550463 (+4.10%)
    /

    Token

    Wrapped stkscETH (wstkscETH)

    Overview

    Max Total Supply

    8,965.938078451983820522 wstkscETH

    Holders

    110 ( 4.545%)
    Created with Highcharts 10.2.1

    Market

    Price

    $0.00 @ 0.000000 S

    Onchain Market Cap

    $0.00

    Circulating Supply Market Cap

    -

    Other Info

    Token Contract (WITH 18 Decimals)

    Balance
    0 wstkscETH

    Value
    $0.00
    0xa4dcd05cf67ec169709f3ab845755bb4e6bda752
    Loading...
    Loading
    Loading...
    Loading
    Loading...
    Loading

    OVERVIEW

    A scalable yield-bearing stablecoin inspired by Solidly on Sonic.

    Contract Source Code Verified (Exact Match)

    Contract Name:
    Wrapper

    Compiler Version
    v0.8.28+commit.7893614a

    Optimization Enabled:
    Yes with 100000 runs

    Other Settings:
    cancun EvmVersion
    File 1 of 12 : Wrapper.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: GPL-3.0-or-later
    pragma solidity 0.8.28;
    import { ERC4626, ERC20 } from "solady/tokens/ERC4626.sol";
    import { SafeTransferLib } from "solady/utils/SafeTransferLib.sol";
    import { ReentrancyGuard } from "solady/utils/ReentrancyGuard.sol";
    import { AOperator } from "./abstracts/AOperator.sol";
    import { Ownable } from "solady/auth/Ownable.sol";
    import { UtilsLib } from "morpho/libraries/UtilsLib.sol";
    import { Errors } from "./utils/Errors.sol";
    import { ITeller } from "./interfaces/ITeller.sol";
    /// @title Wrapper contract
    /// @notice Contract to wrap a boring vault and auto compound the profits
    /// @author 0xtekgrinder
    contract Wrapper is ERC4626, Ownable, ReentrancyGuard, AOperator {
    using SafeTransferLib for address;
    using UtilsLib for uint256;
    /*//////////////////////////////////////////////////////////////
    EVENTS
    //////////////////////////////////////////////////////////////*/
    /**
    * @notice Event emitted when the vesting period is updated
    */
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 2 of 12 : ERC4626.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    import {ERC20} from "./ERC20.sol";
    import {FixedPointMathLib} from "../utils/FixedPointMathLib.sol";
    import {SafeTransferLib} from "../utils/SafeTransferLib.sol";
    /// @notice Simple ERC4626 tokenized Vault implementation.
    /// @author Solady (https://github.com/vectorized/solady/blob/main/src/tokens/ERC4626.sol)
    /// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/mixins/ERC4626.sol)
    /// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/extensions/ERC4626
        .sol)
    abstract contract ERC4626 is ERC20 {
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* CONSTANTS */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    /// @dev The default underlying decimals.
    uint8 internal constant _DEFAULT_UNDERLYING_DECIMALS = 18;
    /// @dev The default decimals offset.
    uint8 internal constant _DEFAULT_DECIMALS_OFFSET = 0;
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* CUSTOM ERRORS */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 3 of 12 : SafeTransferLib.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    /// @notice Safe ETH and ERC20 transfer library that gracefully handles missing return values.
    /// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/SafeTransferLib.sol)
    /// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SafeTransferLib.sol)
    /// @author Permit2 operations from (https://github.com/Uniswap/permit2/blob/main/src/libraries/Permit2Lib.sol)
    ///
    /// @dev Note:
    /// - For ETH transfers, please use `forceSafeTransferETH` for DoS protection.
    library SafeTransferLib {
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* CUSTOM ERRORS */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    /// @dev The ETH transfer has failed.
    error ETHTransferFailed();
    /// @dev The ERC20 `transferFrom` has failed.
    error TransferFromFailed();
    /// @dev The ERC20 `transfer` has failed.
    error TransferFailed();
    /// @dev The ERC20 `approve` has failed.
    error ApproveFailed();
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 4 of 12 : ReentrancyGuard.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    /// @notice Reentrancy guard mixin.
    /// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/ReentrancyGuard.sol)
    abstract contract ReentrancyGuard {
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* CUSTOM ERRORS */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    /// @dev Unauthorized reentrant call.
    error Reentrancy();
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* STORAGE */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    /// @dev Equivalent to: `uint72(bytes9(keccak256("_REENTRANCY_GUARD_SLOT")))`.
    /// 9 bytes is large enough to avoid collisions with lower slots,
    /// but not too large to result in excessive bytecode bloat.
    uint256 private constant _REENTRANCY_GUARD_SLOT = 0x929eee149b4bd21268;
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* REENTRANCY GUARD */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 5 of 12 : AOperator.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: GPL-3.0-or-later
    pragma solidity 0.8.28;
    import { Errors } from "../utils/Errors.sol";
    import { Ownable } from "solady/auth/Ownable.sol";
    /// @author 0xtekgrinder
    /// @title AOperator
    /// @notice Abstract contract to allow access only to operator or owner
    abstract contract AOperator is Ownable {
    /*//////////////////////////////////////////////////////////////
    EVENTS
    //////////////////////////////////////////////////////////////*/
    /**
    * @notice Event emitted when a output tokens and/or ratios are updated
    */
    event OperatorUpdated(address newOperator);
    /*//////////////////////////////////////////////////////////////
    MUTABLE VARIABLES
    //////////////////////////////////////////////////////////////*/
    /**
    * @notice operator caller address to allow access only to web3 function
    */
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 6 of 12 : Ownable.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    /// @notice Simple single owner authorization mixin.
    /// @author Solady (https://github.com/vectorized/solady/blob/main/src/auth/Ownable.sol)
    ///
    /// @dev Note:
    /// This implementation does NOT auto-initialize the owner to `msg.sender`.
    /// You MUST call the `_initializeOwner` in the constructor / initializer.
    ///
    /// While the ownable portion follows
    /// [EIP-173](https://eips.ethereum.org/EIPS/eip-173) for compatibility,
    /// the nomenclature for the 2-step ownership handover may be unique to this codebase.
    abstract contract Ownable {
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* CUSTOM ERRORS */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    /// @dev The caller is not authorized to call the function.
    error Unauthorized();
    /// @dev The `newOwner` cannot be the zero address.
    error NewOwnerIsZeroAddress();
    /// @dev The `pendingOwner` does not have a valid handover request.
    error NoHandoverRequest();
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 7 of 12 : UtilsLib.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: GPL-2.0-or-later
    pragma solidity ^0.8.0;
    import {ErrorsLib} from "../libraries/ErrorsLib.sol";
    /// @title UtilsLib
    /// @author Morpho Labs
    /// @custom:contact security@morpho.org
    /// @notice Library exposing helpers.
    /// @dev Inspired by https://github.com/morpho-org/morpho-utils.
    library UtilsLib {
    /// @dev Returns true if there is exactly one zero among `x` and `y`.
    function exactlyOneZero(uint256 x, uint256 y) internal pure returns (bool z) {
    assembly {
    z := xor(iszero(x), iszero(y))
    }
    }
    /// @dev Returns the min of `x` and `y`.
    function min(uint256 x, uint256 y) internal pure returns (uint256 z) {
    assembly {
    z := xor(x, mul(xor(x, y), lt(y, x)))
    }
    }
    /// @dev Returns `x` safely cast to uint128.
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 8 of 12 : Errors.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    //SPDX-License-Identifier: MIT
    pragma solidity ^0.8.0;
    library Errors {
    // General errors
    error ZeroValue();
    error ZeroAddress();
    error EmptyArray();
    error DifferentSizeArrays(uint256 length1, uint256 length2);
    // Operator errors
    error NotOperator();
    error NotOperatorOrOwner();
    // Call errors
    error CallFailed(bytes reason);
    // Harvest errors
    error HarvestLoseAssets();
    // Fee errors
    error FeeTooHigh();
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 9 of 12 : ITeller.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //SPDX-License-Identifier: MIT
    pragma solidity ^0.8.0;
    interface ITeller {
    function deposit(address depositAsset, uint256 depositAmount, uint256 minimumMint)
    external
    payable
    returns (uint256 shares);
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 10 of 12 : ERC20.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    /// @notice Simple ERC20 + EIP-2612 implementation.
    /// @author Solady (https://github.com/vectorized/solady/blob/main/src/tokens/ERC20.sol)
    /// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)
    /// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol)
    ///
    /// @dev Note:
    /// - The ERC20 standard allows minting and transferring to and from the zero address,
    /// minting and transferring zero tokens, as well as self-approvals.
    /// For performance, this implementation WILL NOT revert for such actions.
    /// Please add any checks with overrides if desired.
    /// - The `permit` function uses the ecrecover precompile (0x1).
    ///
    /// If you are overriding:
    /// - NEVER violate the ERC20 invariant:
    /// the total sum of all balances must be equal to `totalSupply()`.
    /// - Check that the overridden function is actually used in the function you want to
    /// change the behavior of. Much of the code has been manually inlined for performance.
    abstract contract ERC20 {
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* CUSTOM ERRORS */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    /// @dev The total supply has overflowed.
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 11 of 12 : FixedPointMathLib.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    /// @notice Arithmetic library with operations for fixed-point numbers.
    /// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/FixedPointMathLib.sol)
    /// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/FixedPointMathLib.sol)
    library FixedPointMathLib {
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* CUSTOM ERRORS */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    /// @dev The operation failed, as the output exceeds the maximum value of uint256.
    error ExpOverflow();
    /// @dev The operation failed, as the output exceeds the maximum value of uint256.
    error FactorialOverflow();
    /// @dev The operation failed, due to an overflow.
    error RPowOverflow();
    /// @dev The mantissa is too big to fit.
    error MantissaOverflow();
    /// @dev The operation failed, due to an multiplication overflow.
    error MulWadFailed();
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 12 of 12 : ErrorsLib.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: GPL-2.0-or-later
    pragma solidity ^0.8.0;
    /// @title ErrorsLib
    /// @author Morpho Labs
    /// @custom:contact security@morpho.org
    /// @notice Library exposing error messages.
    library ErrorsLib {
    /// @notice Thrown when the caller is not the owner.
    string internal constant NOT_OWNER = "not owner";
    /// @notice Thrown when the LLTV to enable exceeds the maximum LLTV.
    string internal constant MAX_LLTV_EXCEEDED = "max LLTV exceeded";
    /// @notice Thrown when the fee to set exceeds the maximum fee.
    string internal constant MAX_FEE_EXCEEDED = "max fee exceeded";
    /// @notice Thrown when the value is already set.
    string internal constant ALREADY_SET = "already set";
    /// @notice Thrown when the IRM is not enabled at market creation.
    string internal constant IRM_NOT_ENABLED = "IRM not enabled";
    /// @notice Thrown when the LLTV is not enabled at market creation.
    string internal constant LLTV_NOT_ENABLED = "LLTV not enabled";
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Settings
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    {
    "remappings": [
    "solady/=lib/solady/src/",
    "solmate/=lib/solmate/src/",
    "morpho/=lib/morpho-blue/src/",
    "ds-test/=lib/solmate/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "morpho-blue/=lib/morpho-blue/"
    ],
    "optimizer": {
    "enabled": true,
    "runs": 100000
    },
    "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
    },
    "outputSelection": {
    "*": {
    "*": [
    "evm.bytecode",
    "evm.deployedBytecode",
    "devdoc",
    "userdoc",
    "metadata",
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Contract Security Audit

    Contract ABI

    API
    [{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"},{"internalType":"address","name":"initialOperator","type":"address"},{"internalType":"address","name":"initialFeeRecipient","type":"address"},{"internalType":"uint32","name":"initialPerformanceFee","type":"uint32"},{"internalType":"uint64","name":"initialVestingPeriod","type":"uint64"},{"internalType":"address","name":"definitiveAsset","type":"address"},{"internalType":"address","name":"definitiveUnderlyingAsset","type":"address"},{"internalType":"address","name":"definitiveTeller","type":"address"},{"internalType":"string","name":"definitiveName","type":"string"},{"internalType":"string","name":"definitiveSymbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AllowanceOverflow","type":"error"},{"inputs":[],"name":"AllowanceUnderflow","type":"error"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[{"internalType":"bytes","name":"reason","type":"bytes"}],"name":"CallFailed","type":"error"},{"inputs":[],"name":"DepositMoreThanMax","type":"error"},{"inputs":[],"name":"FeeTooHigh","type":"error"},{"inputs":[],"name":"HarvestLoseAssets","type":"error"},{"inputs":[],"name":"InsufficientAllowance","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidPermit","type":"error"},{"inputs":[],"name":"MintMoreThanMax","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotOperatorOrOwner","type":"error"},{"inputs":[],"name":"Permit2AllowanceIsFixedAtInfinity","type":"error"},{"inputs":[],"name":"PermitExpired","type":"error"},{"inputs":[],"name":"RedeemMoreThanMax","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"TotalSupplyOverflow","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"WithdrawMoreThanMax","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"by","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newFeeRecipient","type":"address"}],"name":"FeeRecipientUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOperator","type":"address"}],"name":"OperatorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"newPerformanceFee","type":"uint32"}],"name":"PerformanceFeeUpdated","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newVestingPeriod","type":"uint256"}],"name":"VestingPeriodUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"by","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"result","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":[],"name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"convertToAssets","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"convertToShares","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"harvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastUpdate","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockedProfit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"maxDeposit","outputs":[{"internalType":"uint256","name":"maxAssets","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"maxMint","outputs":[{"internalType":"uint256","name":"maxShares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxRedeem","outputs":[{"internalType":"uint256","name":"maxShares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"maxAssets","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"performanceFee","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewDeposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewMint","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewRedeem","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newFeeRecipient","type":"address"}],"name":"setFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"newPerformanceFee","type":"uint32"}],"name":"setPerformanceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"newVestingPeriod","type":"uint64"}],"name":"setVestingPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teller","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"underlyingAsset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vestingPeriod","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vestingProfit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]

    60e060405234801561000f575f5ffd5b5060405161270f38038061270f83398101604081905261002e916102a6565b886001600160a01b0381166100565760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b039290921691909117905561007e8a610188565b6001600160a01b03851660805260016100978382610413565b5060026100a48282610413565b506001600160a01b0383811660a05284811660c052600580546001600160c01b0319166401000000008b84160263ffffffff19161763ffffffff8a1617905560038054610100600160481b0319166101006001600160401b038a16021790556040805163313ce56760e01b815290519187169163313ce567916004808201926020929091908290030181865afa158015610140573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061016491906104cd565b6003805460ff191660ff92909216919091179055506104f498505050505050505050565b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b80516001600160a01b03811681146101db575f5ffd5b919050565b805163ffffffff811681146101db575f5ffd5b80516001600160401b03811681146101db575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261022c575f5ffd5b81516001600160401b0381111561024557610245610209565b604051601f8201601f19908116603f011681016001600160401b038111828210171561027357610273610209565b60405281815283820160200185101561028a575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f5f5f5f5f5f5f5f5f5f6101408b8d0312156102c0575f5ffd5b6102c98b6101c5565b99506102d760208c016101c5565b98506102e560408c016101c5565b97506102f360608c016101e0565b965061030160808c016101f3565b955061030f60a08c016101c5565b945061031d60c08c016101c5565b935061032b60e08c016101c5565b6101008c01519093506001600160401b03811115610347575f5ffd5b6103538d828e0161021d565b6101208d015190935090506001600160401b03811115610371575f5ffd5b61037d8d828e0161021d565b9150509295989b9194979a5092959850565b600181811c908216806103a357607f821691505b6020821081036103c157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561040e57805f5260205f20601f840160051c810160208510156103ec5750805b601f840160051c820191505b8181101561040b575f81556001016103f8565b50505b505050565b81516001600160401b0381111561042c5761042c610209565b6104408161043a845461038f565b846103c7565b6020601f821160018114610472575f831561045b5750848201515b5f19600385901b1c1916600184901b17845561040b565b5f84815260208120601f198516915b828110156104a15787850151825560209485019460019092019101610481565b50848210156104be57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f602082840312156104dd575f5ffd5b815160ff811681146104ed575f5ffd5b9392505050565b60805160a05160c0516121c76105485f395f81816106090152610f5301525f818161057e015261109d01525f818161044f01528181611023015281816117900152818161189c0152611b2e01526121c75ff3fe60806040526004361061030e575f3560e01c80637ecebe001161019c578063c0463711116100e7578063dd62ed3e11610092578063f04e283e1161006d578063f04e283e1461093a578063f2fde38b1461094d578063f476825614610960578063fee81cf41461097f575f5ffd5b8063dd62ed3e146108c8578063e74b981b146108fc578063ef8b30f71461091b575f5ffd5b8063ce96cb77116100c2578063ce96cb771461086b578063d505accf1461088a578063d905777e146108a9575f5ffd5b8063c04637111461081f578063c63d75b614610494578063c6e6f5921461084c575f5ffd5b8063a40c701f11610147578063b3d7f6b911610122578063b3d7f6b9146107c2578063b460af94146107e1578063ba08765214610800575f5ffd5b8063a40c701f14610765578063a9059cbb14610784578063b3ab15fb146107a3575f5ffd5b80638da5cb5b116101775780638da5cb5b146106ff57806394bf804d1461073257806395d89b4114610751575f5ffd5b80637ecebe001461068857806387788782146106b95780638c6ea7cd146106ea575f5ffd5b806344b813961161025c5780636e553f65116102075780637158da7c116101e25780637158da7c146105f85780637313ee5a1461062b5780637399bfe814610669575f5ffd5b80636e553f65146105a057806370a08231146105bf578063715018a6146105f0575f5ffd5b806354d1f13d1161023757806354d1f13d1461053a578063570ca7351461054257806357edab4e1461056d575f5ffd5b806344b81396146104d357806346904840146104e75780634cdad5061461051b575f5ffd5b806323b872dd116102bc5780633644e515116102975780633644e5151461042d57806338d52e0f14610441578063402d267d14610494575f5ffd5b806323b872dd146103e35780632569296214610402578063313ce5671461040c575f5ffd5b8063095ea7b3116102ec578063095ea7b3146103795780630a28a477146103a857806318160ddd146103c7575f5ffd5b806301e1d1141461031257806306fdde031461033957806307a2d13a1461035a575b5f5ffd5b34801561031d575f5ffd5b506103266109b0565b6040519081526020015b60405180910390f35b348015610344575f5ffd5b5061034d6109d3565b6040516103309190611d80565b348015610365575f5ffd5b50610326610374366004611d92565b610a63565b348015610384575f5ffd5b50610398610393366004611dd1565b610aa7565b6040519015158152602001610330565b3480156103b3575f5ffd5b506103266103c2366004611d92565b610af7565b3480156103d2575f5ffd5b506805345cdf77eb68f44c54610326565b3480156103ee575f5ffd5b506103986103fd366004611df9565b610b2e565b61040a610be6565b005b348015610417575f5ffd5b5060035460405160ff9091168152602001610330565b348015610438575f5ffd5b50610326610c33565b34801561044c575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610330565b34801561049f575f5ffd5b506103266104ae366004611e33565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90565b3480156104de575f5ffd5b50610326610caf565b3480156104f2575f5ffd5b5060055461046f90640100000000900473ffffffffffffffffffffffffffffffffffffffff1681565b348015610526575f5ffd5b50610326610535366004611d92565b610d14565b61040a610d1e565b34801561054d575f5ffd5b505f5461046f9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610578575f5ffd5b5061046f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105ab575f5ffd5b506103266105ba366004611e4c565b610d57565b3480156105ca575f5ffd5b506103266105d9366004611e33565b6387a211a2600c9081525f91909152602090205490565b61040a610d6f565b348015610603575f5ffd5b5061046f7f000000000000000000000000000000000000000000000000000000000000000081565b348015610636575f5ffd5b5060035461065090610100900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610330565b348015610674575f5ffd5b5061040a610683366004611e76565b610d82565b348015610693575f5ffd5b506103266106a2366004611e33565b6338377508600c9081525f91909152602090205490565b3480156106c4575f5ffd5b506005546106d59063ffffffff1681565b60405163ffffffff9091168152602001610330565b3480156106f5575f5ffd5b5061032660045481565b34801561070a575f5ffd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275461046f565b34801561073d575f5ffd5b5061032661074c366004611e4c565b61112b565b34801561075c575f5ffd5b5061034d611143565b348015610770575f5ffd5b5061040a61077f366004611ef4565b611152565b34801561078f575f5ffd5b5061039861079e366004611dd1565b611206565b3480156107ae575f5ffd5b5061040a6107bd366004611e33565b61127d565b3480156107cd575f5ffd5b506103266107dc366004611d92565b611344565b3480156107ec575f5ffd5b506103266107fb366004611f17565b611371565b34801561080b575f5ffd5b5061032661081a366004611f17565b6113a7565b34801561082a575f5ffd5b50600354610650906901000000000000000000900467ffffffffffffffff1681565b348015610857575f5ffd5b50610326610866366004611d92565b6113dd565b348015610876575f5ffd5b50610326610885366004611e33565b61140a565b348015610895575f5ffd5b5061040a6108a4366004611f50565b611427565b3480156108b4575f5ffd5b506103266108c3366004611e33565b6115bc565b3480156108d3575f5ffd5b506103266108e2366004611fbd565b602052637f5e9f20600c9081525f91909152603490205490565b348015610907575f5ffd5b5061040a610916366004611e33565b6115d5565b348015610926575f5ffd5b50610326610935366004611d92565b6116a7565b61040a610948366004611e33565b6116b1565b61040a61095b366004611e33565b6116ee565b34801561096b575f5ffd5b5061040a61097a366004611fe5565b611714565b34801561098a575f5ffd5b50610326610999366004611e33565b63389a75e1600c9081525f91909152602090205490565b5f6109ce6109bc610caf565b6109c461178a565b9080821191030290565b905090565b6060600180546109e29061200c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0e9061200c565b8015610a595780601f10610a3057610100808354040283529160200191610a59565b820191905f5260205f20905b815481529060010190602001808311610a3c57829003601f168201915b5050505050905090565b5f610a70565b9392505050565b5f610a6983610a7d6109b0565b610a8890600161208a565b610aa2610a9c6805345cdf77eb68f44c5490565b60010190565b6117b5565b5f82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa35060015b92915050565b5f610b02565b611862565b5f610a6983610b186805345cdf77eb68f44c5490565b610b2390600161208a565b610afd610a9c6109b0565b5f8360601b33602052637f5e9f208117600c526034600c208054801915610b6a5780851115610b64576313be252b5f526004601cfd5b84810382555b50506387a211a28117600c526020600c20805480851115610b925763f4d678b85f526004601cfd5b84810382555050835f526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f5fa250565b5f80610c3d6109d3565b805190602001209050604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815260208101929092527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc69082015246606082015230608082015260a09020919050565b6003545f9067ffffffffffffffff690100000000000000000082048116916101009004811690818301164210610ce7575f9250505090565b60045467ffffffffffffffff8083169084164203820281610d0a57610d0a6120dc565b0490039392505050565b5f610af182610a63565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f5fa2565b5f610d61836116a7565b9050610af133838584611897565b610d7761190b565b610d805f611940565b565b3068929eee149b4bd212685403610da05763ab143c065f526004601cfd5b3068929eee149b4bd21268555f5473ffffffffffffffffffffffffffffffffffffffff163314801590610e2057507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610e57576040517ff20fc9eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610e606109b0565b90505f5f8573ffffffffffffffffffffffffffffffffffffffff168585604051610e8b929190612109565b5f604051808303815f865af19150503d805f8114610ec4576040519150601f19603f3d011682016040523d82523d5f602084013e610ec9565b606091505b509150915081610f1057806040517fa5fa8d2b000000000000000000000000000000000000000000000000000000008152600401610f079190611d80565b60405180910390fd5b82610f196109b0565b1015610f51576040517fdd814bfc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000005f610f9373ffffffffffffffffffffffffffffffffffffffff8316306119a5565b60055490915063ffffffff1615611007576005545f9061271090610fbd9063ffffffff1684612118565b610fc7919061212f565b9050610fd38183612167565b6005549092506110059073ffffffffffffffffffffffffffffffffffffffff85811691640100000000900416836119d8565b505b61104873ffffffffffffffffffffffffffffffffffffffff83167f000000000000000000000000000000000000000000000000000000000000000083611a2b565b6040517f0efe6a8b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390525f60448301819052917f000000000000000000000000000000000000000000000000000000000000000090911690630efe6a8b906064016020604051808303815f875af11580156110e5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611109919061217a565b905061111481611a74565b5050505050503868929eee149b4bd2126855505050565b5f61113583611344565b9050610af133838386611897565b6060600280546109e29061200c565b61115a61190b565b6103e88163ffffffff16111561119c576040517fcd4e616700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff83169081179091556040519081527fe72cfeafe574dcbeecf132b9545aae2c2a4440843ccbd4a6f61feb0a1439f5d2906020015b60405180910390a150565b5f6387a211a2600c52335f526020600c2080548084111561122e5763f4d678b85f526004601cfd5b83810382555050825f526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b61128561190b565b73ffffffffffffffffffffffffffffffffffffffff81166112d2576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fb3b3f5f64ab192e4b5fefde1f51ce9733bbdcf831951543b325aebd49cc27ec4906020016111fb565b5f5f610a69836113526109b0565b61135d90600161208a565b610afd610a9c6805345cdf77eb68f44c5490565b5f61137b8261140a565b84111561138f5761138f63936941fc61188e565b61139884610af7565b9050610a693384848785611ae1565b5f6113b1826115bc565b8411156113c5576113c5634656425a61188e565b6113ce84610d14565b9050610a693384848488611ae1565b5f5f610a69836113f46805345cdf77eb68f44c5490565b6113ff90600161208a565b610aa2610a9c6109b0565b6387a211a2600c9081525f828152602090912054610af190610a63565b5f6114306109d3565b8051906020012090507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64286101561146f57631a15a3cc5f526004601cfd5b6040518960601b60601c99508860601b60601c985065383775081901600e52895f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835284602084015283604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528b60208401528a60408401528960608401528060808401528860a084015260c08320604e526042602c205f528760ff16602052866040528560605260208060805f60015afa8c3d51146115575763ddafbaef5f526004601cfd5b019055777f5e9f20000000000000000000000000000000000000000089176040526034602c20889055888a7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250505f60605250505050505050565b6387a211a2600c9081525f828152602090912054610af1565b6115dd61190b565b73ffffffffffffffffffffffffffffffffffffffff811661162a576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600580547fffffffffffffffff0000000000000000000000000000000000000000ffffffff1664010000000073ffffffffffffffffffffffffffffffffffffffff8416908102919091179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc2906020016111fb565b5f610af1826113dd565b6116b961190b565b63389a75e1600c52805f526020600c2080544211156116df57636f5e88185f526004601cfd5b5f90556116eb81611940565b50565b6116f661190b565b8060601b61170b57637448fbae5f526004601cfd5b6116eb81611940565b61171c61190b565b600380547fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff1661010067ffffffffffffffff8416908102919091179091556040519081527fc21cb0f112058f1eb0e3313a577dfc27e6be5b39127591e05245343a422e4915906020016111fb565b5f6109ce7f0000000000000000000000000000000000000000000000000000000000000000306119a5565b8282028183858304148515170261185b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8385098181108201900382848609835f03841682851161180e5763ae47f7025f526004601cfd5b93849004938382119092035f839003839004600101029203041760026003830281188084028203028084028203028084028203028084028203028084028203028084029091030202610a69565b0492915050565b5f61186e8484846117b5565b90508183850915610a695760010180610a695763ae47f7025f526004601cfd5b805f526004601cfd5b6118c37f0000000000000000000000000000000000000000000000000000000000000000853085611b96565b6118cd8382611bf8565b815f52806020525f1960601c8381168582167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d760405fa35050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610d80576382b429005f526004601cfd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f511416611a2157803d853b151710611a21576390b8ec185f526004601cfd5b505f603452505050565b81601452806034526f095ea7b30000000000000000000000005f5260205f604460105f875af18060015f511416611a2157803d853b151710611a2157633e3f8f735f526004601cfd5b80156116eb5780611a83610caf565b611a8d919061208a565b6fffffffffffffffffffffffffffffffff1660045550600380547fffffffffffffffffffffffffffffff0000000000000000ffffffffffffffffff164263ffffffff16690100000000000000000002179055565b8273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611b1f57611b1f838683611c74565b611b298382611cb3565b611b547f000000000000000000000000000000000000000000000000000000000000000085846119d8565b815f52806020525f1960601c8381168582168783167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db60405fa4505050505050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f511416611bea57803d873b151710611bea57637939f4245f526004601cfd5b505f60605260405250505050565b6805345cdf77eb68f44c5481810181811015611c1b5763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52815f526020600c208181540181555080602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b81602052637f5e9f20600c52825f526034600c208054801915611cac5780831115611ca6576313be252b5f526004601cfd5b82810382555b5050505050565b6387a211a2600c52815f526020600c20805480831115611cda5763f4d678b85f526004601cfd5b82900390556805345cdf77eb68f44c805482900390555f81815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f610a696020830184611d34565b5f60208284031215611da2575f5ffd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611dcc575f5ffd5b919050565b5f5f60408385031215611de2575f5ffd5b611deb83611da9565b946020939093013593505050565b5f5f5f60608486031215611e0b575f5ffd5b611e1484611da9565b9250611e2260208501611da9565b929592945050506040919091013590565b5f60208284031215611e43575f5ffd5b610a6982611da9565b5f5f60408385031215611e5d575f5ffd5b82359150611e6d60208401611da9565b90509250929050565b5f5f5f60408486031215611e88575f5ffd5b611e9184611da9565b9250602084013567ffffffffffffffff811115611eac575f5ffd5b8401601f81018613611ebc575f5ffd5b803567ffffffffffffffff811115611ed2575f5ffd5b866020828401011115611ee3575f5ffd5b939660209190910195509293505050565b5f60208284031215611f04575f5ffd5b813563ffffffff81168114610a69575f5ffd5b5f5f5f60608486031215611f29575f5ffd5b83359250611f3960208501611da9565b9150611f4760408501611da9565b90509250925092565b5f5f5f5f5f5f5f60e0888a031215611f66575f5ffd5b611f6f88611da9565b9650611f7d60208901611da9565b95506040880135945060608801359350608088013560ff81168114611fa0575f5ffd5b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215611fce575f5ffd5b611fd783611da9565b9150611e6d60208401611da9565b5f60208284031215611ff5575f5ffd5b813567ffffffffffffffff81168114610a69575f5ffd5b600181811c9082168061202057607f821691505b602082108103612057577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115610af157610af161205d565b60018411156120d4578085048111156120b8576120b861205d565b60018416156120c657908102905b60019390931c92800261209d565b935093915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b818382375f9101908152919050565b8082028115828204841417610af157610af161205d565b5f82612162577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b81810381811115610af157610af161205d565b5f6020828403121561218a575f5ffd5b505191905056fea2646970667358221220f8e869ca0cb4e649105c5b3be900eb053e0171e65062c3e0671875f77e1233db64736f6c634300081c0033000000000000000000000000b1cf5c852b908a85624878452a3f3fdb6ce94f05000000000000000000000000c04fb43668c8c4cfb6e18dccd0085ed98b1d4008000000000000000000000000b1cf5c852b908a85624878452a3f3fdb6ce94f0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000093a80000000000000000000000000455d5f11fea33a8fa9d3e285930b478b6bf852650000000000000000000000003bce5cb273f0f148010bbea2470e7b5df84c781200000000000000000000000049acebf8f0f79e1ecb0fd47d684dadec81cc6562000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000010577261707065642073746b73634554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097773746b73634554480000000000000000000000000000000000000000000000

    Deployed Bytecode

    0x60806040526004361061030e575f3560e01c80637ecebe001161019c578063c0463711116100e7578063dd62ed3e11610092578063f04e283e1161006d578063f04e283e1461093a578063f2fde38b1461094d578063f476825614610960578063fee81cf41461097f575f5ffd5b8063dd62ed3e146108c8578063e74b981b146108fc578063ef8b30f71461091b575f5ffd5b8063ce96cb77116100c2578063ce96cb771461086b578063d505accf1461088a578063d905777e146108a9575f5ffd5b8063c04637111461081f578063c63d75b614610494578063c6e6f5921461084c575f5ffd5b8063a40c701f11610147578063b3d7f6b911610122578063b3d7f6b9146107c2578063b460af94146107e1578063ba08765214610800575f5ffd5b8063a40c701f14610765578063a9059cbb14610784578063b3ab15fb146107a3575f5ffd5b80638da5cb5b116101775780638da5cb5b146106ff57806394bf804d1461073257806395d89b4114610751575f5ffd5b80637ecebe001461068857806387788782146106b95780638c6ea7cd146106ea575f5ffd5b806344b813961161025c5780636e553f65116102075780637158da7c116101e25780637158da7c146105f85780637313ee5a1461062b5780637399bfe814610669575f5ffd5b80636e553f65146105a057806370a08231146105bf578063715018a6146105f0575f5ffd5b806354d1f13d1161023757806354d1f13d1461053a578063570ca7351461054257806357edab4e1461056d575f5ffd5b806344b81396146104d357806346904840146104e75780634cdad5061461051b575f5ffd5b806323b872dd116102bc5780633644e515116102975780633644e5151461042d57806338d52e0f14610441578063402d267d14610494575f5ffd5b806323b872dd146103e35780632569296214610402578063313ce5671461040c575f5ffd5b8063095ea7b3116102ec578063095ea7b3146103795780630a28a477146103a857806318160ddd146103c7575f5ffd5b806301e1d1141461031257806306fdde031461033957806307a2d13a1461035a575b5f5ffd5b34801561031d575f5ffd5b506103266109b0565b6040519081526020015b60405180910390f35b348015610344575f5ffd5b5061034d6109d3565b6040516103309190611d80565b348015610365575f5ffd5b50610326610374366004611d92565b610a63565b348015610384575f5ffd5b50610398610393366004611dd1565b610aa7565b6040519015158152602001610330565b3480156103b3575f5ffd5b506103266103c2366004611d92565b610af7565b3480156103d2575f5ffd5b506805345cdf77eb68f44c54610326565b3480156103ee575f5ffd5b506103986103fd366004611df9565b610b2e565b61040a610be6565b005b348015610417575f5ffd5b5060035460405160ff9091168152602001610330565b348015610438575f5ffd5b50610326610c33565b34801561044c575f5ffd5b507f000000000000000000000000455d5f11fea33a8fa9d3e285930b478b6bf852655b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610330565b34801561049f575f5ffd5b506103266104ae366004611e33565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90565b3480156104de575f5ffd5b50610326610caf565b3480156104f2575f5ffd5b5060055461046f90640100000000900473ffffffffffffffffffffffffffffffffffffffff1681565b348015610526575f5ffd5b50610326610535366004611d92565b610d14565b61040a610d1e565b34801561054d575f5ffd5b505f5461046f9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610578575f5ffd5b5061046f7f00000000000000000000000049acebf8f0f79e1ecb0fd47d684dadec81cc656281565b3480156105ab575f5ffd5b506103266105ba366004611e4c565b610d57565b3480156105ca575f5ffd5b506103266105d9366004611e33565b6387a211a2600c9081525f91909152602090205490565b61040a610d6f565b348015610603575f5ffd5b5061046f7f0000000000000000000000003bce5cb273f0f148010bbea2470e7b5df84c781281565b348015610636575f5ffd5b5060035461065090610100900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610330565b348015610674575f5ffd5b5061040a610683366004611e76565b610d82565b348015610693575f5ffd5b506103266106a2366004611e33565b6338377508600c9081525f91909152602090205490565b3480156106c4575f5ffd5b506005546106d59063ffffffff1681565b60405163ffffffff9091168152602001610330565b3480156106f5575f5ffd5b5061032660045481565b34801561070a575f5ffd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275461046f565b34801561073d575f5ffd5b5061032661074c366004611e4c565b61112b565b34801561075c575f5ffd5b5061034d611143565b348015610770575f5ffd5b5061040a61077f366004611ef4565b611152565b34801561078f575f5ffd5b5061039861079e366004611dd1565b611206565b3480156107ae575f5ffd5b5061040a6107bd366004611e33565b61127d565b3480156107cd575f5ffd5b506103266107dc366004611d92565b611344565b3480156107ec575f5ffd5b506103266107fb366004611f17565b611371565b34801561080b575f5ffd5b5061032661081a366004611f17565b6113a7565b34801561082a575f5ffd5b50600354610650906901000000000000000000900467ffffffffffffffff1681565b348015610857575f5ffd5b50610326610866366004611d92565b6113dd565b348015610876575f5ffd5b50610326610885366004611e33565b61140a565b348015610895575f5ffd5b5061040a6108a4366004611f50565b611427565b3480156108b4575f5ffd5b506103266108c3366004611e33565b6115bc565b3480156108d3575f5ffd5b506103266108e2366004611fbd565b602052637f5e9f20600c9081525f91909152603490205490565b348015610907575f5ffd5b5061040a610916366004611e33565b6115d5565b348015610926575f5ffd5b50610326610935366004611d92565b6116a7565b61040a610948366004611e33565b6116b1565b61040a61095b366004611e33565b6116ee565b34801561096b575f5ffd5b5061040a61097a366004611fe5565b611714565b34801561098a575f5ffd5b50610326610999366004611e33565b63389a75e1600c9081525f91909152602090205490565b5f6109ce6109bc610caf565b6109c461178a565b9080821191030290565b905090565b6060600180546109e29061200c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0e9061200c565b8015610a595780601f10610a3057610100808354040283529160200191610a59565b820191905f5260205f20905b815481529060010190602001808311610a3c57829003601f168201915b5050505050905090565b5f610a70565b9392505050565b5f610a6983610a7d6109b0565b610a8890600161208a565b610aa2610a9c6805345cdf77eb68f44c5490565b60010190565b6117b5565b5f82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa35060015b92915050565b5f610b02565b611862565b5f610a6983610b186805345cdf77eb68f44c5490565b610b2390600161208a565b610afd610a9c6109b0565b5f8360601b33602052637f5e9f208117600c526034600c208054801915610b6a5780851115610b64576313be252b5f526004601cfd5b84810382555b50506387a211a28117600c526020600c20805480851115610b925763f4d678b85f526004601cfd5b84810382555050835f526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f5fa250565b5f80610c3d6109d3565b805190602001209050604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815260208101929092527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc69082015246606082015230608082015260a09020919050565b6003545f9067ffffffffffffffff690100000000000000000082048116916101009004811690818301164210610ce7575f9250505090565b60045467ffffffffffffffff8083169084164203820281610d0a57610d0a6120dc565b0490039392505050565b5f610af182610a63565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f5fa2565b5f610d61836116a7565b9050610af133838584611897565b610d7761190b565b610d805f611940565b565b3068929eee149b4bd212685403610da05763ab143c065f526004601cfd5b3068929eee149b4bd21268555f5473ffffffffffffffffffffffffffffffffffffffff163314801590610e2057507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610e57576040517ff20fc9eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610e606109b0565b90505f5f8573ffffffffffffffffffffffffffffffffffffffff168585604051610e8b929190612109565b5f604051808303815f865af19150503d805f8114610ec4576040519150601f19603f3d011682016040523d82523d5f602084013e610ec9565b606091505b509150915081610f1057806040517fa5fa8d2b000000000000000000000000000000000000000000000000000000008152600401610f079190611d80565b60405180910390fd5b82610f196109b0565b1015610f51576040517fdd814bfc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000003bce5cb273f0f148010bbea2470e7b5df84c78125f610f9373ffffffffffffffffffffffffffffffffffffffff8316306119a5565b60055490915063ffffffff1615611007576005545f9061271090610fbd9063ffffffff1684612118565b610fc7919061212f565b9050610fd38183612167565b6005549092506110059073ffffffffffffffffffffffffffffffffffffffff85811691640100000000900416836119d8565b505b61104873ffffffffffffffffffffffffffffffffffffffff83167f000000000000000000000000455d5f11fea33a8fa9d3e285930b478b6bf8526583611a2b565b6040517f0efe6a8b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390525f60448301819052917f00000000000000000000000049acebf8f0f79e1ecb0fd47d684dadec81cc656290911690630efe6a8b906064016020604051808303815f875af11580156110e5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611109919061217a565b905061111481611a74565b5050505050503868929eee149b4bd2126855505050565b5f61113583611344565b9050610af133838386611897565b6060600280546109e29061200c565b61115a61190b565b6103e88163ffffffff16111561119c576040517fcd4e616700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff83169081179091556040519081527fe72cfeafe574dcbeecf132b9545aae2c2a4440843ccbd4a6f61feb0a1439f5d2906020015b60405180910390a150565b5f6387a211a2600c52335f526020600c2080548084111561122e5763f4d678b85f526004601cfd5b83810382555050825f526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b61128561190b565b73ffffffffffffffffffffffffffffffffffffffff81166112d2576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fb3b3f5f64ab192e4b5fefde1f51ce9733bbdcf831951543b325aebd49cc27ec4906020016111fb565b5f5f610a69836113526109b0565b61135d90600161208a565b610afd610a9c6805345cdf77eb68f44c5490565b5f61137b8261140a565b84111561138f5761138f63936941fc61188e565b61139884610af7565b9050610a693384848785611ae1565b5f6113b1826115bc565b8411156113c5576113c5634656425a61188e565b6113ce84610d14565b9050610a693384848488611ae1565b5f5f610a69836113f46805345cdf77eb68f44c5490565b6113ff90600161208a565b610aa2610a9c6109b0565b6387a211a2600c9081525f828152602090912054610af190610a63565b5f6114306109d3565b8051906020012090507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64286101561146f57631a15a3cc5f526004601cfd5b6040518960601b60601c99508860601b60601c985065383775081901600e52895f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835284602084015283604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528b60208401528a60408401528960608401528060808401528860a084015260c08320604e526042602c205f528760ff16602052866040528560605260208060805f60015afa8c3d51146115575763ddafbaef5f526004601cfd5b019055777f5e9f20000000000000000000000000000000000000000089176040526034602c20889055888a7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250505f60605250505050505050565b6387a211a2600c9081525f828152602090912054610af1565b6115dd61190b565b73ffffffffffffffffffffffffffffffffffffffff811661162a576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600580547fffffffffffffffff0000000000000000000000000000000000000000ffffffff1664010000000073ffffffffffffffffffffffffffffffffffffffff8416908102919091179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc2906020016111fb565b5f610af1826113dd565b6116b961190b565b63389a75e1600c52805f526020600c2080544211156116df57636f5e88185f526004601cfd5b5f90556116eb81611940565b50565b6116f661190b565b8060601b61170b57637448fbae5f526004601cfd5b6116eb81611940565b61171c61190b565b600380547fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff1661010067ffffffffffffffff8416908102919091179091556040519081527fc21cb0f112058f1eb0e3313a577dfc27e6be5b39127591e05245343a422e4915906020016111fb565b5f6109ce7f000000000000000000000000455d5f11fea33a8fa9d3e285930b478b6bf85265306119a5565b8282028183858304148515170261185b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8385098181108201900382848609835f03841682851161180e5763ae47f7025f526004601cfd5b93849004938382119092035f839003839004600101029203041760026003830281188084028203028084028203028084028203028084028203028084028203028084029091030202610a69565b0492915050565b5f61186e8484846117b5565b90508183850915610a695760010180610a695763ae47f7025f526004601cfd5b805f526004601cfd5b6118c37f000000000000000000000000455d5f11fea33a8fa9d3e285930b478b6bf85265853085611b96565b6118cd8382611bf8565b815f52806020525f1960601c8381168582167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d760405fa35050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610d80576382b429005f526004601cfd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f511416611a2157803d853b151710611a21576390b8ec185f526004601cfd5b505f603452505050565b81601452806034526f095ea7b30000000000000000000000005f5260205f604460105f875af18060015f511416611a2157803d853b151710611a2157633e3f8f735f526004601cfd5b80156116eb5780611a83610caf565b611a8d919061208a565b6fffffffffffffffffffffffffffffffff1660045550600380547fffffffffffffffffffffffffffffff0000000000000000ffffffffffffffffff164263ffffffff16690100000000000000000002179055565b8273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611b1f57611b1f838683611c74565b611b298382611cb3565b611b547f000000000000000000000000455d5f11fea33a8fa9d3e285930b478b6bf8526585846119d8565b815f52806020525f1960601c8381168582168783167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db60405fa4505050505050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f511416611bea57803d873b151710611bea57637939f4245f526004601cfd5b505f60605260405250505050565b6805345cdf77eb68f44c5481810181811015611c1b5763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52815f526020600c208181540181555080602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b81602052637f5e9f20600c52825f526034600c208054801915611cac5780831115611ca6576313be252b5f526004601cfd5b82810382555b5050505050565b6387a211a2600c52815f526020600c20805480831115611cda5763f4d678b85f526004601cfd5b82900390556805345cdf77eb68f44c805482900390555f81815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f610a696020830184611d34565b5f60208284031215611da2575f5ffd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611dcc575f5ffd5b919050565b5f5f60408385031215611de2575f5ffd5b611deb83611da9565b946020939093013593505050565b5f5f5f60608486031215611e0b575f5ffd5b611e1484611da9565b9250611e2260208501611da9565b929592945050506040919091013590565b5f60208284031215611e43575f5ffd5b610a6982611da9565b5f5f60408385031215611e5d575f5ffd5b82359150611e6d60208401611da9565b90509250929050565b5f5f5f60408486031215611e88575f5ffd5b611e9184611da9565b9250602084013567ffffffffffffffff811115611eac575f5ffd5b8401601f81018613611ebc575f5ffd5b803567ffffffffffffffff811115611ed2575f5ffd5b866020828401011115611ee3575f5ffd5b939660209190910195509293505050565b5f60208284031215611f04575f5ffd5b813563ffffffff81168114610a69575f5ffd5b5f5f5f60608486031215611f29575f5ffd5b83359250611f3960208501611da9565b9150611f4760408501611da9565b90509250925092565b5f5f5f5f5f5f5f60e0888a031215611f66575f5ffd5b611f6f88611da9565b9650611f7d60208901611da9565b95506040880135945060608801359350608088013560ff81168114611fa0575f5ffd5b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215611fce575f5ffd5b611fd783611da9565b9150611e6d60208401611da9565b5f60208284031215611ff5575f5ffd5b813567ffffffffffffffff81168114610a69575f5ffd5b600181811c9082168061202057607f821691505b602082108103612057577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115610af157610af161205d565b60018411156120d4578085048111156120b8576120b861205d565b60018416156120c657908102905b60019390931c92800261209d565b935093915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b818382375f9101908152919050565b8082028115828204841417610af157610af161205d565b5f82612162577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b81810381811115610af157610af161205d565b5f6020828403121561218a575f5ffd5b505191905056fea2646970667358221220f8e869ca0cb4e649105c5b3be900eb053e0171e65062c3e0671875f77e1233db64736f6c634300081c0033

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

    000000000000000000000000b1cf5c852b908a85624878452a3f3fdb6ce94f05000000000000000000000000c04fb43668c8c4cfb6e18dccd0085ed98b1d4008000000000000000000000000b1cf5c852b908a85624878452a3f3fdb6ce94f0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000093a80000000000000000000000000455d5f11fea33a8fa9d3e285930b478b6bf852650000000000000000000000003bce5cb273f0f148010bbea2470e7b5df84c781200000000000000000000000049acebf8f0f79e1ecb0fd47d684dadec81cc6562000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000010577261707065642073746b73634554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097773746b73634554480000000000000000000000000000000000000000000000

    -----Decoded View---------------
    Arg [0] : initialOwner (address): 0xb1Cf5c852b908A85624878452A3F3fDb6cE94f05
    Arg [1] : initialOperator (address): 0xC04FB43668C8C4cFb6e18dCCd0085ED98B1d4008
    Arg [2] : initialFeeRecipient (address): 0xb1Cf5c852b908A85624878452A3F3fDb6cE94f05
    Arg [3] : initialPerformanceFee (uint32): 0
    Arg [4] : initialVestingPeriod (uint64): 604800
    Arg [5] : definitiveAsset (address): 0x455d5f11Fea33A8fa9D3e285930b478B6bF85265
    Arg [6] : definitiveUnderlyingAsset (address): 0x3bcE5CB273F0F148010BbEa2470e7b5df84C7812
    Arg [7] : definitiveTeller (address): 0x49AcEbF8f0f79e1Ecb0fd47D684DAdec81cc6562
    Arg [8] : definitiveName (string): Wrapped stkscETH
    Arg [9] : definitiveSymbol (string): wstkscETH

    -----Encoded View---------------
    14 Constructor Arguments found :
    Arg [0] : 000000000000000000000000b1cf5c852b908a85624878452a3f3fdb6ce94f05
    Arg [1] : 000000000000000000000000c04fb43668c8c4cfb6e18dccd0085ed98b1d4008
    Arg [2] : 000000000000000000000000b1cf5c852b908a85624878452a3f3fdb6ce94f05
    Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
    Arg [4] : 0000000000000000000000000000000000000000000000000000000000093a80
    Arg [5] : 000000000000000000000000455d5f11fea33a8fa9d3e285930b478b6bf85265
    Arg [6] : 0000000000000000000000003bce5cb273f0f148010bbea2470e7b5df84c7812
    Arg [7] : 00000000000000000000000049acebf8f0f79e1ecb0fd47d684dadec81cc6562
    Arg [8] : 0000000000000000000000000000000000000000000000000000000000000140
    Arg [9] : 0000000000000000000000000000000000000000000000000000000000000180
    Arg [10] : 0000000000000000000000000000000000000000000000000000000000000010
    Arg [11] : 577261707065642073746b736345544800000000000000000000000000000000
    Arg [12] : 0000000000000000000000000000000000000000000000000000000000000009
    Arg [13] : 7773746b73634554480000000000000000000000000000000000000000000000


    [ 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.