More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 902 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Unstake Multiple | 20440267 | 24 days ago | IN | 0 ETH | 0.00026816 | ||||
Unstake Multiple | 19905210 | 99 days ago | IN | 0 ETH | 0.00036572 | ||||
Unstake Multiple | 19804022 | 113 days ago | IN | 0 ETH | 0.00104553 | ||||
Unstake Multiple | 19693571 | 129 days ago | IN | 0 ETH | 0.00295959 | ||||
Unstake Multiple | 19476318 | 159 days ago | IN | 0 ETH | 0.00532821 | ||||
Unstake Multiple | 19350453 | 177 days ago | IN | 0 ETH | 0.00430206 | ||||
Unstake Multiple | 18944465 | 234 days ago | IN | 0 ETH | 0.00918174 | ||||
Unstake Multiple | 18689785 | 269 days ago | IN | 0 ETH | 0.00332194 | ||||
Unstake | 18591921 | 283 days ago | IN | 0 ETH | 0.00154489 | ||||
Unstake Multiple | 18548020 | 289 days ago | IN | 0 ETH | 0.00313314 | ||||
Stake Multiple | 18484455 | 298 days ago | IN | 0 ETH | 0.00773176 | ||||
Stake Multiple | 18475982 | 299 days ago | IN | 0 ETH | 0.00940762 | ||||
Unstake | 18391631 | 311 days ago | IN | 0 ETH | 0.00102534 | ||||
Unstake Multiple | 18368781 | 314 days ago | IN | 0 ETH | 0.00078507 | ||||
Stake Multiple | 18303407 | 323 days ago | IN | 0 ETH | 0.00063815 | ||||
Stake | 18231387 | 333 days ago | IN | 0 ETH | 0.00067796 | ||||
Stake | 18231385 | 334 days ago | IN | 0 ETH | 0.00073453 | ||||
Stake | 18231382 | 334 days ago | IN | 0 ETH | 0.0009301 | ||||
Unstake Multiple | 18086116 | 354 days ago | IN | 0 ETH | 0.01811454 | ||||
Unstake Multiple | 18066468 | 357 days ago | IN | 0 ETH | 0.00092108 | ||||
Stake | 17974608 | 369 days ago | IN | 0 ETH | 0.00182348 | ||||
Stake | 17974606 | 369 days ago | IN | 0 ETH | 0.00210229 | ||||
Stake | 17974603 | 369 days ago | IN | 0 ETH | 0.00210334 | ||||
Unstake Multiple | 17707795 | 407 days ago | IN | 0 ETH | 0.00301202 | ||||
Unstake | 17526009 | 432 days ago | IN | 0 ETH | 0.0009978 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
NudieStaker
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-07-01 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.11; library Strings { bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef"; /** * @dev Converts a `uint256` to its ASCII `string` decimal representation. */ function toString(uint256 value) internal pure returns (string memory) { // Inspired by OraclizeAPI's implementation - MIT licence // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation. */ function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0x00"; } uint256 temp = value; uint256 length = 0; while (temp != 0) { length++; temp >>= 8; } return toHexString(value, length); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length. */ function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = "0"; buffer[1] = "x"; for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = _HEX_SYMBOLS[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { require(!paused(), "Pausable: paused"); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { require(paused(), "Pausable: not paused"); _; } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } } interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); } interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer( address indexed from, address indexed to, uint256 indexed tokenId ); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval( address indexed owner, address indexed approved, uint256 indexed tokenId ); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll( address indexed owner, address indexed operator, bool approved ); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @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; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; } interface IERC721Receiver { /** * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} * by `operator` from `from`, this function is called. * * It must return its Solidity selector to confirm the token transfer. * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. * * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`. */ function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); } library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); (bool success, ) = recipient.call{value: amount}(""); require( success, "Address: unable to send value, recipient may have reverted" ); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue( target, data, value, "Address: low-level call with value failed" ); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require( address(this).balance >= value, "Address: insufficient balance for call" ); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}( data ); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall( target, data, "Address: low-level static call failed" ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall( target, data, "Address: low-level delegate call failed" ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason using the provided one. * * _Available since v4.3._ */ function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract NudieStaker is Ownable, IERC721Receiver{ IERC721 public NudieNFT; struct StakeInfo { uint256 since; } mapping(address => mapping(uint256 => StakeInfo)) public userTokenStakeInfo; // tokenStakeInfo[userAddress][tokenId] = StakeInfo mapping(address => uint256[]) private userTokenOwnershipList; // used to iterate over `userTokenStakeInfo` uint128 private smallRewardTime = 604800; uint128 private midRewardTime = 1296000; uint128 private largeRewardTime = 2592000; uint128 private intervalRewardTime = 604800; uint128 private smallReward = 350; uint128 private midReward = 1000; uint128 private largeReward = 3000; uint128 private intervalReward = 700; address private NudieTokenAddress; constructor(address NudieAddress){ NudieNFT = IERC721(NudieAddress); } function stakeMultiple(uint256[] calldata tokenIds_) external{ for (uint256 i = 0; i < tokenIds_.length; i++) { require(NudieNFT.ownerOf(tokenIds_[i]) == msg.sender, "Not Your Nudie To Stake"); storeNudie(msg.sender, tokenIds_[i]); NudieNFT.safeTransferFrom( msg.sender, address(this), tokenIds_[i] ); } } function unstakeMultiple(uint256[] calldata tokenIds_) external { for (uint256 i = 0; i < tokenIds_.length; i++) { require(removeNudie(msg.sender, tokenIds_[i]) == true, "Not your Nudie Token"); NudieNFT.isApprovedForAll(address(this), msg.sender); NudieNFT.safeTransferFrom( address(this), msg.sender, tokenIds_[i] ); } } function stake(uint256 tokenIds_) external{ require(NudieNFT.ownerOf(tokenIds_) == msg.sender, "Not Your Nudie To Stake"); storeNudie(msg.sender, tokenIds_); NudieNFT.safeTransferFrom( msg.sender, address(this), tokenIds_ ); } function unstake(uint256 tokenIds_) external { require(removeNudie(msg.sender, tokenIds_) == true, "Not your Nudie Token"); NudieNFT.isApprovedForAll(address(this), msg.sender); NudieNFT.safeTransferFrom( address(this), msg.sender, tokenIds_ ); } function storeNudie(address _owner, uint256 tokenId_) internal { userTokenStakeInfo[_owner][tokenId_] = StakeInfo({ since: block.timestamp }); userTokenOwnershipList[_owner].push(tokenId_); } function removeNudie(address _owner, uint256 tokenId_) internal returns(bool) { delete userTokenStakeInfo[_owner][tokenId_]; uint256 tokensOwnedCount = userTokenOwnershipList[_owner].length; for (uint256 i = 0; i < tokensOwnedCount; i++) { if (userTokenOwnershipList[_owner][i] == tokenId_) { uint256 length = userTokenOwnershipList[_owner].length; userTokenOwnershipList[_owner][i] = userTokenOwnershipList[ _owner ][length - 1]; userTokenOwnershipList[_owner].pop(); return true; } } return false; } function returnStakedNudies() external view returns(uint256 [] memory){ uint256 tokensOwnedCount = userTokenOwnershipList[msg.sender].length; uint256[] memory stakedList = new uint256[](tokensOwnedCount); for (uint256 i = 0; i < tokensOwnedCount; i++) { stakedList[i] = userTokenOwnershipList[msg.sender][i]; } return stakedList; } function claimStakedRewards(address owner) external returns(uint256){ require(msg.sender == NudieTokenAddress, "Function can only be called via token contract"); uint256 claimableReward = calculateRewards(owner); uint256 tokensOwnedCount = userTokenOwnershipList[owner].length; for (uint256 i = 0; i < tokensOwnedCount; i++) { uint256 tokenId = userTokenOwnershipList[owner][i]; userTokenStakeInfo[owner][tokenId].since = block.timestamp; } return claimableReward; } function calculateRewards(address _owner) public view returns (uint256) { uint256 tokensOwnedCount = userTokenOwnershipList[_owner].length; uint256 reward = 0; for (uint256 i = 0; i < tokensOwnedCount; i++) { uint256 tokenId = userTokenOwnershipList[_owner][i]; uint256 stakedSince = userTokenStakeInfo[_owner][tokenId].since; if((block.timestamp - stakedSince) >= smallRewardTime && (block.timestamp - stakedSince) < midRewardTime){ reward = reward + smallReward; } if((block.timestamp - stakedSince) >= midRewardTime && (block.timestamp - stakedSince) < largeRewardTime){ reward = reward + midReward; } if((block.timestamp - stakedSince) >= largeRewardTime){ reward = reward + largeReward; uint256 additionalStakeTime = (block.timestamp - stakedSince) - largeRewardTime; while(additionalStakeTime >= intervalRewardTime){ reward = reward + intervalReward; additionalStakeTime = additionalStakeTime - intervalRewardTime; } } } return reward; } function setNudieToken(address NudieTokenAddress_) external onlyOwner { NudieTokenAddress = NudieTokenAddress_; } function setRewards(uint128 _smallReward, uint128 _midReward, uint128 _largeReward, uint128 _intervalReward) external onlyOwner { smallReward = _smallReward; midReward = _midReward; largeReward = _largeReward; intervalReward = _intervalReward; } function setRewardTimes(uint128 _smallRewardTime, uint128 _midRewardTime, uint128 _largeRewardTime, uint128 _intervalRewardTime) external onlyOwner { smallRewardTime = _smallRewardTime; midRewardTime = _midRewardTime; largeRewardTime = _largeRewardTime; intervalRewardTime = _intervalRewardTime; } function onERC721Received( address, address, uint256, bytes calldata ) public pure override returns (bytes4) { return this.onERC721Received.selector; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"NudieAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"NudieNFT","outputs":[{"internalType":"contract IERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"calculateRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"claimStakedRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"returnStakedNudies","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"NudieTokenAddress_","type":"address"}],"name":"setNudieToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"_smallRewardTime","type":"uint128"},{"internalType":"uint128","name":"_midRewardTime","type":"uint128"},{"internalType":"uint128","name":"_largeRewardTime","type":"uint128"},{"internalType":"uint128","name":"_intervalRewardTime","type":"uint128"}],"name":"setRewardTimes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"_smallReward","type":"uint128"},{"internalType":"uint128","name":"_midReward","type":"uint128"},{"internalType":"uint128","name":"_largeReward","type":"uint128"},{"internalType":"uint128","name":"_intervalReward","type":"uint128"}],"name":"setRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenIds_","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds_","type":"uint256[]"}],"name":"stakeMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenIds_","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds_","type":"uint256[]"}],"name":"unstakeMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"userTokenStakeInfo","outputs":[{"internalType":"uint256","name":"since","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405262093a80600460006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506213c680600460106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555062278d00600560006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555062093a80600560106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555061015e600660006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506103e8600660106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550610bb8600760006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506102bc600760106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550348015620001ed57600080fd5b5060405162002a0238038062002a028339818101604052810190620002139190620003b1565b62000233620002276200027b60201b60201c565b6200028360201b60201c565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620003e3565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000379826200034c565b9050919050565b6200038b816200036c565b81146200039757600080fd5b50565b600081519050620003ab8162000380565b92915050565b600060208284031215620003ca57620003c962000347565b5b6000620003da848285016200039a565b91505092915050565b61260f80620003f36000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063715018a611610097578063a9c6955311610066578063a9c6955314610297578063e42e45b9146102b3578063f2fde38b146102d1578063f933ceca146102ed57610100565b8063715018a61461023757806387bd0a2d146102415780638da5cb5b1461025d578063a694fc3a1461027b57610100565b80635ac31717116100d35780635ac317171461019f57806364ab8675146101bb57806364ef26bf146101eb5780636b8354421461020757610100565b8063150b7a021461010557806317fd3bdc146101355780632e17de78146101535780633e9e16021461016f575b600080fd5b61011f600480360381019061011a9190611c53565b610309565b60405161012c9190611d16565b60405180910390f35b61013d61031e565b60405161014a9190611def565b60405180910390f35b61016d60048036038101906101689190611e11565b610456565b005b61018960048036038101906101849190611e3e565b6105d9565b6040516101969190611e7a565b60405180910390f35b6101b960048036038101906101b49190611eeb565b6107a1565b005b6101d560048036038101906101d09190611e3e565b610979565b6040516101e29190611e7a565b60405180910390f35b61020560048036038101906102009190611f80565b610dbd565b005b610221600480360381019061021c9190611fe7565b610f23565b60405161022e9190611e7a565b60405180910390f35b61023f610f4e565b005b61025b60048036038101906102569190611f80565b610fd6565b005b61026561113c565b6040516102729190612036565b60405180910390f35b61029560048036038101906102909190611e11565b611165565b005b6102b160048036038101906102ac9190611eeb565b61130c565b005b6102bb611521565b6040516102c891906120b0565b60405180910390f35b6102eb60048036038101906102e69190611e3e565b611547565b005b61030760048036038101906103029190611e3e565b61163e565b005b600063150b7a0260e01b905095945050505050565b60606000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050905060008167ffffffffffffffff811115610383576103826120cb565b5b6040519080825280602002602001820160405280156103b15781602001602082028036833780820191505090505b50905060005b8281101561044d57600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081815481106104105761040f6120fa565b5b906000526020600020015482828151811061042e5761042d6120fa565b5b602002602001018181525050808061044590612158565b9150506103b7565b50809250505090565b6001151561046433836116fe565b1515146104a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049d906121fd565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e985e9c530336040518363ffffffff1660e01b815260040161050392919061221d565b602060405180830381865afa158015610520573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610544919061227e565b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e3033846040518463ffffffff1660e01b81526004016105a4939291906122ab565b600060405180830381600087803b1580156105be57600080fd5b505af11580156105d2573d6000803e3d6000fd5b5050505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461066b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066290612354565b60405180910390fd5b600061067683610979565b90506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050905060005b81811015610796576000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061071d5761071c6120fa565b5b9060005260206000200154905042600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000018190555050808061078e90612158565b9150506106c2565b508192505050919050565b60005b8282905081101561097457600115156107d6338585858181106107ca576107c96120fa565b5b905060200201356116fe565b151514610818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080f906121fd565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e985e9c530336040518363ffffffff1660e01b815260040161087592919061221d565b602060405180830381865afa158015610892573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b6919061227e565b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e303386868681811061090a576109096120fa565b5b905060200201356040518463ffffffff1660e01b815260040161092f939291906122ab565b600060405180830381600087803b15801561094957600080fd5b505af115801561095d573d6000803e3d6000fd5b50505050808061096c90612158565b9150506107a4565b505050565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090506000805b82811015610db2576000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610a2057610a1f6120fa565b5b906000526020600020015490506000600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020600001549050600460009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168142610ac29190612374565b10158015610b0a5750600460109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168142610b089190612374565b105b15610b4e57600660009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1684610b4b91906123a8565b93505b600460109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168142610b8b9190612374565b10158015610bd35750600560009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168142610bd19190612374565b105b15610c1757600660109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1684610c1491906123a8565b93505b600560009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168142610c549190612374565b10610d9d57600760009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1684610c9591906123a8565b93506000600560009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168242610cd69190612374565b610ce09190612374565b90505b600560109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168110610d9b57600760109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1685610d5691906123a8565b9450600560109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681610d949190612374565b9050610ce3565b505b50508080610daa90612158565b9150506109c5565b508092505050919050565b610dc56119ae565b73ffffffffffffffffffffffffffffffffffffffff16610de361113c565b73ffffffffffffffffffffffffffffffffffffffff1614610e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e309061244a565b60405180910390fd5b83600660006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555082600660106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555081600760006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555080600760106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505050565b6002602052816000526040600020602052806000526040600020600091509150508060000154905081565b610f566119ae565b73ffffffffffffffffffffffffffffffffffffffff16610f7461113c565b73ffffffffffffffffffffffffffffffffffffffff1614610fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc19061244a565b60405180910390fd5b610fd460006119b6565b565b610fde6119ae565b73ffffffffffffffffffffffffffffffffffffffff16610ffc61113c565b73ffffffffffffffffffffffffffffffffffffffff1614611052576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110499061244a565b60405180910390fd5b83600460006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555082600460106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555081600560006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555080600560106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004016111d79190611e7a565b602060405180830381865afa1580156111f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611218919061247f565b73ffffffffffffffffffffffffffffffffffffffff161461126e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611265906124f8565b60405180910390fd5b6112783382611a7a565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e3330846040518463ffffffff1660e01b81526004016112d7939291906122ab565b600060405180830381600087803b1580156112f157600080fd5b505af1158015611305573d6000803e3d6000fd5b5050505050565b60005b8282905081101561151c573373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e858585818110611382576113816120fa565b5b905060200201356040518263ffffffff1660e01b81526004016113a59190611e7a565b602060405180830381865afa1580156113c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e6919061247f565b73ffffffffffffffffffffffffffffffffffffffff161461143c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611433906124f8565b60405180910390fd5b61145f33848484818110611453576114526120fa565b5b90506020020135611a7a565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e33308686868181106114b2576114b16120fa565b5b905060200201356040518463ffffffff1660e01b81526004016114d7939291906122ab565b600060405180830381600087803b1580156114f157600080fd5b505af1158015611505573d6000803e3d6000fd5b50505050808061151490612158565b91505061130f565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61154f6119ae565b73ffffffffffffffffffffffffffffffffffffffff1661156d61113c565b73ffffffffffffffffffffffffffffffffffffffff16146115c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ba9061244a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611632576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116299061258a565b60405180910390fd5b61163b816119b6565b50565b6116466119ae565b73ffffffffffffffffffffffffffffffffffffffff1661166461113c565b73ffffffffffffffffffffffffffffffffffffffff16146116ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b19061244a565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060008082016000905550506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050905060005b818110156119a15783600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106117ff576117fe6120fa565b5b90600052602060002001540361198e576000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001826118a29190612374565b815481106118b3576118b26120fa565b5b9060005260206000200154600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811061190f5761190e6120fa565b5b9060005260206000200181905550600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548061196c5761196b6125aa565b5b60019003818190600052602060002001600090559055600193505050506119a8565b808061199990612158565b9150506117a5565b5060009150505b92915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b604051806020016040528042815250600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060008201518160000155905050600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150506001900390600052602060002001600090919091909150555050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611b8582611b5a565b9050919050565b611b9581611b7a565b8114611ba057600080fd5b50565b600081359050611bb281611b8c565b92915050565b6000819050919050565b611bcb81611bb8565b8114611bd657600080fd5b50565b600081359050611be881611bc2565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611c1357611c12611bee565b5b8235905067ffffffffffffffff811115611c3057611c2f611bf3565b5b602083019150836001820283011115611c4c57611c4b611bf8565b5b9250929050565b600080600080600060808688031215611c6f57611c6e611b50565b5b6000611c7d88828901611ba3565b9550506020611c8e88828901611ba3565b9450506040611c9f88828901611bd9565b935050606086013567ffffffffffffffff811115611cc057611cbf611b55565b5b611ccc88828901611bfd565b92509250509295509295909350565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611d1081611cdb565b82525050565b6000602082019050611d2b6000830184611d07565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611d6681611bb8565b82525050565b6000611d788383611d5d565b60208301905092915050565b6000602082019050919050565b6000611d9c82611d31565b611da68185611d3c565b9350611db183611d4d565b8060005b83811015611de2578151611dc98882611d6c565b9750611dd483611d84565b925050600181019050611db5565b5085935050505092915050565b60006020820190508181036000830152611e098184611d91565b905092915050565b600060208284031215611e2757611e26611b50565b5b6000611e3584828501611bd9565b91505092915050565b600060208284031215611e5457611e53611b50565b5b6000611e6284828501611ba3565b91505092915050565b611e7481611bb8565b82525050565b6000602082019050611e8f6000830184611e6b565b92915050565b60008083601f840112611eab57611eaa611bee565b5b8235905067ffffffffffffffff811115611ec857611ec7611bf3565b5b602083019150836020820283011115611ee457611ee3611bf8565b5b9250929050565b60008060208385031215611f0257611f01611b50565b5b600083013567ffffffffffffffff811115611f2057611f1f611b55565b5b611f2c85828601611e95565b92509250509250929050565b60006fffffffffffffffffffffffffffffffff82169050919050565b611f5d81611f38565b8114611f6857600080fd5b50565b600081359050611f7a81611f54565b92915050565b60008060008060808587031215611f9a57611f99611b50565b5b6000611fa887828801611f6b565b9450506020611fb987828801611f6b565b9350506040611fca87828801611f6b565b9250506060611fdb87828801611f6b565b91505092959194509250565b60008060408385031215611ffe57611ffd611b50565b5b600061200c85828601611ba3565b925050602061201d85828601611bd9565b9150509250929050565b61203081611b7a565b82525050565b600060208201905061204b6000830184612027565b92915050565b6000819050919050565b600061207661207161206c84611b5a565b612051565b611b5a565b9050919050565b60006120888261205b565b9050919050565b600061209a8261207d565b9050919050565b6120aa8161208f565b82525050565b60006020820190506120c560008301846120a1565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061216382611bb8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361219557612194612129565b5b600182019050919050565b600082825260208201905092915050565b7f4e6f7420796f7572204e7564696520546f6b656e000000000000000000000000600082015250565b60006121e76014836121a0565b91506121f2826121b1565b602082019050919050565b60006020820190508181036000830152612216816121da565b9050919050565b60006040820190506122326000830185612027565b61223f6020830184612027565b9392505050565b60008115159050919050565b61225b81612246565b811461226657600080fd5b50565b60008151905061227881612252565b92915050565b60006020828403121561229457612293611b50565b5b60006122a284828501612269565b91505092915050565b60006060820190506122c06000830186612027565b6122cd6020830185612027565b6122da6040830184611e6b565b949350505050565b7f46756e6374696f6e2063616e206f6e6c792062652063616c6c6564207669612060008201527f746f6b656e20636f6e7472616374000000000000000000000000000000000000602082015250565b600061233e602e836121a0565b9150612349826122e2565b604082019050919050565b6000602082019050818103600083015261236d81612331565b9050919050565b600061237f82611bb8565b915061238a83611bb8565b92508282101561239d5761239c612129565b5b828203905092915050565b60006123b382611bb8565b91506123be83611bb8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156123f3576123f2612129565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006124346020836121a0565b915061243f826123fe565b602082019050919050565b6000602082019050818103600083015261246381612427565b9050919050565b60008151905061247981611b8c565b92915050565b60006020828403121561249557612494611b50565b5b60006124a38482850161246a565b91505092915050565b7f4e6f7420596f7572204e7564696520546f205374616b65000000000000000000600082015250565b60006124e26017836121a0565b91506124ed826124ac565b602082019050919050565b60006020820190508181036000830152612511816124d5565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006125746026836121a0565b915061257f82612518565b604082019050919050565b600060208201905081810360008301526125a381612567565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220ce623089d82b0f1c671e1a7b13b3abb8ed63b1be01e9f0d520b10fcb6171676964736f6c634300080f003300000000000000000000000089bd11d1fba7906464fa11f3086fe8ba1b5368a1
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101005760003560e01c8063715018a611610097578063a9c6955311610066578063a9c6955314610297578063e42e45b9146102b3578063f2fde38b146102d1578063f933ceca146102ed57610100565b8063715018a61461023757806387bd0a2d146102415780638da5cb5b1461025d578063a694fc3a1461027b57610100565b80635ac31717116100d35780635ac317171461019f57806364ab8675146101bb57806364ef26bf146101eb5780636b8354421461020757610100565b8063150b7a021461010557806317fd3bdc146101355780632e17de78146101535780633e9e16021461016f575b600080fd5b61011f600480360381019061011a9190611c53565b610309565b60405161012c9190611d16565b60405180910390f35b61013d61031e565b60405161014a9190611def565b60405180910390f35b61016d60048036038101906101689190611e11565b610456565b005b61018960048036038101906101849190611e3e565b6105d9565b6040516101969190611e7a565b60405180910390f35b6101b960048036038101906101b49190611eeb565b6107a1565b005b6101d560048036038101906101d09190611e3e565b610979565b6040516101e29190611e7a565b60405180910390f35b61020560048036038101906102009190611f80565b610dbd565b005b610221600480360381019061021c9190611fe7565b610f23565b60405161022e9190611e7a565b60405180910390f35b61023f610f4e565b005b61025b60048036038101906102569190611f80565b610fd6565b005b61026561113c565b6040516102729190612036565b60405180910390f35b61029560048036038101906102909190611e11565b611165565b005b6102b160048036038101906102ac9190611eeb565b61130c565b005b6102bb611521565b6040516102c891906120b0565b60405180910390f35b6102eb60048036038101906102e69190611e3e565b611547565b005b61030760048036038101906103029190611e3e565b61163e565b005b600063150b7a0260e01b905095945050505050565b60606000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050905060008167ffffffffffffffff811115610383576103826120cb565b5b6040519080825280602002602001820160405280156103b15781602001602082028036833780820191505090505b50905060005b8281101561044d57600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081815481106104105761040f6120fa565b5b906000526020600020015482828151811061042e5761042d6120fa565b5b602002602001018181525050808061044590612158565b9150506103b7565b50809250505090565b6001151561046433836116fe565b1515146104a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049d906121fd565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e985e9c530336040518363ffffffff1660e01b815260040161050392919061221d565b602060405180830381865afa158015610520573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610544919061227e565b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e3033846040518463ffffffff1660e01b81526004016105a4939291906122ab565b600060405180830381600087803b1580156105be57600080fd5b505af11580156105d2573d6000803e3d6000fd5b5050505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461066b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066290612354565b60405180910390fd5b600061067683610979565b90506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050905060005b81811015610796576000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061071d5761071c6120fa565b5b9060005260206000200154905042600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000018190555050808061078e90612158565b9150506106c2565b508192505050919050565b60005b8282905081101561097457600115156107d6338585858181106107ca576107c96120fa565b5b905060200201356116fe565b151514610818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080f906121fd565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e985e9c530336040518363ffffffff1660e01b815260040161087592919061221d565b602060405180830381865afa158015610892573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b6919061227e565b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e303386868681811061090a576109096120fa565b5b905060200201356040518463ffffffff1660e01b815260040161092f939291906122ab565b600060405180830381600087803b15801561094957600080fd5b505af115801561095d573d6000803e3d6000fd5b50505050808061096c90612158565b9150506107a4565b505050565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090506000805b82811015610db2576000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610a2057610a1f6120fa565b5b906000526020600020015490506000600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020600001549050600460009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168142610ac29190612374565b10158015610b0a5750600460109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168142610b089190612374565b105b15610b4e57600660009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1684610b4b91906123a8565b93505b600460109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168142610b8b9190612374565b10158015610bd35750600560009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168142610bd19190612374565b105b15610c1757600660109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1684610c1491906123a8565b93505b600560009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168142610c549190612374565b10610d9d57600760009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1684610c9591906123a8565b93506000600560009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168242610cd69190612374565b610ce09190612374565b90505b600560109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168110610d9b57600760109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1685610d5691906123a8565b9450600560109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681610d949190612374565b9050610ce3565b505b50508080610daa90612158565b9150506109c5565b508092505050919050565b610dc56119ae565b73ffffffffffffffffffffffffffffffffffffffff16610de361113c565b73ffffffffffffffffffffffffffffffffffffffff1614610e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e309061244a565b60405180910390fd5b83600660006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555082600660106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555081600760006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555080600760106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505050565b6002602052816000526040600020602052806000526040600020600091509150508060000154905081565b610f566119ae565b73ffffffffffffffffffffffffffffffffffffffff16610f7461113c565b73ffffffffffffffffffffffffffffffffffffffff1614610fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc19061244a565b60405180910390fd5b610fd460006119b6565b565b610fde6119ae565b73ffffffffffffffffffffffffffffffffffffffff16610ffc61113c565b73ffffffffffffffffffffffffffffffffffffffff1614611052576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110499061244a565b60405180910390fd5b83600460006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555082600460106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555081600560006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555080600560106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004016111d79190611e7a565b602060405180830381865afa1580156111f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611218919061247f565b73ffffffffffffffffffffffffffffffffffffffff161461126e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611265906124f8565b60405180910390fd5b6112783382611a7a565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e3330846040518463ffffffff1660e01b81526004016112d7939291906122ab565b600060405180830381600087803b1580156112f157600080fd5b505af1158015611305573d6000803e3d6000fd5b5050505050565b60005b8282905081101561151c573373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e858585818110611382576113816120fa565b5b905060200201356040518263ffffffff1660e01b81526004016113a59190611e7a565b602060405180830381865afa1580156113c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e6919061247f565b73ffffffffffffffffffffffffffffffffffffffff161461143c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611433906124f8565b60405180910390fd5b61145f33848484818110611453576114526120fa565b5b90506020020135611a7a565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e33308686868181106114b2576114b16120fa565b5b905060200201356040518463ffffffff1660e01b81526004016114d7939291906122ab565b600060405180830381600087803b1580156114f157600080fd5b505af1158015611505573d6000803e3d6000fd5b50505050808061151490612158565b91505061130f565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61154f6119ae565b73ffffffffffffffffffffffffffffffffffffffff1661156d61113c565b73ffffffffffffffffffffffffffffffffffffffff16146115c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ba9061244a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611632576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116299061258a565b60405180910390fd5b61163b816119b6565b50565b6116466119ae565b73ffffffffffffffffffffffffffffffffffffffff1661166461113c565b73ffffffffffffffffffffffffffffffffffffffff16146116ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b19061244a565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060008082016000905550506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050905060005b818110156119a15783600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106117ff576117fe6120fa565b5b90600052602060002001540361198e576000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001826118a29190612374565b815481106118b3576118b26120fa565b5b9060005260206000200154600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811061190f5761190e6120fa565b5b9060005260206000200181905550600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548061196c5761196b6125aa565b5b60019003818190600052602060002001600090559055600193505050506119a8565b808061199990612158565b9150506117a5565b5060009150505b92915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b604051806020016040528042815250600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060008201518160000155905050600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150506001900390600052602060002001600090919091909150555050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611b8582611b5a565b9050919050565b611b9581611b7a565b8114611ba057600080fd5b50565b600081359050611bb281611b8c565b92915050565b6000819050919050565b611bcb81611bb8565b8114611bd657600080fd5b50565b600081359050611be881611bc2565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611c1357611c12611bee565b5b8235905067ffffffffffffffff811115611c3057611c2f611bf3565b5b602083019150836001820283011115611c4c57611c4b611bf8565b5b9250929050565b600080600080600060808688031215611c6f57611c6e611b50565b5b6000611c7d88828901611ba3565b9550506020611c8e88828901611ba3565b9450506040611c9f88828901611bd9565b935050606086013567ffffffffffffffff811115611cc057611cbf611b55565b5b611ccc88828901611bfd565b92509250509295509295909350565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611d1081611cdb565b82525050565b6000602082019050611d2b6000830184611d07565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611d6681611bb8565b82525050565b6000611d788383611d5d565b60208301905092915050565b6000602082019050919050565b6000611d9c82611d31565b611da68185611d3c565b9350611db183611d4d565b8060005b83811015611de2578151611dc98882611d6c565b9750611dd483611d84565b925050600181019050611db5565b5085935050505092915050565b60006020820190508181036000830152611e098184611d91565b905092915050565b600060208284031215611e2757611e26611b50565b5b6000611e3584828501611bd9565b91505092915050565b600060208284031215611e5457611e53611b50565b5b6000611e6284828501611ba3565b91505092915050565b611e7481611bb8565b82525050565b6000602082019050611e8f6000830184611e6b565b92915050565b60008083601f840112611eab57611eaa611bee565b5b8235905067ffffffffffffffff811115611ec857611ec7611bf3565b5b602083019150836020820283011115611ee457611ee3611bf8565b5b9250929050565b60008060208385031215611f0257611f01611b50565b5b600083013567ffffffffffffffff811115611f2057611f1f611b55565b5b611f2c85828601611e95565b92509250509250929050565b60006fffffffffffffffffffffffffffffffff82169050919050565b611f5d81611f38565b8114611f6857600080fd5b50565b600081359050611f7a81611f54565b92915050565b60008060008060808587031215611f9a57611f99611b50565b5b6000611fa887828801611f6b565b9450506020611fb987828801611f6b565b9350506040611fca87828801611f6b565b9250506060611fdb87828801611f6b565b91505092959194509250565b60008060408385031215611ffe57611ffd611b50565b5b600061200c85828601611ba3565b925050602061201d85828601611bd9565b9150509250929050565b61203081611b7a565b82525050565b600060208201905061204b6000830184612027565b92915050565b6000819050919050565b600061207661207161206c84611b5a565b612051565b611b5a565b9050919050565b60006120888261205b565b9050919050565b600061209a8261207d565b9050919050565b6120aa8161208f565b82525050565b60006020820190506120c560008301846120a1565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061216382611bb8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361219557612194612129565b5b600182019050919050565b600082825260208201905092915050565b7f4e6f7420796f7572204e7564696520546f6b656e000000000000000000000000600082015250565b60006121e76014836121a0565b91506121f2826121b1565b602082019050919050565b60006020820190508181036000830152612216816121da565b9050919050565b60006040820190506122326000830185612027565b61223f6020830184612027565b9392505050565b60008115159050919050565b61225b81612246565b811461226657600080fd5b50565b60008151905061227881612252565b92915050565b60006020828403121561229457612293611b50565b5b60006122a284828501612269565b91505092915050565b60006060820190506122c06000830186612027565b6122cd6020830185612027565b6122da6040830184611e6b565b949350505050565b7f46756e6374696f6e2063616e206f6e6c792062652063616c6c6564207669612060008201527f746f6b656e20636f6e7472616374000000000000000000000000000000000000602082015250565b600061233e602e836121a0565b9150612349826122e2565b604082019050919050565b6000602082019050818103600083015261236d81612331565b9050919050565b600061237f82611bb8565b915061238a83611bb8565b92508282101561239d5761239c612129565b5b828203905092915050565b60006123b382611bb8565b91506123be83611bb8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156123f3576123f2612129565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006124346020836121a0565b915061243f826123fe565b602082019050919050565b6000602082019050818103600083015261246381612427565b9050919050565b60008151905061247981611b8c565b92915050565b60006020828403121561249557612494611b50565b5b60006124a38482850161246a565b91505092915050565b7f4e6f7420596f7572204e7564696520546f205374616b65000000000000000000600082015250565b60006124e26017836121a0565b91506124ed826124ac565b602082019050919050565b60006020820190508181036000830152612511816124d5565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006125746026836121a0565b915061257f82612518565b604082019050919050565b600060208201905081810360008301526125a381612567565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220ce623089d82b0f1c671e1a7b13b3abb8ed63b1be01e9f0d520b10fcb6171676964736f6c634300080f0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000089bd11d1fba7906464fa11f3086fe8ba1b5368a1
-----Decoded View---------------
Arg [0] : NudieAddress (address): 0x89Bd11D1fBa7906464fa11f3086fE8ba1B5368A1
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000089bd11d1fba7906464fa11f3086fe8ba1b5368a1
Deployed Bytecode Sourcemap
20158:6755:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26702:206;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23597:402;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22281:354;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24007:555;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21481:450;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24570:1325;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26038:298;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20302:75;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19491:94;;;:::i;:::-;;26344:350;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18840:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21939:334;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21042:431;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20213:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19740:230;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25903:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26702:206;26844:6;26870:30;;;26863:37;;26702:206;;;;;;;:::o;23597:402::-;23649:17;23678:24;23705:22;:34;23728:10;23705:34;;;;;;;;;;;;;;;:41;;;;23678:68;;23757:27;23801:16;23787:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23757:61;;23836:9;23831:131;23855:16;23851:1;:20;23831:131;;;23909:22;:34;23932:10;23909:34;;;;;;;;;;;;;;;23944:1;23909:37;;;;;;;;:::i;:::-;;;;;;;;;;23893:10;23904:1;23893:13;;;;;;;;:::i;:::-;;;;;;;:53;;;;;23873:3;;;;;:::i;:::-;;;;23831:131;;;;23981:10;23974:17;;;;23597:402;:::o;22281:354::-;22387:4;22349:42;;:34;22361:10;22373:9;22349:11;:34::i;:::-;:42;;;22341:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;22431:8;;;;;;;;;;;:25;;;22465:4;22472:10;22431:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22498:8;;;;;;;;;;;:25;;;22550:4;22574:10;22603:9;22498:129;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22281:354;:::o;24007:555::-;24067:7;24108:17;;;;;;;;;;;24094:31;;:10;:31;;;24086:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;24187:23;24213;24230:5;24213:16;:23::i;:::-;24187:49;;24247:24;24274:22;:29;24297:5;24274:29;;;;;;;;;;;;;;;:36;;;;24247:63;;24328:9;24323:197;24347:16;24343:1;:20;24323:197;;;24385:15;24403:22;:29;24426:5;24403:29;;;;;;;;;;;;;;;24433:1;24403:32;;;;;;;;:::i;:::-;;;;;;;;;;24385:50;;24493:15;24450:18;:25;24469:5;24450:25;;;;;;;;;;;;;;;:34;24476:7;24450:34;;;;;;;;;;;:40;;:58;;;;24370:150;24365:3;;;;;:::i;:::-;;;;24323:197;;;;24539:15;24532:22;;;;24007:555;;;:::o;21481:450::-;21563:9;21558:366;21582:9;;:16;;21578:1;:20;21558:366;;;21669:4;21628:45;;:37;21640:10;21652:9;;21662:1;21652:12;;;;;;;:::i;:::-;;;;;;;;21628:11;:37::i;:::-;:45;;;21620:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;21713:8;;;;;;;;;;;:25;;;21747:4;21754:10;21713:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21780:8;;;;;;;;;;;:25;;;21832:4;21856:10;21885:9;;21895:1;21885:12;;;;;;;:::i;:::-;;;;;;;;21780:132;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21600:3;;;;;:::i;:::-;;;;21558:366;;;;21481:450;;:::o;24570:1325::-;24660:7;24685:24;24712:22;:30;24735:6;24712:30;;;;;;;;;;;;;;;:37;;;;24685:64;;24760:14;24796:9;24791:1073;24815:16;24811:1;:20;24791:1073;;;24853:15;24871:22;:30;24894:6;24871:30;;;;;;;;;;;;;;;24902:1;24871:33;;;;;;;;:::i;:::-;;;;;;;;;;24853:51;;24919:19;24941:18;:26;24960:6;24941:26;;;;;;;;;;;;;;;:35;24968:7;24941:35;;;;;;;;;;;:41;;;24919:63;;25037:15;;;;;;;;;;;25002:50;;25021:11;25003:15;:29;;;;:::i;:::-;25002:50;;:102;;;;;25091:13;;;;;;;;;;;25057:47;;25076:11;25058:15;:29;;;;:::i;:::-;25057:47;25002:102;24999:170;;;25142:11;;;;;;;;;;;25133:20;;:6;:20;;;;:::i;:::-;25124:29;;24999:170;25225:13;;;;;;;;;;;25190:48;;25209:11;25191:15;:29;;;;:::i;:::-;25190:48;;:101;;;;;25276:15;;;;;;;;;;;25242:49;;25261:11;25243:15;:29;;;;:::i;:::-;25242:49;25190:101;25187:182;;;25329:9;;;;;;;;;;;25320:18;;:6;:18;;;;:::i;:::-;25311:27;;25187:182;25428:15;;;;;;;;;;;25393:50;;25412:11;25394:15;:29;;;;:::i;:::-;25393:50;25390:458;;25481:11;;;;;;;;;;;25472:20;;:6;:20;;;;:::i;:::-;25463:29;;25514:27;25578:15;;;;;;;;;;;25544:49;;25563:11;25545:15;:29;;;;:::i;:::-;25544:49;;;;:::i;:::-;25514:79;;25614:208;25643:18;;;;;;;;;;;25620:41;;:19;:41;25614:208;;25703:14;;;;;;;;;;;25694:23;;:6;:23;;;;:::i;:::-;25685:32;;25784:18;;;;;;;;;;;25762:40;;:19;:40;;;;:::i;:::-;25740:62;;25614:208;;;25444:404;25390:458;24838:1026;;24833:3;;;;;:::i;:::-;;;;24791:1073;;;;25881:6;25874:13;;;;24570:1325;;;:::o;26038:298::-;19071:12;:10;:12::i;:::-;19060:23;;:7;:5;:7::i;:::-;:23;;;19052:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26203:12:::1;26189:11;;:26;;;;;;;;;;;;;;;;;;26238:10;26226:9;;:22;;;;;;;;;;;;;;;;;;26273:12;26259:11;;:26;;;;;;;;;;;;;;;;;;26313:15;26296:14;;:32;;;;;;;;;;;;;;;;;;26038:298:::0;;;;:::o;20302:75::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19491:94::-;19071:12;:10;:12::i;:::-;19060:23;;:7;:5;:7::i;:::-;:23;;;19052:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19556:21:::1;19574:1;19556:9;:21::i;:::-;19491:94::o:0;26344:350::-;19071:12;:10;:12::i;:::-;19060:23;;:7;:5;:7::i;:::-;:23;;;19052:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26533:16:::1;26515:15;;:34;;;;;;;;;;;;;;;;;;26576:14;26560:13;;:30;;;;;;;;;;;;;;;;;;26619:16;26601:15;;:34;;;;;;;;;;;;;;;;;;26667:19;26646:18;;:40;;;;;;;;;;;;;;;;;;26344:350:::0;;;;:::o;18840:87::-;18886:7;18913:6;;;;;;;;;;;18906:13;;18840:87;:::o;21939:334::-;22035:10;22004:41;;:8;;;;;;;;;;;:16;;;22021:9;22004:27;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:41;;;21996:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;22088:33;22099:10;22111:9;22088:10;:33::i;:::-;22136:8;;;;;;;;;;;:25;;;22180:10;22217:4;22241:9;22136:129;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21939:334;:::o;21042:431::-;21119:9;21114:352;21138:9;;:16;;21134:1;:20;21114:352;;;21218:10;21184:44;;:8;;;;;;;;;;;:16;;;21201:9;;21211:1;21201:12;;;;;;;:::i;:::-;;;;;;;;21184:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;;;21176:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;21271:36;21282:10;21294:9;;21304:1;21294:12;;;;;;;:::i;:::-;;;;;;;;21271:10;:36::i;:::-;21322:8;;;;;;;;;;;:25;;;21366:10;21403:4;21427:9;;21437:1;21427:12;;;;;;;:::i;:::-;;;;;;;;21322:132;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21156:3;;;;;:::i;:::-;;;;21114:352;;;;21042:431;;:::o;20213:23::-;;;;;;;;;;;;;:::o;19740:230::-;19071:12;:10;:12::i;:::-;19060:23;;:7;:5;:7::i;:::-;:23;;;19052:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19863:1:::1;19843:22;;:8;:22;;::::0;19821:111:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19943:19;19953:8;19943:9;:19::i;:::-;19740:230:::0;:::o;25903:127::-;19071:12;:10;:12::i;:::-;19060:23;;:7;:5;:7::i;:::-;:23;;;19052:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26004:18:::1;25984:17;;:38;;;;;;;;;;;;;;;;;;25903:127:::0;:::o;22899:690::-;22971:4;23000:18;:26;23019:6;23000:26;;;;;;;;;;;;;;;:36;23027:8;23000:36;;;;;;;;;;;;22993:43;;;;;;;;23049:24;23076:22;:30;23099:6;23076:30;;;;;;;;;;;;;;;:37;;;;23049:64;;23129:9;23124:435;23148:16;23144:1;:20;23124:435;;;23227:8;23190:22;:30;23213:6;23190:30;;;;;;;;;;;;;;;23221:1;23190:33;;;;;;;;:::i;:::-;;;;;;;;;;:45;23186:362;;23256:14;23273:22;:30;23296:6;23273:30;;;;;;;;;;;;;;;:37;;;;23256:54;;23365:22;:70;23410:6;23365:70;;;;;;;;;;;;;;;23445:1;23436:6;:10;;;;:::i;:::-;23365:82;;;;;;;;:::i;:::-;;;;;;;;;;23329:22;:30;23352:6;23329:30;;;;;;;;;;;;;;;23360:1;23329:33;;;;;;;;:::i;:::-;;;;;;;;;:118;;;;23466:22;:30;23489:6;23466:30;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23528:4;23521:11;;;;;;;23186:362;23166:3;;;;;:::i;:::-;;;;23124:435;;;;23576:5;23569:12;;;22899:690;;;;;:::o;2077:98::-;2130:7;2157:10;2150:17;;2077:98;:::o;19978:173::-;20034:16;20053:6;;;;;;;;;;;20034:25;;20079:8;20070:6;;:17;;;;;;;;;;;;;;;;;;20134:8;20103:40;;20124:8;20103:40;;;;;;;;;;;;20023:128;19978:173;:::o;22643:248::-;22768:59;;;;;;;;22800:15;22768:59;;;22729:18;:26;22748:6;22729:26;;;;;;;;;;;;;;;:36;22756:8;22729:36;;;;;;;;;;;:98;;;;;;;;;;;22838:22;:30;22861:6;22838:30;;;;;;;;;;;;;;;22874:8;22838:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22643:248;;:::o;88:117:1:-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:117::-;1306:1;1303;1296:12;1320:117;1429:1;1426;1419:12;1443:117;1552:1;1549;1542:12;1579:552;1636:8;1646:6;1696:3;1689:4;1681:6;1677:17;1673:27;1663:122;;1704:79;;:::i;:::-;1663:122;1817:6;1804:20;1794:30;;1847:18;1839:6;1836:30;1833:117;;;1869:79;;:::i;:::-;1833:117;1983:4;1975:6;1971:17;1959:29;;2037:3;2029:4;2021:6;2017:17;2007:8;2003:32;2000:41;1997:128;;;2044:79;;:::i;:::-;1997:128;1579:552;;;;;:::o;2137:963::-;2234:6;2242;2250;2258;2266;2315:3;2303:9;2294:7;2290:23;2286:33;2283:120;;;2322:79;;:::i;:::-;2283:120;2442:1;2467:53;2512:7;2503:6;2492:9;2488:22;2467:53;:::i;:::-;2457:63;;2413:117;2569:2;2595:53;2640:7;2631:6;2620:9;2616:22;2595:53;:::i;:::-;2585:63;;2540:118;2697:2;2723:53;2768:7;2759:6;2748:9;2744:22;2723:53;:::i;:::-;2713:63;;2668:118;2853:2;2842:9;2838:18;2825:32;2884:18;2876:6;2873:30;2870:117;;;2906:79;;:::i;:::-;2870:117;3019:64;3075:7;3066:6;3055:9;3051:22;3019:64;:::i;:::-;3001:82;;;;2796:297;2137:963;;;;;;;;:::o;3106:149::-;3142:7;3182:66;3175:5;3171:78;3160:89;;3106:149;;;:::o;3261:115::-;3346:23;3363:5;3346:23;:::i;:::-;3341:3;3334:36;3261:115;;:::o;3382:218::-;3473:4;3511:2;3500:9;3496:18;3488:26;;3524:69;3590:1;3579:9;3575:17;3566:6;3524:69;:::i;:::-;3382:218;;;;:::o;3606:114::-;3673:6;3707:5;3701:12;3691:22;;3606:114;;;:::o;3726:184::-;3825:11;3859:6;3854:3;3847:19;3899:4;3894:3;3890:14;3875:29;;3726:184;;;;:::o;3916:132::-;3983:4;4006:3;3998:11;;4036:4;4031:3;4027:14;4019:22;;3916:132;;;:::o;4054:108::-;4131:24;4149:5;4131:24;:::i;:::-;4126:3;4119:37;4054:108;;:::o;4168:179::-;4237:10;4258:46;4300:3;4292:6;4258:46;:::i;:::-;4336:4;4331:3;4327:14;4313:28;;4168:179;;;;:::o;4353:113::-;4423:4;4455;4450:3;4446:14;4438:22;;4353:113;;;:::o;4502:732::-;4621:3;4650:54;4698:5;4650:54;:::i;:::-;4720:86;4799:6;4794:3;4720:86;:::i;:::-;4713:93;;4830:56;4880:5;4830:56;:::i;:::-;4909:7;4940:1;4925:284;4950:6;4947:1;4944:13;4925:284;;;5026:6;5020:13;5053:63;5112:3;5097:13;5053:63;:::i;:::-;5046:70;;5139:60;5192:6;5139:60;:::i;:::-;5129:70;;4985:224;4972:1;4969;4965:9;4960:14;;4925:284;;;4929:14;5225:3;5218:10;;4626:608;;;4502:732;;;;:::o;5240:373::-;5383:4;5421:2;5410:9;5406:18;5398:26;;5470:9;5464:4;5460:20;5456:1;5445:9;5441:17;5434:47;5498:108;5601:4;5592:6;5498:108;:::i;:::-;5490:116;;5240:373;;;;:::o;5619:329::-;5678:6;5727:2;5715:9;5706:7;5702:23;5698:32;5695:119;;;5733:79;;:::i;:::-;5695:119;5853:1;5878:53;5923:7;5914:6;5903:9;5899:22;5878:53;:::i;:::-;5868:63;;5824:117;5619:329;;;;:::o;5954:::-;6013:6;6062:2;6050:9;6041:7;6037:23;6033:32;6030:119;;;6068:79;;:::i;:::-;6030:119;6188:1;6213:53;6258:7;6249:6;6238:9;6234:22;6213:53;:::i;:::-;6203:63;;6159:117;5954:329;;;;:::o;6289:118::-;6376:24;6394:5;6376:24;:::i;:::-;6371:3;6364:37;6289:118;;:::o;6413:222::-;6506:4;6544:2;6533:9;6529:18;6521:26;;6557:71;6625:1;6614:9;6610:17;6601:6;6557:71;:::i;:::-;6413:222;;;;:::o;6658:568::-;6731:8;6741:6;6791:3;6784:4;6776:6;6772:17;6768:27;6758:122;;6799:79;;:::i;:::-;6758:122;6912:6;6899:20;6889:30;;6942:18;6934:6;6931:30;6928:117;;;6964:79;;:::i;:::-;6928:117;7078:4;7070:6;7066:17;7054:29;;7132:3;7124:4;7116:6;7112:17;7102:8;7098:32;7095:41;7092:128;;;7139:79;;:::i;:::-;7092:128;6658:568;;;;;:::o;7232:559::-;7318:6;7326;7375:2;7363:9;7354:7;7350:23;7346:32;7343:119;;;7381:79;;:::i;:::-;7343:119;7529:1;7518:9;7514:17;7501:31;7559:18;7551:6;7548:30;7545:117;;;7581:79;;:::i;:::-;7545:117;7694:80;7766:7;7757:6;7746:9;7742:22;7694:80;:::i;:::-;7676:98;;;;7472:312;7232:559;;;;;:::o;7797:118::-;7834:7;7874:34;7867:5;7863:46;7852:57;;7797:118;;;:::o;7921:122::-;7994:24;8012:5;7994:24;:::i;:::-;7987:5;7984:35;7974:63;;8033:1;8030;8023:12;7974:63;7921:122;:::o;8049:139::-;8095:5;8133:6;8120:20;8111:29;;8149:33;8176:5;8149:33;:::i;:::-;8049:139;;;;:::o;8194:765::-;8280:6;8288;8296;8304;8353:3;8341:9;8332:7;8328:23;8324:33;8321:120;;;8360:79;;:::i;:::-;8321:120;8480:1;8505:53;8550:7;8541:6;8530:9;8526:22;8505:53;:::i;:::-;8495:63;;8451:117;8607:2;8633:53;8678:7;8669:6;8658:9;8654:22;8633:53;:::i;:::-;8623:63;;8578:118;8735:2;8761:53;8806:7;8797:6;8786:9;8782:22;8761:53;:::i;:::-;8751:63;;8706:118;8863:2;8889:53;8934:7;8925:6;8914:9;8910:22;8889:53;:::i;:::-;8879:63;;8834:118;8194:765;;;;;;;:::o;8965:474::-;9033:6;9041;9090:2;9078:9;9069:7;9065:23;9061:32;9058:119;;;9096:79;;:::i;:::-;9058:119;9216:1;9241:53;9286:7;9277:6;9266:9;9262:22;9241:53;:::i;:::-;9231:63;;9187:117;9343:2;9369:53;9414:7;9405:6;9394:9;9390:22;9369:53;:::i;:::-;9359:63;;9314:118;8965:474;;;;;:::o;9445:118::-;9532:24;9550:5;9532:24;:::i;:::-;9527:3;9520:37;9445:118;;:::o;9569:222::-;9662:4;9700:2;9689:9;9685:18;9677:26;;9713:71;9781:1;9770:9;9766:17;9757:6;9713:71;:::i;:::-;9569:222;;;;:::o;9797:60::-;9825:3;9846:5;9839:12;;9797:60;;;:::o;9863:142::-;9913:9;9946:53;9964:34;9973:24;9991:5;9973:24;:::i;:::-;9964:34;:::i;:::-;9946:53;:::i;:::-;9933:66;;9863:142;;;:::o;10011:126::-;10061:9;10094:37;10125:5;10094:37;:::i;:::-;10081:50;;10011:126;;;:::o;10143:141::-;10208:9;10241:37;10272:5;10241:37;:::i;:::-;10228:50;;10143:141;;;:::o;10290:161::-;10392:52;10438:5;10392:52;:::i;:::-;10387:3;10380:65;10290:161;;:::o;10457:252::-;10565:4;10603:2;10592:9;10588:18;10580:26;;10616:86;10699:1;10688:9;10684:17;10675:6;10616:86;:::i;:::-;10457:252;;;;:::o;10715:180::-;10763:77;10760:1;10753:88;10860:4;10857:1;10850:15;10884:4;10881:1;10874:15;10901:180;10949:77;10946:1;10939:88;11046:4;11043:1;11036:15;11070:4;11067:1;11060:15;11087:180;11135:77;11132:1;11125:88;11232:4;11229:1;11222:15;11256:4;11253:1;11246:15;11273:233;11312:3;11335:24;11353:5;11335:24;:::i;:::-;11326:33;;11381:66;11374:5;11371:77;11368:103;;11451:18;;:::i;:::-;11368:103;11498:1;11491:5;11487:13;11480:20;;11273:233;;;:::o;11512:169::-;11596:11;11630:6;11625:3;11618:19;11670:4;11665:3;11661:14;11646:29;;11512:169;;;;:::o;11687:170::-;11827:22;11823:1;11815:6;11811:14;11804:46;11687:170;:::o;11863:366::-;12005:3;12026:67;12090:2;12085:3;12026:67;:::i;:::-;12019:74;;12102:93;12191:3;12102:93;:::i;:::-;12220:2;12215:3;12211:12;12204:19;;11863:366;;;:::o;12235:419::-;12401:4;12439:2;12428:9;12424:18;12416:26;;12488:9;12482:4;12478:20;12474:1;12463:9;12459:17;12452:47;12516:131;12642:4;12516:131;:::i;:::-;12508:139;;12235:419;;;:::o;12660:332::-;12781:4;12819:2;12808:9;12804:18;12796:26;;12832:71;12900:1;12889:9;12885:17;12876:6;12832:71;:::i;:::-;12913:72;12981:2;12970:9;12966:18;12957:6;12913:72;:::i;:::-;12660:332;;;;;:::o;12998:90::-;13032:7;13075:5;13068:13;13061:21;13050:32;;12998:90;;;:::o;13094:116::-;13164:21;13179:5;13164:21;:::i;:::-;13157:5;13154:32;13144:60;;13200:1;13197;13190:12;13144:60;13094:116;:::o;13216:137::-;13270:5;13301:6;13295:13;13286:22;;13317:30;13341:5;13317:30;:::i;:::-;13216:137;;;;:::o;13359:345::-;13426:6;13475:2;13463:9;13454:7;13450:23;13446:32;13443:119;;;13481:79;;:::i;:::-;13443:119;13601:1;13626:61;13679:7;13670:6;13659:9;13655:22;13626:61;:::i;:::-;13616:71;;13572:125;13359:345;;;;:::o;13710:442::-;13859:4;13897:2;13886:9;13882:18;13874:26;;13910:71;13978:1;13967:9;13963:17;13954:6;13910:71;:::i;:::-;13991:72;14059:2;14048:9;14044:18;14035:6;13991:72;:::i;:::-;14073;14141:2;14130:9;14126:18;14117:6;14073:72;:::i;:::-;13710:442;;;;;;:::o;14158:233::-;14298:34;14294:1;14286:6;14282:14;14275:58;14367:16;14362:2;14354:6;14350:15;14343:41;14158:233;:::o;14397:366::-;14539:3;14560:67;14624:2;14619:3;14560:67;:::i;:::-;14553:74;;14636:93;14725:3;14636:93;:::i;:::-;14754:2;14749:3;14745:12;14738:19;;14397:366;;;:::o;14769:419::-;14935:4;14973:2;14962:9;14958:18;14950:26;;15022:9;15016:4;15012:20;15008:1;14997:9;14993:17;14986:47;15050:131;15176:4;15050:131;:::i;:::-;15042:139;;14769:419;;;:::o;15194:191::-;15234:4;15254:20;15272:1;15254:20;:::i;:::-;15249:25;;15288:20;15306:1;15288:20;:::i;:::-;15283:25;;15327:1;15324;15321:8;15318:34;;;15332:18;;:::i;:::-;15318:34;15377:1;15374;15370:9;15362:17;;15194:191;;;;:::o;15391:305::-;15431:3;15450:20;15468:1;15450:20;:::i;:::-;15445:25;;15484:20;15502:1;15484:20;:::i;:::-;15479:25;;15638:1;15570:66;15566:74;15563:1;15560:81;15557:107;;;15644:18;;:::i;:::-;15557:107;15688:1;15685;15681:9;15674:16;;15391:305;;;;:::o;15702:182::-;15842:34;15838:1;15830:6;15826:14;15819:58;15702:182;:::o;15890:366::-;16032:3;16053:67;16117:2;16112:3;16053:67;:::i;:::-;16046:74;;16129:93;16218:3;16129:93;:::i;:::-;16247:2;16242:3;16238:12;16231:19;;15890:366;;;:::o;16262:419::-;16428:4;16466:2;16455:9;16451:18;16443:26;;16515:9;16509:4;16505:20;16501:1;16490:9;16486:17;16479:47;16543:131;16669:4;16543:131;:::i;:::-;16535:139;;16262:419;;;:::o;16687:143::-;16744:5;16775:6;16769:13;16760:22;;16791:33;16818:5;16791:33;:::i;:::-;16687:143;;;;:::o;16836:351::-;16906:6;16955:2;16943:9;16934:7;16930:23;16926:32;16923:119;;;16961:79;;:::i;:::-;16923:119;17081:1;17106:64;17162:7;17153:6;17142:9;17138:22;17106:64;:::i;:::-;17096:74;;17052:128;16836:351;;;;:::o;17193:173::-;17333:25;17329:1;17321:6;17317:14;17310:49;17193:173;:::o;17372:366::-;17514:3;17535:67;17599:2;17594:3;17535:67;:::i;:::-;17528:74;;17611:93;17700:3;17611:93;:::i;:::-;17729:2;17724:3;17720:12;17713:19;;17372:366;;;:::o;17744:419::-;17910:4;17948:2;17937:9;17933:18;17925:26;;17997:9;17991:4;17987:20;17983:1;17972:9;17968:17;17961:47;18025:131;18151:4;18025:131;:::i;:::-;18017:139;;17744:419;;;:::o;18169:225::-;18309:34;18305:1;18297:6;18293:14;18286:58;18378:8;18373:2;18365:6;18361:15;18354:33;18169:225;:::o;18400:366::-;18542:3;18563:67;18627:2;18622:3;18563:67;:::i;:::-;18556:74;;18639:93;18728:3;18639:93;:::i;:::-;18757:2;18752:3;18748:12;18741:19;;18400:366;;;:::o;18772:419::-;18938:4;18976:2;18965:9;18961:18;18953:26;;19025:9;19019:4;19015:20;19011:1;19000:9;18996:17;18989:47;19053:131;19179:4;19053:131;:::i;:::-;19045:139;;18772:419;;;:::o;19197:180::-;19245:77;19242:1;19235:88;19342:4;19339:1;19332:15;19366:4;19363:1;19356:15
Swarm Source
ipfs://ce623089d82b0f1c671e1a7b13b3abb8ed63b1be01e9f0d520b10fcb61716769
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.