Contract 0x23F7787159C5c6910e1286008Edc5Ddea82ce450

 
 
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0x86e66040a4c437a08f2bf84577ae432d4e8ce22fb4f2d5805c1d2e4058cfc8700x61010060362691622022-11-30 21:52:51120 days 11 hrs ago0x31a14626579c3197b43de563128c2171f4f840ad IN  Create: OriumAavegotchiLendingResolver0 MATIC0.063793633902 36.212207628
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
OriumAavegotchiLendingResolver

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at polygonscan.com on 2022-11-30
*/

// Sources flattened with hardhat v2.10.1 https://hardhat.org

// File contracts/interfaces/IGelatoResolver.sol



pragma solidity ^0.8.9;

interface IGelatoResolver {

    // @notice Checks if Gelato should execute a task
    // @return canExec True if Gelato should execute task
    // @return execPayload Encoded function name and params
    function checker() external view returns (bool canExec, bytes memory execPayload);

}


// File contracts/interfaces/IGotchiLendingFacet.sol



pragma solidity ^0.8.9;

// @param _erc721TokenId The identifier of the NFT to lend
// @param _initialCost The lending fee of the aavegotchi in $GHST
// @param _period The lending period of the aavegotchi, unit: second
// @param _revenueSplit The revenue split of the lending, 3 values, sum of the should be 100
// @param _originalOwner The account for original owner, can be set to another address if the owner wishes to have profit split there.
// @param _thirdParty The 3rd account for receive revenue split, can be address(0)
// @param _whitelistId The identifier of whitelist for agree lending, if 0, allow everyone
struct AddGotchiListing {
    uint32 tokenId;
    uint96 initialCost;
    uint32 period;
    uint8[3] revenueSplit;
    address originalOwner;
    address thirdParty;
    uint32 whitelistId;
    address[] revenueTokens;
}

interface IGotchiLendingFacet {

    // @notice Allow aavegotchi lenders (msg sender) or their lending operators to add request for lending
    // @dev If the lending request exist, cancel it and replaces it with the new one
    // @dev If the lending is active, unable to cancel
    function batchAddGotchiListing(AddGotchiListing[] memory listings) external;

    // @notice Claim and end and relist gotchi lendings in batch by token ID
    function batchClaimAndEndAndRelistGotchiLending(uint32[] calldata _tokenIds) external;

    // @notice Allow a borrower to agree an lending for the NFT
    // @dev Will throw if the NFT has been lent or if the lending has been canceled already
    // @param _listingId The identifier of the lending to agree
    function agreeGotchiLending(
        uint32 _listingId, uint32 _erc721TokenId, uint96 _initialCost, uint32 _period, uint8[3] calldata _revenueSplit
    ) external;

    // @notice Allow an aavegotchi lender to cancel his NFT lending by providing the NFT contract address and identifier
    // @param _erc721TokenId The identifier of the NFT to be delisted from lending
    function cancelGotchiLendingByToken(uint32 _erc721TokenId) external;

}


// File contracts/interfaces/IOriumAavegotchiLending.sol



pragma solidity ^0.8.9;

interface IOriumAavegotchiLending {

    function getPendingActions(bool limit) external view returns (
        uint32[] memory listNfts, uint32[] memory claimAndListNfts, uint32[] memory removeNfts
    );

    function manageLendings(
        uint32[] calldata listNfts, uint32[] calldata claimAndListNfts, uint32[] calldata removeNfts
    ) external;

    function getAllTokenIds() external view returns (uint256[] memory);

    function getListingByTokenId(uint256 tokenId) external view returns (AddGotchiListing memory);

    function getAavegotchiOriginalOwner(uint32 tokenId) external view returns (address);
}


// File contracts/libraries/LibAavegotchiStorage.sol



pragma solidity ^0.8.9;

uint256 constant EQUIPPED_WEARABLE_SLOTS = 16;
uint256 constant NUMERIC_TRAITS_NUM = 6;

// @notice Define what action gelato needs to perform with the lending
enum LendingAction {
    DO_NOTHING,     // Don't do anything
    REMOVE,         // Remove Nft from Scheduling
    LIST,           // List NFT for rent
    CLAIM_AND_LIST  // Claim and end current rent, and list NFT for rent again
}

struct NftLendingAction {
    uint32 tokenId;
    LendingAction action;
}

struct GotchiLending {
    address lender;
    uint96 initialCost;
    address borrower;
    uint32 listingId;
    uint32 erc721TokenId;
    uint32 whitelistId;
    address originalOwner;
    uint40 timeCreated;
    uint40 timeAgreed;
    bool canceled;
    bool completed;
    address thirdParty;
    uint8[3] revenueSplit;
    uint40 lastClaimed;
    uint32 period;
    address[] revenueTokens;
}

struct Dimensions {
    uint8 x;
    uint8 y;
    uint8 width;
    uint8 height;
}

struct ItemType {
    string name;
    string description;
    string author;
    int8[NUMERIC_TRAITS_NUM] traitModifiers;
    bool[EQUIPPED_WEARABLE_SLOTS] slotPositions;
    uint8[] allowedCollaterals;
    Dimensions dimensions;
    uint256 ghstPrice;
    uint256 maxQuantity;
    uint256 totalQuantity;
    uint32 svgId;
    uint8 rarityScoreModifier;
    bool canPurchaseWithGhst;
    uint16 minLevel;
    bool canBeTransferred;
    uint8 category;
    int16 kinshipBonus;
    uint32 experienceBonus;
}

struct ItemTypeIO {
    uint256 balance;
    uint256 itemId;
    ItemType itemType;
}

struct AavegotchiInfo {
    uint256 tokenId;
    string name;
    address owner;
    uint256 randomNumber;
    uint256 status;
    int16[NUMERIC_TRAITS_NUM] numericTraits;
    int16[NUMERIC_TRAITS_NUM] modifiedNumericTraits;
    uint16[EQUIPPED_WEARABLE_SLOTS] equippedWearables;
    address collateral;
    address escrow;
    uint256 stakedAmount;
    uint256 minimumStake;
    uint256 kinship;
    uint256 lastInteracted;
    uint256 experience;
    uint256 toNextLevel;
    uint256 usedSkillPoints;
    uint256 level;
    uint256 hauntId;
    uint256 baseRarityScore;
    uint256 modifiedRarityScore;
    bool locked;
    ItemTypeIO[] items;
}


// File contracts/interfaces/ILendingGetterAndSetterFacet.sol



pragma solidity ^0.8.9;

struct LendingOperatorInputs {
    uint32 _tokenId;
    bool _isLendingOperator;
}

interface ILendingGetterAndSetterFacet {

    function batchSetLendingOperator(address _lendingOperator, LendingOperatorInputs[] calldata _inputs) external;

    function isLendingOperator(address _lender, address _lendingOperator, uint32 _tokenId) external view returns (bool);

    // @notice Get an aavegotchi lending details through an identifier
    // @dev Will throw if the lending does not exist
    // @param _listingId The identifier of the lending to query
    // @return listing_ A struct containing certain details about the lending like timeCreated etc
    // @return aavegotchiInfo_ A struct containing details about the aavegotchi
    function getGotchiLendingListingInfo(uint32 _listingId) external view returns (GotchiLending memory listing_, AavegotchiInfo memory aavegotchiInfo_);

    // @notice Get an ERC721 lending details through an identifier
    // @dev Will throw if the lending does not exist
    // @param _listingId The identifier of the lending to query
    // @return listing_ A struct containing certain details about the ERC721 lending like timeCreated etc
    function getLendingListingInfo(uint32 _listingId) external view returns (GotchiLending memory listing_);

    // @notice Get an aavegotchi lending details through an NFT
    // @dev Will throw if the lending does not exist
    // @param _erc721TokenId The identifier of the NFT associated with the lending
    // @return listing_ A struct containing certain details about the lending associated with an NFT of contract identifier `_erc721TokenId`
    function getGotchiLendingFromToken(uint32 _erc721TokenId) external view returns (GotchiLending memory listing_);

    function getGotchiLendingIdByToken(uint32 _erc721TokenId) external view returns (uint32);

    function isAavegotchiLent(uint32 _erc721TokenId) external view returns (bool);

    function isAavegotchiListed(uint32 _erc721TokenId) external view returns (bool);

}


// File contracts/interfaces/IERC721.sol



pragma solidity ^0.8.9;

interface IERC721 {

    // @notice Find the owner of an NFT
    // @dev NFTs assigned to zero address are considered invalid, and queries about them do throw.
    // @param _tokenId The identifier for an NFT
    // @return The address of the owner of the NFT
    function ownerOf(uint256 _tokenId) external view returns (address);
    
      /**
     * @dev Transfers `tokenId` token from `from` to `to`.
     *
     * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must be owned by `from`.
     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
     *
     * Emits a {Transfer} event.
     */
     function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

}


// File contracts/OriumAavegotchiLendingResolver.sol

// SPDX-License-Identifier: GPL-3.0-only


pragma solidity ^0.8.9;






contract OriumAavegotchiLendingResolver is IGelatoResolver {

    uint8 constant MAX_ACTIONS = 5;
    IGotchiLendingFacet public immutable _gotchiLendingFacet;
    ILendingGetterAndSetterFacet public immutable _lendingGetterAndSetterFacet;
    IOriumAavegotchiLending public immutable _oriumAavegotchiLending;
    IERC721 public immutable _aavegotchiDiamond;

    constructor(address oriumAavegotchiLending, address aavegotchiDiamond) {
        _gotchiLendingFacet = IGotchiLendingFacet(aavegotchiDiamond);
        _lendingGetterAndSetterFacet = ILendingGetterAndSetterFacet(aavegotchiDiamond);
        _oriumAavegotchiLending = IOriumAavegotchiLending(oriumAavegotchiLending);
        _aavegotchiDiamond = IERC721(aavegotchiDiamond);
    }

    function checker() external view returns (bool canExec, bytes memory execPayload) {
        (uint32[] memory listNfts, uint32[] memory claimAndListNfts, uint32[] memory removeNfts) = this.getPendingActions(true);
        if (listNfts.length > 0 || claimAndListNfts.length > 0) {
            canExec = true;
            execPayload = abi.encodeWithSelector(
                IOriumAavegotchiLending.manageLendings.selector, listNfts, claimAndListNfts, removeNfts
            );
        } else {
            canExec = false;
            execPayload = bytes("No actions to perform");
        }
    }

    // == Helper Functions =============================================================================================

    // @notice Retrieve all pending actions in the Scheduler
    // @param limit If true, limits the amount of actions to MAX_ACTIONS
    // @return List of pending actions
    function getPendingActions(bool limit) public view returns (uint32[] memory listNfts, uint32[] memory claimAndListNfts, uint32[] memory removeNfts) {
        uint256 listCounter;
        uint256 claimAndListCounter;
        uint256 removeCounter;
        uint256[] memory tokenIds = _oriumAavegotchiLending.getAllTokenIds();
        uint256 actions_limit = limit == true ? MAX_ACTIONS : tokenIds.length;
        NftLendingAction[] memory actions = new NftLendingAction[](tokenIds.length);
        for (uint256 i; i < tokenIds.length && (listCounter + claimAndListCounter + removeCounter) < actions_limit; i++) {
            require(tokenIds[i] <= type(uint32).max, "OriumAavegotchiLendingResolver: uint32 cast overflow");
            uint32 tokenId = uint32(tokenIds[i]);
            AddGotchiListing memory listing = _oriumAavegotchiLending.getListingByTokenId(tokenId);
            address ownerOf = _oriumAavegotchiLending.getAavegotchiOriginalOwner(tokenId);
            NftLendingAction memory lendingAction = getLendingAction(ownerOf, listing.tokenId);
            actions[i] = NftLendingAction(listing.tokenId, lendingAction.action);
            if (lendingAction.action == LendingAction.LIST) {
                listCounter++;
            } else if (lendingAction.action == LendingAction.CLAIM_AND_LIST) {
                claimAndListCounter++;
            } else if (lendingAction.action == LendingAction.REMOVE) {
                removeCounter++;
            }
        }
        return buildParams(listCounter, claimAndListCounter, removeCounter, actions);
    }

    function getLendingAction(address owner, uint32 tokenId) private view returns (NftLendingAction memory) {
        if (_lendingGetterAndSetterFacet.isLendingOperator(owner, address(_oriumAavegotchiLending), tokenId) == false) {
            return NftLendingAction(tokenId, LendingAction.REMOVE);
        }
        bool isListed = _lendingGetterAndSetterFacet.isAavegotchiListed(tokenId);
        if (isListed == false) {
            return NftLendingAction(tokenId, LendingAction.LIST);
        } else {
            if (_lendingGetterAndSetterFacet.isAavegotchiLent(tokenId) == true && isLendingClaimable(tokenId) == true) {
                return NftLendingAction(tokenId, LendingAction.CLAIM_AND_LIST);
            }
        }
        return NftLendingAction(tokenId, LendingAction.DO_NOTHING);
    }

    function buildParams(
        uint256 listSize, uint256 claimAndListSize, uint256 removeSize, NftLendingAction[] memory actions
    ) private pure returns (
        uint32[] memory _listNfts, uint32[] memory _claimAndListNfts, uint32[] memory _removeNfts
    ) {
        _listNfts = new uint32[](listSize);
        _claimAndListNfts = new uint32[](claimAndListSize);
        _removeNfts = new uint32[](removeSize);
        uint256 listCounter;
        uint256 claimAndListCounter;
        uint256 removeCounter;
        for (uint256 i; i < actions.length; i++) {
            NftLendingAction memory lendingAction = actions[i];
            if (lendingAction.action == LendingAction.LIST) {
                _listNfts[listCounter++] = lendingAction.tokenId;
            } else if (lendingAction.action == LendingAction.CLAIM_AND_LIST) {
                _claimAndListNfts[claimAndListCounter++] = lendingAction.tokenId;
            } else if (lendingAction.action == LendingAction.REMOVE) {
                _removeNfts[removeCounter++] = lendingAction.tokenId;
            }
        }
    }

    function isLendingClaimable(uint32 tokenId) private view returns (bool) {
        GotchiLending memory lending = _lendingGetterAndSetterFacet.getGotchiLendingFromToken(tokenId);
        return (lending.timeAgreed + lending.period) < block.timestamp;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"oriumAavegotchiLending","type":"address"},{"internalType":"address","name":"aavegotchiDiamond","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"_aavegotchiDiamond","outputs":[{"internalType":"contract IERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_gotchiLendingFacet","outputs":[{"internalType":"contract IGotchiLendingFacet","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lendingGetterAndSetterFacet","outputs":[{"internalType":"contract ILendingGetterAndSetterFacet","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_oriumAavegotchiLending","outputs":[{"internalType":"contract IOriumAavegotchiLending","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checker","outputs":[{"internalType":"bool","name":"canExec","type":"bool"},{"internalType":"bytes","name":"execPayload","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"limit","type":"bool"}],"name":"getPendingActions","outputs":[{"internalType":"uint32[]","name":"listNfts","type":"uint32[]"},{"internalType":"uint32[]","name":"claimAndListNfts","type":"uint32[]"},{"internalType":"uint32[]","name":"removeNfts","type":"uint32[]"}],"stateMutability":"view","type":"function"}]

6101006040523480156200001257600080fd5b506040516200210d3803806200210d83398181016040528101906200003891906200017a565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff16815250505050620001c1565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001428262000115565b9050919050565b620001548162000135565b81146200016057600080fd5b50565b600081519050620001748162000149565b92915050565b6000806040838503121562000194576200019362000110565b5b6000620001a48582860162000163565b9250506020620001b78582860162000163565b9150509250929050565b60805160a05160c05160e051611eda6200023360003960006106370152600081816101610152818161032d015281816103df015281816106130152610821015260008181610132015281816107e4015281816108f0015281816109e20152610dab015260006105ef0152611eda6000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80630a1c6b3814610067578063741703261461008557806374479000146100b7578063ac3af889146100d5578063aea3e595146100f3578063cf5303cf14610111575b600080fd5b61006f610130565b60405161007c9190610f37565b60405180910390f35b61009f600480360381019061009a9190610f9e565b610154565b6040516100ae93929190611099565b60405180910390f35b6100bf6105ed565b6040516100cc9190611106565b60405180910390f35b6100dd610611565b6040516100ea9190611142565b60405180910390f35b6100fb610635565b604051610108919061117e565b60405180910390f35b610119610659565b604051610127929190611241565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b60608060606000806000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bdbed7226040518163ffffffff1660e01b815260040160006040518083038186803b1580156101c557600080fd5b505afa1580156101d9573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061020291906113ef565b90506000600115158915151461021957815161021f565b600560ff165b90506000825167ffffffffffffffff81111561023e5761023d611276565b5b60405190808252806020026020018201604052801561027757816020015b610264610e86565b81526020019060019003908161025c5790505b50905060005b8351811080156102a25750828587896102969190611467565b6102a09190611467565b105b156105cd5763ffffffff80168482815181106102c1576102c06114bd565b5b6020026020010151111561030a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103019061156f565b60405180910390fd5b600084828151811061031f5761031e6114bd565b5b6020026020010151905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166397cd84ef836040518263ffffffff1660e01b815260040161038491906115c0565b60006040518083038186803b15801561039c57600080fd5b505afa1580156103b0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906103d99190611928565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166342cb43d4846040518263ffffffff1660e01b81526004016104369190611980565b60206040518083038186803b15801561044e57600080fd5b505afa158015610462573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610486919061199b565b905060006104988284600001516107d6565b90506040518060400160405280846000015163ffffffff168152602001826020015160038111156104cc576104cb6119c8565b5b8152508686815181106104e2576104e16114bd565b5b602002602001018190525060026003811115610501576105006119c8565b5b81602001516003811115610518576105176119c8565b5b1415610531578a80610529906119f7565b9b50506105b6565b600380811115610544576105436119c8565b5b8160200151600381111561055b5761055a6119c8565b5b141561057457898061056c906119f7565b9a50506105b5565b60016003811115610588576105876119c8565b5b8160200151600381111561059f5761059e6119c8565b5b14156105b45788806105b0906119f7565b9950505b5b5b5050505080806105c5906119f7565b91505061027d565b506105da86868684610b16565b9850985098505050505050509193909250565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000606060008060003073ffffffffffffffffffffffffffffffffffffffff16637417032660016040518263ffffffff1660e01b815260040161069c9190611a40565b60006040518083038186803b1580156106b457600080fd5b505afa1580156106c8573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906106f19190611b1e565b925092509250600083511180610708575060008251115b156107925760019450638a911d1160e01b83838360405160240161072e93929190611099565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505093506107cf565b600094506040518060400160405280601581526020017f4e6f20616374696f6e7320746f20706572666f726d000000000000000000000081525093505b5050509091565b6107de610e86565b600015157f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166324213779857f0000000000000000000000000000000000000000000000000000000000000000866040518463ffffffff1660e01b815260040161085f93929190611bd4565b60206040518083038186803b15801561087757600080fd5b505afa15801561088b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108af9190611c20565b151514156108ec5760405180604001604052808363ffffffff168152602001600160038111156108e2576108e16119c8565b5b8152509050610b10565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b11deb29846040518263ffffffff1660e01b81526004016109479190611980565b60206040518083038186803b15801561095f57600080fd5b505afa158015610973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109979190611c20565b90506000151581151514156109dc5760405180604001604052808463ffffffff168152602001600260038111156109d1576109d06119c8565b5b815250915050610b10565b600115157f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d731d44e856040518263ffffffff1660e01b8152600401610a399190611980565b60206040518083038186803b158015610a5157600080fd5b505afa158015610a65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a899190611c20565b1515148015610aa4575060011515610aa084610da6565b1515145b15610ade5760405180604001604052808463ffffffff168152602001600380811115610ad357610ad26119c8565b5b815250915050610b10565b60405180604001604052808463ffffffff16815260200160006003811115610b0957610b086119c8565b5b8152509150505b92915050565b60608060608667ffffffffffffffff811115610b3557610b34611276565b5b604051908082528060200260200182016040528015610b635781602001602082028036833780820191505090505b5092508567ffffffffffffffff811115610b8057610b7f611276565b5b604051908082528060200260200182016040528015610bae5781602001602082028036833780820191505090505b5091508467ffffffffffffffff811115610bcb57610bca611276565b5b604051908082528060200260200182016040528015610bf95781602001602082028036833780820191505090505b5090506000806000805b8751811015610d98576000888281518110610c2157610c206114bd565b5b6020026020010151905060026003811115610c3f57610c3e6119c8565b5b81602001516003811115610c5657610c556119c8565b5b1415610c9f578060000151888680610c6d906119f7565b975081518110610c8057610c7f6114bd565b5b602002602001019063ffffffff16908163ffffffff1681525050610d84565b600380811115610cb257610cb16119c8565b5b81602001516003811115610cc957610cc86119c8565b5b1415610d12578060000151878580610ce0906119f7565b965081518110610cf357610cf26114bd565b5b602002602001019063ffffffff16908163ffffffff1681525050610d83565b60016003811115610d2657610d256119c8565b5b81602001516003811115610d3d57610d3c6119c8565b5b1415610d82578060000151868480610d54906119f7565b955081518110610d6757610d666114bd565b5b602002602001019063ffffffff16908163ffffffff16815250505b5b5b508080610d90906119f7565b915050610c03565b505050509450945094915050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663113df564846040518263ffffffff1660e01b8152600401610e029190611980565b60006040518083038186803b158015610e1a57600080fd5b505afa158015610e2e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610e579190611e20565b905042816101c0015163ffffffff16826101000151610e769190611e69565b64ffffffffff1610915050919050565b6040518060400160405280600063ffffffff16815260200160006003811115610eb257610eb16119c8565b5b81525090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610efd610ef8610ef384610eb8565b610ed8565b610eb8565b9050919050565b6000610f0f82610ee2565b9050919050565b6000610f2182610f04565b9050919050565b610f3181610f16565b82525050565b6000602082019050610f4c6000830184610f28565b92915050565b6000604051905090565b600080fd5b600080fd5b60008115159050919050565b610f7b81610f66565b8114610f8657600080fd5b50565b600081359050610f9881610f72565b92915050565b600060208284031215610fb457610fb3610f5c565b5b6000610fc284828501610f89565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600063ffffffff82169050919050565b61101081610ff7565b82525050565b60006110228383611007565b60208301905092915050565b6000602082019050919050565b600061104682610fcb565b6110508185610fd6565b935061105b83610fe7565b8060005b8381101561108c5781516110738882611016565b975061107e8361102e565b92505060018101905061105f565b5085935050505092915050565b600060608201905081810360008301526110b3818661103b565b905081810360208301526110c7818561103b565b905081810360408301526110db818461103b565b9050949350505050565b60006110f082610f04565b9050919050565b611100816110e5565b82525050565b600060208201905061111b60008301846110f7565b92915050565b600061112c82610f04565b9050919050565b61113c81611121565b82525050565b60006020820190506111576000830184611133565b92915050565b600061116882610f04565b9050919050565b6111788161115d565b82525050565b6000602082019050611193600083018461116f565b92915050565b6111a281610f66565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156111e25780820151818401526020810190506111c7565b838111156111f1576000848401525b50505050565b6000601f19601f8301169050919050565b6000611213826111a8565b61121d81856111b3565b935061122d8185602086016111c4565b611236816111f7565b840191505092915050565b60006040820190506112566000830185611199565b81810360208301526112688184611208565b90509392505050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6112ae826111f7565b810181811067ffffffffffffffff821117156112cd576112cc611276565b5b80604052505050565b60006112e0610f52565b90506112ec82826112a5565b919050565b600067ffffffffffffffff82111561130c5761130b611276565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b61133581611322565b811461134057600080fd5b50565b6000815190506113528161132c565b92915050565b600061136b611366846112f1565b6112d6565b9050808382526020820190506020840283018581111561138e5761138d61131d565b5b835b818110156113b757806113a38882611343565b845260208401935050602081019050611390565b5050509392505050565b600082601f8301126113d6576113d5611271565b5b81516113e6848260208601611358565b91505092915050565b60006020828403121561140557611404610f5c565b5b600082015167ffffffffffffffff81111561142357611422610f61565b5b61142f848285016113c1565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061147282611322565b915061147d83611322565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156114b2576114b1611438565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082825260208201905092915050565b7f4f7269756d41617665676f746368694c656e64696e675265736f6c7665723a2060008201527f75696e7433322063617374206f766572666c6f77000000000000000000000000602082015250565b60006115596034836114ec565b9150611564826114fd565b604082019050919050565b600060208201905081810360008301526115888161154c565b9050919050565b60006115aa6115a56115a084610ff7565b610ed8565b611322565b9050919050565b6115ba8161158f565b82525050565b60006020820190506115d560008301846115b1565b92915050565b600080fd5b600080fd5b6115ee81610ff7565b81146115f957600080fd5b50565b60008151905061160b816115e5565b92915050565b60006bffffffffffffffffffffffff82169050919050565b61163281611611565b811461163d57600080fd5b50565b60008151905061164f81611629565b92915050565b600067ffffffffffffffff8211156116705761166f611276565b5b602082029050919050565b600060ff82169050919050565b6116918161167b565b811461169c57600080fd5b50565b6000815190506116ae81611688565b92915050565b60006116c76116c284611655565b6112d6565b905080602084028301858111156116e1576116e061131d565b5b835b8181101561170a57806116f6888261169f565b8452602084019350506020810190506116e3565b5050509392505050565b600082601f83011261172957611728611271565b5b60036117368482856116b4565b91505092915050565b600061174a82610eb8565b9050919050565b61175a8161173f565b811461176557600080fd5b50565b60008151905061177781611751565b92915050565b600067ffffffffffffffff82111561179857611797611276565b5b602082029050602081019050919050565b60006117bc6117b78461177d565b6112d6565b905080838252602082019050602084028301858111156117df576117de61131d565b5b835b8181101561180857806117f48882611768565b8452602084019350506020810190506117e1565b5050509392505050565b600082601f83011261182757611826611271565b5b81516118378482602086016117a9565b91505092915050565b60006101408284031215611857576118566115db565b5b6118626101006112d6565b90506000611872848285016115fc565b600083015250602061188684828501611640565b602083015250604061189a848285016115fc565b60408301525060606118ae84828501611714565b60608301525060c06118c284828501611768565b60808301525060e06118d684828501611768565b60a0830152506101006118eb848285016115fc565b60c08301525061012082015167ffffffffffffffff8111156119105761190f6115e0565b5b61191c84828501611812565b60e08301525092915050565b60006020828403121561193e5761193d610f5c565b5b600082015167ffffffffffffffff81111561195c5761195b610f61565b5b61196884828501611840565b91505092915050565b61197a81610ff7565b82525050565b60006020820190506119956000830184611971565b92915050565b6000602082840312156119b1576119b0610f5c565b5b60006119bf84828501611768565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000611a0282611322565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611a3557611a34611438565b5b600182019050919050565b6000602082019050611a556000830184611199565b92915050565b600067ffffffffffffffff821115611a7657611a75611276565b5b602082029050602081019050919050565b6000611a9a611a9584611a5b565b6112d6565b90508083825260208201905060208402830185811115611abd57611abc61131d565b5b835b81811015611ae65780611ad288826115fc565b845260208401935050602081019050611abf565b5050509392505050565b600082601f830112611b0557611b04611271565b5b8151611b15848260208601611a87565b91505092915050565b600080600060608486031215611b3757611b36610f5c565b5b600084015167ffffffffffffffff811115611b5557611b54610f61565b5b611b6186828701611af0565b935050602084015167ffffffffffffffff811115611b8257611b81610f61565b5b611b8e86828701611af0565b925050604084015167ffffffffffffffff811115611baf57611bae610f61565b5b611bbb86828701611af0565b9150509250925092565b611bce8161173f565b82525050565b6000606082019050611be96000830186611bc5565b611bf66020830185611bc5565b611c036040830184611971565b949350505050565b600081519050611c1a81610f72565b92915050565b600060208284031215611c3657611c35610f5c565b5b6000611c4484828501611c0b565b91505092915050565b600064ffffffffff82169050919050565b611c6781611c4d565b8114611c7257600080fd5b50565b600081519050611c8481611c5e565b92915050565b60006102408284031215611ca157611ca06115db565b5b611cac6102006112d6565b90506000611cbc84828501611768565b6000830152506020611cd084828501611640565b6020830152506040611ce484828501611768565b6040830152506060611cf8848285016115fc565b6060830152506080611d0c848285016115fc565b60808301525060a0611d20848285016115fc565b60a08301525060c0611d3484828501611768565b60c08301525060e0611d4884828501611c75565b60e083015250610100611d5d84828501611c75565b61010083015250610120611d7384828501611c0b565b61012083015250610140611d8984828501611c0b565b61014083015250610160611d9f84828501611768565b61016083015250610180611db584828501611714565b610180830152506101e0611dcb84828501611c75565b6101a083015250610200611de1848285016115fc565b6101c08301525061022082015167ffffffffffffffff811115611e0757611e066115e0565b5b611e1384828501611812565b6101e08301525092915050565b600060208284031215611e3657611e35610f5c565b5b600082015167ffffffffffffffff811115611e5457611e53610f61565b5b611e6084828501611c8a565b91505092915050565b6000611e7482611c4d565b9150611e7f83611c4d565b92508264ffffffffff03821115611e9957611e98611438565b5b82820190509291505056fea26469706673582212207523c5f7714c2fd46c4d296ea2bb78ae67a4736a967a5ad954be453a942bcb0b64736f6c63430008090033000000000000000000000000badb193b235781f3a02c72d322f3769217bf417300000000000000000000000086935f11c86623dec8a25696e1c19a8659cbf95d

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

000000000000000000000000badb193b235781f3a02c72d322f3769217bf417300000000000000000000000086935f11c86623dec8a25696e1c19a8659cbf95d

-----Decoded View---------------
Arg [0] : oriumAavegotchiLending (address): 0xbadb193b235781f3a02c72d322f3769217bf4173
Arg [1] : aavegotchiDiamond (address): 0x86935f11c86623dec8a25696e1c19a8659cbf95d

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000badb193b235781f3a02c72d322f3769217bf4173
Arg [1] : 00000000000000000000000086935f11c86623dec8a25696e1c19a8659cbf95d


Deployed ByteCode Sourcemap

9069:5477:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9237:74;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10744:1594;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;9174:56;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9318:64;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9389:43;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9830:606;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;9237:74;;;:::o;10744:1594::-;10804:24;10830:32;10864:26;10903:19;10933:27;10971:21;11003:25;11031:23;:38;;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11003:68;;11082:21;11115:4;11106:13;;:5;:13;;;:45;;11136:8;:15;11106:45;;;9166:1;11106:45;;;11082:69;;11162:33;11221:8;:15;11198:39;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;11162:75;;11253:9;11248:996;11268:8;:15;11264:1;:19;:90;;;;;11341:13;11324;11302:19;11288:11;:33;;;;:::i;:::-;:49;;;;:::i;:::-;11287:67;11264:90;11248:996;;;11399:16;11384:31;;:8;11393:1;11384:11;;;;;;;;:::i;:::-;;;;;;;;:31;;11376:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;11487:14;11511:8;11520:1;11511:11;;;;;;;;:::i;:::-;;;;;;;;11487:36;;11538:31;11572:23;:43;;;11616:7;11572:52;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11538:86;;11639:15;11657:23;:50;;;11708:7;11657:59;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11639:77;;11731:37;11771:42;11788:7;11797;:15;;;11771:16;:42::i;:::-;11731:82;;11841:55;;;;;;;;11858:7;:15;;;11841:55;;;;;;11875:13;:20;;;11841:55;;;;;;;;:::i;:::-;;;;;11828:7;11836:1;11828:10;;;;;;;;:::i;:::-;;;;;;;:68;;;;11939:18;11915:42;;;;;;;;:::i;:::-;;:13;:20;;;:42;;;;;;;;:::i;:::-;;;11911:322;;;11978:13;;;;;:::i;:::-;;;;11911:322;;;12041:28;12017:52;;;;;;;;:::i;:::-;;:13;:20;;;:52;;;;;;;;:::i;:::-;;;12013:220;;;12090:21;;;;;:::i;:::-;;;;12013:220;;;12161:20;12137:44;;;;;;;;:::i;:::-;;:13;:20;;;:44;;;;;;;;:::i;:::-;;;12133:100;;;12202:15;;;;;:::i;:::-;;;;12133:100;12013:220;11911:322;11361:883;;;;11356:3;;;;;:::i;:::-;;;;11248:996;;;;12261:69;12273:11;12286:19;12307:13;12322:7;12261:11;:69::i;:::-;12254:76;;;;;;;;;;;;10744:1594;;;;;:::o;9174:56::-;;;:::o;9318:64::-;;;:::o;9389:43::-;;;:::o;9830:606::-;9872:12;9886:24;9924;9950:32;9984:26;10014:4;:22;;;10037:4;10014:28;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9923:119;;;;;;10075:1;10057:8;:15;:19;:50;;;;10106:1;10080:16;:23;:27;10057:50;10053:376;;;10134:4;10124:14;;10208:47;;;10257:8;10267:16;10285:10;10167:143;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10153:157;;10053:376;;;10353:5;10343:15;;10387:30;;;;;;;;;;;;;;;;;10373:44;;10053:376;9912:524;;;9830:606;;:::o;12346:814::-;12425:23;;:::i;:::-;12565:5;12465:105;;:28;:46;;;12512:5;12527:23;12553:7;12465:96;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:105;;;12461:192;;;12594:47;;;;;;;;12611:7;12594:47;;;;;;12620:20;12594:47;;;;;;;;:::i;:::-;;;;;12587:54;;;;12461:192;12663:13;12679:28;:47;;;12727:7;12679:56;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12663:72;;12762:5;12750:17;;:8;:17;;;12746:338;;;12791:45;;;;;;;;12808:7;12791:45;;;;;;12817:18;12791:45;;;;;;;;:::i;:::-;;;;;12784:52;;;;;12746:338;12931:4;12873:62;;:28;:45;;;12919:7;12873:54;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:62;;;:101;;;;;12970:4;12939:35;;:27;12958:7;12939:18;:27::i;:::-;:35;;;12873:101;12869:204;;;13002:55;;;;;;;;13019:7;13002:55;;;;;;13028:28;13002:55;;;;;;;;:::i;:::-;;;;;12995:62;;;;;12869:204;13101:51;;;;;;;;13118:7;13101:51;;;;;;13127:24;13101:51;;;;;;;;:::i;:::-;;;;;13094:58;;;12346:814;;;;;:::o;13168:1107::-;13336:25;13363:33;13398:27;13469:8;13456:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13444:34;;13522:16;13509:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13489:50;;13577:10;13564:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13550:38;;13599:19;13629:27;13667:21;13704:9;13699:569;13719:7;:14;13715:1;:18;13699:569;;;13755:37;13795:7;13803:1;13795:10;;;;;;;;:::i;:::-;;;;;;;;13755:50;;13848:18;13824:42;;;;;;;;:::i;:::-;;:13;:20;;;:42;;;;;;;;:::i;:::-;;;13820:437;;;13914:13;:21;;;13887:9;13897:13;;;;;:::i;:::-;;;13887:24;;;;;;;;:::i;:::-;;;;;;;:48;;;;;;;;;;;13820:437;;;13985:28;13961:52;;;;;;;;:::i;:::-;;:13;:20;;;:52;;;;;;;;:::i;:::-;;;13957:300;;;14077:13;:21;;;14034:17;14052:21;;;;;:::i;:::-;;;14034:40;;;;;;;;:::i;:::-;;;;;;;:64;;;;;;;;;;;13957:300;;;14148:20;14124:44;;;;;;;;:::i;:::-;;:13;:20;;;:44;;;;;;;;:::i;:::-;;;14120:137;;;14220:13;:21;;;14189:11;14201:15;;;;;:::i;:::-;;;14189:28;;;;;;;;:::i;:::-;;;;;;;:52;;;;;;;;;;;14120:137;13957:300;13820:437;13740:528;13735:3;;;;;:::i;:::-;;;;13699:569;;;;13433:842;;;13168:1107;;;;;;;;:::o;14283:258::-;14349:4;14366:28;14397;:54;;;14452:7;14397:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14366:94;;14518:15;14500:7;:14;;;14479:35;;:7;:18;;;:35;;;;:::i;:::-;14478:55;;;14471:62;;;14283:258;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:60::-;167:3;188:5;181:12;;139:60;;;:::o;205:142::-;255:9;288:53;306:34;315:24;333:5;315:24;:::i;:::-;306:34;:::i;:::-;288:53;:::i;:::-;275:66;;205:142;;;:::o;353:126::-;403:9;436:37;467:5;436:37;:::i;:::-;423:50;;353:126;;;:::o;485:162::-;571:9;604:37;635:5;604:37;:::i;:::-;591:50;;485:162;;;:::o;653:203::-;776:73;843:5;776:73;:::i;:::-;771:3;764:86;653:203;;:::o;862:294::-;991:4;1029:2;1018:9;1014:18;1006:26;;1042:107;1146:1;1135:9;1131:17;1122:6;1042:107;:::i;:::-;862:294;;;;:::o;1162:75::-;1195:6;1228:2;1222:9;1212:19;;1162:75;:::o;1243:117::-;1352:1;1349;1342:12;1366:117;1475:1;1472;1465:12;1489:90;1523:7;1566:5;1559:13;1552:21;1541:32;;1489:90;;;:::o;1585:116::-;1655:21;1670:5;1655:21;:::i;:::-;1648:5;1645:32;1635:60;;1691:1;1688;1681:12;1635:60;1585:116;:::o;1707:133::-;1750:5;1788:6;1775:20;1766:29;;1804:30;1828:5;1804:30;:::i;:::-;1707:133;;;;:::o;1846:323::-;1902:6;1951:2;1939:9;1930:7;1926:23;1922:32;1919:119;;;1957:79;;:::i;:::-;1919:119;2077:1;2102:50;2144:7;2135:6;2124:9;2120:22;2102:50;:::i;:::-;2092:60;;2048:114;1846:323;;;;:::o;2175:113::-;2241:6;2275:5;2269:12;2259:22;;2175:113;;;:::o;2294:183::-;2392:11;2426:6;2421:3;2414:19;2466:4;2461:3;2457:14;2442:29;;2294:183;;;;:::o;2483:131::-;2549:4;2572:3;2564:11;;2602:4;2597:3;2593:14;2585:22;;2483:131;;;:::o;2620:93::-;2656:7;2696:10;2689:5;2685:22;2674:33;;2620:93;;;:::o;2719:105::-;2794:23;2811:5;2794:23;:::i;:::-;2789:3;2782:36;2719:105;;:::o;2830:175::-;2897:10;2918:44;2958:3;2950:6;2918:44;:::i;:::-;2994:4;2989:3;2985:14;2971:28;;2830:175;;;;:::o;3011:112::-;3080:4;3112;3107:3;3103:14;3095:22;;3011:112;;;:::o;3157:724::-;3274:3;3303:53;3350:5;3303:53;:::i;:::-;3372:85;3450:6;3445:3;3372:85;:::i;:::-;3365:92;;3481:55;3530:5;3481:55;:::i;:::-;3559:7;3590:1;3575:281;3600:6;3597:1;3594:13;3575:281;;;3676:6;3670:13;3703:61;3760:3;3745:13;3703:61;:::i;:::-;3696:68;;3787:59;3839:6;3787:59;:::i;:::-;3777:69;;3635:221;3622:1;3619;3615:9;3610:14;;3575:281;;;3579:14;3872:3;3865:10;;3279:602;;;3157:724;;;;:::o;3887:883::-;4180:4;4218:2;4207:9;4203:18;4195:26;;4267:9;4261:4;4257:20;4253:1;4242:9;4238:17;4231:47;4295:106;4396:4;4387:6;4295:106;:::i;:::-;4287:114;;4448:9;4442:4;4438:20;4433:2;4422:9;4418:18;4411:48;4476:106;4577:4;4568:6;4476:106;:::i;:::-;4468:114;;4629:9;4623:4;4619:20;4614:2;4603:9;4599:18;4592:48;4657:106;4758:4;4749:6;4657:106;:::i;:::-;4649:114;;3887:883;;;;;;:::o;4776:152::-;4852:9;4885:37;4916:5;4885:37;:::i;:::-;4872:50;;4776:152;;;:::o;4934:183::-;5047:63;5104:5;5047:63;:::i;:::-;5042:3;5035:76;4934:183;;:::o;5123:274::-;5242:4;5280:2;5269:9;5265:18;5257:26;;5293:97;5387:1;5376:9;5372:17;5363:6;5293:97;:::i;:::-;5123:274;;;;:::o;5403:157::-;5484:9;5517:37;5548:5;5517:37;:::i;:::-;5504:50;;5403:157;;;:::o;5566:193::-;5684:68;5746:5;5684:68;:::i;:::-;5679:3;5672:81;5566:193;;:::o;5765:284::-;5889:4;5927:2;5916:9;5912:18;5904:26;;5940:102;6039:1;6028:9;6024:17;6015:6;5940:102;:::i;:::-;5765:284;;;;:::o;6055:141::-;6120:9;6153:37;6184:5;6153:37;:::i;:::-;6140:50;;6055:141;;;:::o;6202:161::-;6304:52;6350:5;6304:52;:::i;:::-;6299:3;6292:65;6202:161;;:::o;6369:252::-;6477:4;6515:2;6504:9;6500:18;6492:26;;6528:86;6611:1;6600:9;6596:17;6587:6;6528:86;:::i;:::-;6369:252;;;;:::o;6627:109::-;6708:21;6723:5;6708:21;:::i;:::-;6703:3;6696:34;6627:109;;:::o;6742:98::-;6793:6;6827:5;6821:12;6811:22;;6742:98;;;:::o;6846:168::-;6929:11;6963:6;6958:3;6951:19;7003:4;6998:3;6994:14;6979:29;;6846:168;;;;:::o;7020:307::-;7088:1;7098:113;7112:6;7109:1;7106:13;7098:113;;;7197:1;7192:3;7188:11;7182:18;7178:1;7173:3;7169:11;7162:39;7134:2;7131:1;7127:10;7122:15;;7098:113;;;7229:6;7226:1;7223:13;7220:101;;;7309:1;7300:6;7295:3;7291:16;7284:27;7220:101;7069:258;7020:307;;;:::o;7333:102::-;7374:6;7425:2;7421:7;7416:2;7409:5;7405:14;7401:28;7391:38;;7333:102;;;:::o;7441:360::-;7527:3;7555:38;7587:5;7555:38;:::i;:::-;7609:70;7672:6;7667:3;7609:70;:::i;:::-;7602:77;;7688:52;7733:6;7728:3;7721:4;7714:5;7710:16;7688:52;:::i;:::-;7765:29;7787:6;7765:29;:::i;:::-;7760:3;7756:39;7749:46;;7531:270;7441:360;;;;:::o;7807:407::-;7940:4;7978:2;7967:9;7963:18;7955:26;;7991:65;8053:1;8042:9;8038:17;8029:6;7991:65;:::i;:::-;8103:9;8097:4;8093:20;8088:2;8077:9;8073:18;8066:48;8131:76;8202:4;8193:6;8131:76;:::i;:::-;8123:84;;7807:407;;;;;:::o;8220:117::-;8329:1;8326;8319:12;8343:180;8391:77;8388:1;8381:88;8488:4;8485:1;8478:15;8512:4;8509:1;8502:15;8529:281;8612:27;8634:4;8612:27;:::i;:::-;8604:6;8600:40;8742:6;8730:10;8727:22;8706:18;8694:10;8691:34;8688:62;8685:88;;;8753:18;;:::i;:::-;8685:88;8793:10;8789:2;8782:22;8572:238;8529:281;;:::o;8816:129::-;8850:6;8877:20;;:::i;:::-;8867:30;;8906:33;8934:4;8926:6;8906:33;:::i;:::-;8816:129;;;:::o;8951:311::-;9028:4;9118:18;9110:6;9107:30;9104:56;;;9140:18;;:::i;:::-;9104:56;9190:4;9182:6;9178:17;9170:25;;9250:4;9244;9240:15;9232:23;;8951:311;;;:::o;9268:117::-;9377:1;9374;9367:12;9391:77;9428:7;9457:5;9446:16;;9391:77;;;:::o;9474:122::-;9547:24;9565:5;9547:24;:::i;:::-;9540:5;9537:35;9527:63;;9586:1;9583;9576:12;9527:63;9474:122;:::o;9602:143::-;9659:5;9690:6;9684:13;9675:22;;9706:33;9733:5;9706:33;:::i;:::-;9602:143;;;;:::o;9768:732::-;9875:5;9900:81;9916:64;9973:6;9916:64;:::i;:::-;9900:81;:::i;:::-;9891:90;;10001:5;10030:6;10023:5;10016:21;10064:4;10057:5;10053:16;10046:23;;10117:4;10109:6;10105:17;10097:6;10093:30;10146:3;10138:6;10135:15;10132:122;;;10165:79;;:::i;:::-;10132:122;10280:6;10263:231;10297:6;10292:3;10289:15;10263:231;;;10372:3;10401:48;10445:3;10433:10;10401:48;:::i;:::-;10396:3;10389:61;10479:4;10474:3;10470:14;10463:21;;10339:155;10323:4;10318:3;10314:14;10307:21;;10263:231;;;10267:21;9881:619;;9768:732;;;;;:::o;10523:385::-;10605:5;10654:3;10647:4;10639:6;10635:17;10631:27;10621:122;;10662:79;;:::i;:::-;10621:122;10772:6;10766:13;10797:105;10898:3;10890:6;10883:4;10875:6;10871:17;10797:105;:::i;:::-;10788:114;;10611:297;10523:385;;;;:::o;10914:554::-;11009:6;11058:2;11046:9;11037:7;11033:23;11029:32;11026:119;;;11064:79;;:::i;:::-;11026:119;11205:1;11194:9;11190:17;11184:24;11235:18;11227:6;11224:30;11221:117;;;11257:79;;:::i;:::-;11221:117;11362:89;11443:7;11434:6;11423:9;11419:22;11362:89;:::i;:::-;11352:99;;11155:306;10914:554;;;;:::o;11474:180::-;11522:77;11519:1;11512:88;11619:4;11616:1;11609:15;11643:4;11640:1;11633:15;11660:305;11700:3;11719:20;11737:1;11719:20;:::i;:::-;11714:25;;11753:20;11771:1;11753:20;:::i;:::-;11748:25;;11907:1;11839:66;11835:74;11832:1;11829:81;11826:107;;;11913:18;;:::i;:::-;11826:107;11957:1;11954;11950:9;11943:16;;11660:305;;;;:::o;11971:180::-;12019:77;12016:1;12009:88;12116:4;12113:1;12106:15;12140:4;12137:1;12130:15;12157:169;12241:11;12275:6;12270:3;12263:19;12315:4;12310:3;12306:14;12291:29;;12157:169;;;;:::o;12332:239::-;12472:34;12468:1;12460:6;12456:14;12449:58;12541:22;12536:2;12528:6;12524:15;12517:47;12332:239;:::o;12577:366::-;12719:3;12740:67;12804:2;12799:3;12740:67;:::i;:::-;12733:74;;12816:93;12905:3;12816:93;:::i;:::-;12934:2;12929:3;12925:12;12918:19;;12577:366;;;:::o;12949:419::-;13115:4;13153:2;13142:9;13138:18;13130:26;;13202:9;13196:4;13192:20;13188:1;13177:9;13173:17;13166:47;13230:131;13356:4;13230:131;:::i;:::-;13222:139;;12949:419;;;:::o;13374:140::-;13423:9;13456:52;13474:33;13483:23;13500:5;13483:23;:::i;:::-;13474:33;:::i;:::-;13456:52;:::i;:::-;13443:65;;13374:140;;;:::o;13520:129::-;13606:36;13636:5;13606:36;:::i;:::-;13601:3;13594:49;13520:129;;:::o;13655:220::-;13747:4;13785:2;13774:9;13770:18;13762:26;;13798:70;13865:1;13854:9;13850:17;13841:6;13798:70;:::i;:::-;13655:220;;;;:::o;13881:117::-;13990:1;13987;13980:12;14004:117;14113:1;14110;14103:12;14127:120;14199:23;14216:5;14199:23;:::i;:::-;14192:5;14189:34;14179:62;;14237:1;14234;14227:12;14179:62;14127:120;:::o;14253:141::-;14309:5;14340:6;14334:13;14325:22;;14356:32;14382:5;14356:32;:::i;:::-;14253:141;;;;:::o;14400:109::-;14436:7;14476:26;14469:5;14465:38;14454:49;;14400:109;;;:::o;14515:120::-;14587:23;14604:5;14587:23;:::i;:::-;14580:5;14577:34;14567:62;;14625:1;14622;14615:12;14567:62;14515:120;:::o;14641:141::-;14697:5;14728:6;14722:13;14713:22;;14744:32;14770:5;14744:32;:::i;:::-;14641:141;;;;:::o;14788:247::-;14861:4;14951:18;14943:6;14940:30;14937:56;;;14973:18;;:::i;:::-;14937:56;15023:4;15015:6;15011:17;15003:25;;14788:247;;;:::o;15041:86::-;15076:7;15116:4;15109:5;15105:16;15094:27;;15041:86;;;:::o;15133:118::-;15204:22;15220:5;15204:22;:::i;:::-;15197:5;15194:33;15184:61;;15241:1;15238;15231:12;15184:61;15133:118;:::o;15257:139::-;15312:5;15343:6;15337:13;15328:22;;15359:31;15384:5;15359:31;:::i;:::-;15257:139;;;;:::o;15418:659::-;15521:5;15546:77;15562:60;15615:6;15562:60;:::i;:::-;15546:77;:::i;:::-;15537:86;;15643:5;15696:4;15688:6;15684:17;15676:6;15672:30;15725:3;15717:6;15714:15;15711:122;;;15744:79;;:::i;:::-;15711:122;15859:6;15842:229;15876:6;15871:3;15868:15;15842:229;;;15951:3;15980:46;16022:3;16010:10;15980:46;:::i;:::-;15975:3;15968:59;16056:4;16051:3;16047:14;16040:21;;15918:153;15902:4;15897:3;15893:14;15886:21;;15842:229;;;15846:21;15527:550;;15418:659;;;;;:::o;16099:357::-;16177:5;16226:3;16219:4;16211:6;16207:17;16203:27;16193:122;;16234:79;;:::i;:::-;16193:122;16338:4;16360:90;16446:3;16438:6;16430;16360:90;:::i;:::-;16351:99;;16183:273;16099:357;;;;:::o;16462:96::-;16499:7;16528:24;16546:5;16528:24;:::i;:::-;16517:35;;16462:96;;;:::o;16564:122::-;16637:24;16655:5;16637:24;:::i;:::-;16630:5;16627:35;16617:63;;16676:1;16673;16666:12;16617:63;16564:122;:::o;16692:143::-;16749:5;16780:6;16774:13;16765:22;;16796:33;16823:5;16796:33;:::i;:::-;16692:143;;;;:::o;16841:311::-;16918:4;17008:18;17000:6;16997:30;16994:56;;;17030:18;;:::i;:::-;16994:56;17080:4;17072:6;17068:17;17060:25;;17140:4;17134;17130:15;17122:23;;16841:311;;;:::o;17175:732::-;17282:5;17307:81;17323:64;17380:6;17323:64;:::i;:::-;17307:81;:::i;:::-;17298:90;;17408:5;17437:6;17430:5;17423:21;17471:4;17464:5;17460:16;17453:23;;17524:4;17516:6;17512:17;17504:6;17500:30;17553:3;17545:6;17542:15;17539:122;;;17572:79;;:::i;:::-;17539:122;17687:6;17670:231;17704:6;17699:3;17696:15;17670:231;;;17779:3;17808:48;17852:3;17840:10;17808:48;:::i;:::-;17803:3;17796:61;17886:4;17881:3;17877:14;17870:21;;17746:155;17730:4;17725:3;17721:14;17714:21;;17670:231;;;17674:21;17288:619;;17175:732;;;;;:::o;17930:385::-;18012:5;18061:3;18054:4;18046:6;18042:17;18038:27;18028:122;;18069:79;;:::i;:::-;18028:122;18179:6;18173:13;18204:105;18305:3;18297:6;18290:4;18282:6;18278:17;18204:105;:::i;:::-;18195:114;;18018:297;17930:385;;;;:::o;18352:1900::-;18444:5;18488:6;18476:9;18471:3;18467:19;18463:32;18460:119;;;18498:79;;:::i;:::-;18460:119;18597:23;18613:6;18597:23;:::i;:::-;18588:32;;18682:1;18722:59;18777:3;18768:6;18757:9;18753:22;18722:59;:::i;:::-;18715:4;18708:5;18704:16;18697:85;18630:163;18859:2;18900:59;18955:3;18946:6;18935:9;18931:22;18900:59;:::i;:::-;18893:4;18886:5;18882:16;18875:85;18803:168;19032:2;19073:59;19128:3;19119:6;19108:9;19104:22;19073:59;:::i;:::-;19066:4;19059:5;19055:16;19048:85;18981:163;19211:2;19252:81;19329:3;19320:6;19309:9;19305:22;19252:81;:::i;:::-;19245:4;19238:5;19234:16;19227:107;19154:191;19413:3;19455:60;19511:3;19502:6;19491:9;19487:22;19455:60;:::i;:::-;19448:4;19441:5;19437:16;19430:86;19355:172;19592:3;19634:60;19690:3;19681:6;19670:9;19666:22;19634:60;:::i;:::-;19627:4;19620:5;19616:16;19609:86;19537:169;19772:3;19814:59;19869:3;19860:6;19849:9;19845:22;19814:59;:::i;:::-;19807:4;19800:5;19796:16;19789:85;19716:169;19974:3;19963:9;19959:19;19953:26;20006:18;19998:6;19995:30;19992:117;;;20028:79;;:::i;:::-;19992:117;20148:85;20229:3;20220:6;20209:9;20205:22;20148:85;:::i;:::-;20141:4;20134:5;20130:16;20123:111;19895:350;18352:1900;;;;:::o;20258:568::-;20360:6;20409:2;20397:9;20388:7;20384:23;20380:32;20377:119;;;20415:79;;:::i;:::-;20377:119;20556:1;20545:9;20541:17;20535:24;20586:18;20578:6;20575:30;20572:117;;;20608:79;;:::i;:::-;20572:117;20713:96;20801:7;20792:6;20781:9;20777:22;20713:96;:::i;:::-;20703:106;;20506:313;20258:568;;;;:::o;20832:115::-;20917:23;20934:5;20917:23;:::i;:::-;20912:3;20905:36;20832:115;;:::o;20953:218::-;21044:4;21082:2;21071:9;21067:18;21059:26;;21095:69;21161:1;21150:9;21146:17;21137:6;21095:69;:::i;:::-;20953:218;;;;:::o;21177:351::-;21247:6;21296:2;21284:9;21275:7;21271:23;21267:32;21264:119;;;21302:79;;:::i;:::-;21264:119;21422:1;21447:64;21503:7;21494:6;21483:9;21479:22;21447:64;:::i;:::-;21437:74;;21393:128;21177:351;;;;:::o;21534:180::-;21582:77;21579:1;21572:88;21679:4;21676:1;21669:15;21703:4;21700:1;21693:15;21720:233;21759:3;21782:24;21800:5;21782:24;:::i;:::-;21773:33;;21828:66;21821:5;21818:77;21815:103;;;21898:18;;:::i;:::-;21815:103;21945:1;21938:5;21934:13;21927:20;;21720:233;;;:::o;21959:210::-;22046:4;22084:2;22073:9;22069:18;22061:26;;22097:65;22159:1;22148:9;22144:17;22135:6;22097:65;:::i;:::-;21959:210;;;;:::o;22175:310::-;22251:4;22341:18;22333:6;22330:30;22327:56;;;22363:18;;:::i;:::-;22327:56;22413:4;22405:6;22401:17;22393:25;;22473:4;22467;22463:15;22455:23;;22175:310;;;:::o;22507:729::-;22613:5;22638:80;22654:63;22710:6;22654:63;:::i;:::-;22638:80;:::i;:::-;22629:89;;22738:5;22767:6;22760:5;22753:21;22801:4;22794:5;22790:16;22783:23;;22854:4;22846:6;22842:17;22834:6;22830:30;22883:3;22875:6;22872:15;22869:122;;;22902:79;;:::i;:::-;22869:122;23017:6;23000:230;23034:6;23029:3;23026:15;23000:230;;;23109:3;23138:47;23181:3;23169:10;23138:47;:::i;:::-;23133:3;23126:60;23215:4;23210:3;23206:14;23199:21;;23076:154;23060:4;23055:3;23051:14;23044:21;;23000:230;;;23004:21;22619:617;;22507:729;;;;;:::o;23258:383::-;23339:5;23388:3;23381:4;23373:6;23369:17;23365:27;23355:122;;23396:79;;:::i;:::-;23355:122;23506:6;23500:13;23531:104;23631:3;23623:6;23616:4;23608:6;23604:17;23531:104;:::i;:::-;23522:113;;23345:296;23258:383;;;;:::o;23647:1266::-;23807:6;23815;23823;23872:2;23860:9;23851:7;23847:23;23843:32;23840:119;;;23878:79;;:::i;:::-;23840:119;24019:1;24008:9;24004:17;23998:24;24049:18;24041:6;24038:30;24035:117;;;24071:79;;:::i;:::-;24035:117;24176:88;24256:7;24247:6;24236:9;24232:22;24176:88;:::i;:::-;24166:98;;23969:305;24334:2;24323:9;24319:18;24313:25;24365:18;24357:6;24354:30;24351:117;;;24387:79;;:::i;:::-;24351:117;24492:88;24572:7;24563:6;24552:9;24548:22;24492:88;:::i;:::-;24482:98;;24284:306;24650:2;24639:9;24635:18;24629:25;24681:18;24673:6;24670:30;24667:117;;;24703:79;;:::i;:::-;24667:117;24808:88;24888:7;24879:6;24868:9;24864:22;24808:88;:::i;:::-;24798:98;;24600:306;23647:1266;;;;;:::o;24919:118::-;25006:24;25024:5;25006:24;:::i;:::-;25001:3;24994:37;24919:118;;:::o;25043:438::-;25190:4;25228:2;25217:9;25213:18;25205:26;;25241:71;25309:1;25298:9;25294:17;25285:6;25241:71;:::i;:::-;25322:72;25390:2;25379:9;25375:18;25366:6;25322:72;:::i;:::-;25404:70;25470:2;25459:9;25455:18;25446:6;25404:70;:::i;:::-;25043:438;;;;;;:::o;25487:137::-;25541:5;25572:6;25566:13;25557:22;;25588:30;25612:5;25588:30;:::i;:::-;25487:137;;;;:::o;25630:345::-;25697:6;25746:2;25734:9;25725:7;25721:23;25717:32;25714:119;;;25752:79;;:::i;:::-;25714:119;25872:1;25897:61;25950:7;25941:6;25930:9;25926:22;25897:61;:::i;:::-;25887:71;;25843:125;25630:345;;;;:::o;25981:95::-;26017:7;26057:12;26050:5;26046:24;26035:35;;25981:95;;;:::o;26082:120::-;26154:23;26171:5;26154:23;:::i;:::-;26147:5;26144:34;26134:62;;26192:1;26189;26182:12;26134:62;26082:120;:::o;26208:141::-;26264:5;26295:6;26289:13;26280:22;;26311:32;26337:5;26311:32;:::i;:::-;26208:141;;;;:::o;26383:3334::-;26473:5;26517:6;26505:9;26500:3;26496:19;26492:32;26489:119;;;26527:79;;:::i;:::-;26489:119;26626:23;26642:6;26626:23;:::i;:::-;26617:32;;26710:1;26750:60;26806:3;26797:6;26786:9;26782:22;26750:60;:::i;:::-;26743:4;26736:5;26732:16;26725:86;26659:163;26888:2;26929:59;26984:3;26975:6;26964:9;26960:22;26929:59;:::i;:::-;26922:4;26915:5;26911:16;26904:85;26832:168;27063:2;27104:60;27160:3;27151:6;27140:9;27136:22;27104:60;:::i;:::-;27097:4;27090:5;27086:16;27079:86;27010:166;27240:2;27281:59;27336:3;27327:6;27316:9;27312:22;27281:59;:::i;:::-;27274:4;27267:5;27263:16;27256:85;27186:166;27420:3;27462:59;27517:3;27508:6;27497:9;27493:22;27462:59;:::i;:::-;27455:4;27448:5;27444:16;27437:85;27362:171;27599:3;27641:59;27696:3;27687:6;27676:9;27672:22;27641:59;:::i;:::-;27634:4;27627:5;27623:16;27616:85;27543:169;27780:3;27822:60;27878:3;27869:6;27858:9;27854:22;27822:60;:::i;:::-;27815:4;27808:5;27804:16;27797:86;27722:172;27960:3;28002:59;28057:3;28048:6;28037:9;28033:22;28002:59;:::i;:::-;27995:4;27988:5;27984:16;27977:85;27904:169;28138:3;28182:59;28237:3;28228:6;28217:9;28213:22;28182:59;:::i;:::-;28173:6;28166:5;28162:18;28155:87;28083:170;28316:3;28360:57;28413:3;28404:6;28393:9;28389:22;28360:57;:::i;:::-;28351:6;28344:5;28340:18;28333:85;28263:166;28493:3;28537:57;28590:3;28581:6;28570:9;28566:22;28537:57;:::i;:::-;28528:6;28521:5;28517:18;28510:85;28439:167;28671:3;28715:60;28771:3;28762:6;28751:9;28747:22;28715:60;:::i;:::-;28706:6;28699:5;28695:18;28688:88;28616:171;28854:3;28898:81;28975:3;28966:6;28955:9;28951:22;28898:81;:::i;:::-;28889:6;28882:5;28878:18;28871:109;28797:194;29057:3;29101:59;29156:3;29147:6;29136:9;29132:22;29101:59;:::i;:::-;29092:6;29085:5;29081:18;29074:87;29001:171;29233:3;29277:59;29332:3;29323:6;29312:9;29308:22;29277:59;:::i;:::-;29268:6;29261:5;29257:18;29250:87;29182:166;29437:3;29426:9;29422:19;29416:26;29469:18;29461:6;29458:30;29455:117;;;29491:79;;:::i;:::-;29455:117;29613:85;29694:3;29685:6;29674:9;29670:22;29613:85;:::i;:::-;29604:6;29597:5;29593:18;29586:113;29358:352;26383:3334;;;;:::o;29723:564::-;29823:6;29872:2;29860:9;29851:7;29847:23;29843:32;29840:119;;;29878:79;;:::i;:::-;29840:119;30019:1;30008:9;30004:17;29998:24;30049:18;30041:6;30038:30;30035:117;;;30071:79;;:::i;:::-;30035:117;30176:94;30262:7;30253:6;30242:9;30238:22;30176:94;:::i;:::-;30166:104;;29969:311;29723:564;;;;:::o;30293:248::-;30332:3;30351:19;30368:1;30351:19;:::i;:::-;30346:24;;30384:19;30401:1;30384:19;:::i;:::-;30379:24;;30483:1;30469:12;30465:20;30462:1;30459:27;30456:53;;;30489:18;;:::i;:::-;30456:53;30533:1;30530;30526:9;30519:16;;30293:248;;;;:::o

Swarm Source

ipfs://7523c5f7714c2fd46c4d296ea2bb78ae67a4736a967a5ad954be453a942bcb0b
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.