More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,211 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Harvest | 17492722 | 603 days ago | IN | 0 ETH | 0.00055877 | ||||
Claim Back | 16589556 | 730 days ago | IN | 0 ETH | 0.00318574 | ||||
Claim Back | 16589542 | 730 days ago | IN | 0 ETH | 0.0038202 | ||||
Harvest | 16571889 | 733 days ago | IN | 0 ETH | 0.00116803 | ||||
Harvest | 16431496 | 753 days ago | IN | 0 ETH | 0.00051207 | ||||
Harvest | 16379206 | 760 days ago | IN | 0 ETH | 0.0006569 | ||||
Harvest | 16211275 | 783 days ago | IN | 0 ETH | 0.00038157 | ||||
Harvest | 16058033 | 805 days ago | IN | 0 ETH | 0.00032368 | ||||
Harvest | 15779984 | 844 days ago | IN | 0 ETH | 0.00041073 | ||||
Unstake | 15742310 | 849 days ago | IN | 0 ETH | 0.00121585 | ||||
Harvest | 15735798 | 850 days ago | IN | 0 ETH | 0.00047215 | ||||
Harvest | 14787368 | 999 days ago | IN | 0 ETH | 0.00094178 | ||||
Unstake | 14758711 | 1004 days ago | IN | 0 ETH | 0.00984669 | ||||
Harvest | 14758711 | 1004 days ago | IN | 0 ETH | 0.0056092 | ||||
Set_GOV | 14644205 | 1022 days ago | IN | 0 ETH | 0.00059651 | ||||
Harvest | 14472141 | 1049 days ago | IN | 0 ETH | 0.00062393 | ||||
Unstake | 14444848 | 1053 days ago | IN | 0 ETH | 0.00291338 | ||||
Harvest | 14444844 | 1053 days ago | IN | 0 ETH | 0.00141196 | ||||
Unstake | 14339551 | 1069 days ago | IN | 0 ETH | 0.00166981 | ||||
Unstake | 14014848 | 1119 days ago | IN | 0 ETH | 0.00620002 | ||||
Harvest | 13986871 | 1124 days ago | IN | 0 ETH | 0.00461048 | ||||
Unstake | 13950015 | 1130 days ago | IN | 0 ETH | 0.00730022 | ||||
Unstake | 13948979 | 1130 days ago | IN | 0 ETH | 0.01103822 | ||||
Harvest | 13948977 | 1130 days ago | IN | 0 ETH | 0.00603135 | ||||
Unstake | 13884377 | 1140 days ago | IN | 0 ETH | 0.00365663 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
15742310 | 849 days ago | 0.0357064 ETH | ||||
14758711 | 1004 days ago | 0.05627874 ETH | ||||
14444844 | 1053 days ago | 0.01144217 ETH | ||||
14339551 | 1069 days ago | 0.04393365 ETH | ||||
14014848 | 1119 days ago | 0.00029722 ETH | ||||
13950015 | 1130 days ago | 0.00745603 ETH | ||||
13948977 | 1130 days ago | 0.13388155 ETH | ||||
13884377 | 1140 days ago | 0.15869742 ETH | ||||
13854852 | 1144 days ago | 0.0078681 ETH | ||||
13848751 | 1145 days ago | 0.04058217 ETH | ||||
13775654 | 1156 days ago | 0.02324038 ETH | ||||
13601600 | 1184 days ago | 0.01841686 ETH | ||||
13590567 | 1186 days ago | 0.32852231 ETH | ||||
13554296 | 1192 days ago | 0.41722943 ETH | ||||
13538784 | 1194 days ago | 0.00072993 ETH | ||||
13525590 | 1196 days ago | 0.00006998 ETH | ||||
13511663 | 1198 days ago | 0.03946526 ETH | ||||
13503219 | 1200 days ago | 0.89474536 ETH | ||||
13474990 | 1204 days ago | 0.01095383 ETH | ||||
13428062 | 1211 days ago | 0.00535458 ETH | ||||
13408369 | 1214 days ago | 0.56654915 ETH | ||||
13355357 | 1223 days ago | 0.0067554 ETH | ||||
13346185 | 1224 days ago | 0.01926288 ETH | ||||
13290754 | 1233 days ago | 0.00291974 ETH | ||||
13286755 | 1233 days ago | 0.00008759 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
GFarmNFTExchange
Compiler Version
v0.7.5+commit.eb77ed08
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-01-29 */ // File: contracts\GFarmNFTInterface.sol // SPDX-License-Identifier: MIT pragma solidity 0.7.5; interface GFarmNFTInterface{ function balanceOf(address owner) external view returns (uint256 balance); function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId); function leverageID(uint8 _leverage) external pure returns(uint8); function idToLeverage(uint id) external view returns(uint8); function transferFrom(address from, address to, uint256 tokenId) external; } // File: contracts\GFarmTokenInterface.sol pragma solidity 0.7.5; interface GFarmTokenInterface{ function balanceOf(address account) external view returns (uint256); function transferFrom(address from, address to, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function burn(address from, uint256 amount) external; function mint(address to, uint256 amount) external; } // File: @uniswap\v2-core\contracts\interfaces\IUniswapV2Pair.sol pragma solidity >=0.5.0; interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } // File: @openzeppelin\contracts\math\SafeMath.sol pragma solidity ^0.7.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } // File: contracts\GFarmNFTExchange.sol pragma solidity 0.7.5; contract GFarmNFTExchange { using SafeMath for uint; // 1. Tokens GFarmNFTInterface public immutable nft; GFarmTokenInterface public immutable token; IUniswapV2Pair public immutable lp; address constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; IUniswapV2Pair constant ETH_USDC_PAIR = IUniswapV2Pair(0xB4e16d0168e52d35CaCD2c6185b44281Ec28C9Dc); // 2. Store all NFTs for sale struct Bidding{ uint nftID; address payable seller; uint start; // block uint duration; // blocks uint minBid; // 1e18 uint highestBid; // 1e18 uint highestBidMinusFees; // 1e18 address payable highestBidder; uint bidCount; } mapping(uint => Bidding[]) public biddingsByLeverage; mapping(uint => uint) public idToBiddingsByLeverageIndex; // nft id => index in biddingsByLeverage // 3. GFARM2 pool uint public accETHperGFARM; // 1e18 struct User{ uint provided; //1e18 uint debt; //1e18 } mapping(address => User) public users; // 4. Fees uint public BID_FEE_P = 5; uint public HIGHEST_BID_FEE_P = 25; address public GOV; // 5. Stats & Events uint public totalEthDistributed; event NewBidding( address indexed seller, uint nftID, uint leverage, uint duration, uint minBid ); event NewBid( address indexed seller, address indexed bidder, uint nftID, uint leverage, uint amount ); constructor( GFarmNFTInterface _nft, GFarmTokenInterface _token, IUniswapV2Pair _lp, address _gov){ nft = _nft; token = _token; lp = _lp; GOV = _gov; } // UPDATE FEE PERCENTAGES - GOVERNANCE (EXCHANGE) modifier onlyGov(){ require(msg.sender == GOV); _; } function set_GOV(address _gov) external onlyGov{ GOV = _gov; } function set_BID_FEE_P(uint _fee) external onlyGov{ BID_FEE_P = _fee; } function set_HIGHEST_BID_FEE_P(uint _fee) external onlyGov{ HIGHEST_BID_FEE_P = _fee; } // PRIVATE FUNCTIONS (EXCHANGE) function removeBidding(uint _nftID) private{ uint leverage = nft.idToLeverage(_nftID); Bidding[] storage leverageBiddings = biddingsByLeverage[leverage]; // 1. Update index of the last bidding of the array to this nft's index in the array idToBiddingsByLeverageIndex[leverageBiddings[leverageBiddings.length - 1].nftID] = idToBiddingsByLeverageIndex[_nftID]; // 2. Copy last bidding of the array to replace this nft ID's listings with the last one leverageBiddings[idToBiddingsByLeverageIndex[_nftID]] = leverageBiddings[leverageBiddings.length - 1]; // 3. Remove the last element of the biddings array leverageBiddings.pop(); // 4. Remove index from mapping for this NFT delete idToBiddingsByLeverageIndex[_nftID]; } // EXTERNAL FUNCTIONS (EXCHANGE) // 0. Modifiers modifier notContract(){ require(tx.origin == msg.sender, "Contracts not allowed."); _; } modifier listed(uint id){ require(isListed(id), "This NFT isn't listed."); _; } // 1. Put an NFT for sale function sell(uint _nftID, uint _minBid, uint _bidDuration) external notContract{ // 1. Bidding duration should be between 100 blocks and 100k blocks require(_bidDuration >= 100 && _bidDuration <= 100000, "Bidding duration should be between 100 and 100k blocks."); // 2. Transfer the NFT to this contract nft.transferFrom(msg.sender, address(this), _nftID); // 3. Store bidding uint leverage = nft.idToLeverage(_nftID); Bidding memory b = Bidding(_nftID, msg.sender, block.number, _bidDuration, _minBid, 0, 0, address(0), 0); biddingsByLeverage[leverage].push(b); idToBiddingsByLeverageIndex[_nftID] = biddingsByLeverage[leverage].length - 1; // 4. Emit event emit NewBidding( msg.sender, _nftID, leverage, _bidDuration, _minBid ); } // 2. Place a bid for an NFT function bid(uint _nftID) external payable notContract listed(_nftID){ uint leverage = nft.idToLeverage(_nftID); Bidding storage b = biddingsByLeverage[leverage][idToBiddingsByLeverageIndex[_nftID]]; // 1. Verify msg.sender isn't the seller require(msg.sender != b.seller, "You can't bid for your own NFT."); // 2. Verify the bid hasn't ended require(block.number < b.start.add(b.duration), "Bidding has already ended."); // 3. Verify the bid is higher than the min bid require(msg.value >= b.minBid && msg.value > b.highestBid, "You must bid higher than the min bid and the highest bid."); // 4. If there was already a bid, send back the ETH to old bidder if(b.highestBidder != address(0) && b.highestBid != 0){ b.highestBidder.transfer(b.highestBidMinusFees); } // 5. Set highest bidder & highest bid & add 1 to bid count // 5% in fees go to GFARM2 stakers in the pool uint fee = msg.value.mul(BID_FEE_P).div(100); b.highestBid = msg.value; b.highestBidMinusFees = msg.value.sub(fee); b.highestBidder = msg.sender; b.bidCount = b.bidCount.add(1); // 6. Update pool accETHperGFARM uint tokenBalance = token.balanceOf(address(this)); if(tokenBalance > 0){ accETHperGFARM = accETHperGFARM.add( fee.mul(1e18).div(tokenBalance) ); } // 7. Store stats totalEthDistributed = totalEthDistributed.add(fee); // 8. Emit event emit NewBid( b.seller, msg.sender, _nftID, leverage, msg.value ); } // 3. Claim an NFT after the bid has ended function claim(uint _nftID) external notContract listed(_nftID){ Bidding memory b = biddingsByLeverage[nft.idToLeverage(_nftID)][idToBiddingsByLeverageIndex[_nftID]]; // 1. Verify the bid has ended require(block.number >= b.start.add(b.duration), "Bidding hasn't ended."); // 2. Verify there was at least one bid require(b.bidCount > 0, "No bid was made."); // 3. Transfer the ETH to the seller (25% fee) uint fee = b.highestBidMinusFees.mul(HIGHEST_BID_FEE_P).div(100); b.seller.transfer(b.highestBidMinusFees.sub(fee)); // 4. Transfer the NFT to the highest bidder nft.transferFrom(address(this), b.highestBidder, _nftID); // 5. Remove the bidding removeBidding(_nftID); // 6. Pool uint tokenBalance = token.balanceOf(address(this)); if(tokenBalance > 0){ accETHperGFARM = accETHperGFARM.add( fee.mul(1e18).div(tokenBalance) ); } // 7. Store stats totalEthDistributed = totalEthDistributed.add(fee); } // 4. Claim unsold NFT after bidding ends function claimBack(uint _nftID) external notContract listed(_nftID){ Bidding memory b = biddingsByLeverage[nft.idToLeverage(_nftID)][idToBiddingsByLeverageIndex[_nftID]]; // 1. Verify there was 0 bid require(b.bidCount == 0, "Bids were made."); // 2. Verify the bid has ended require(block.number >= b.start.add(b.duration), "Bidding hasn't ended."); // 3. Send the NFT back to the seller nft.transferFrom(address(this), b.seller, _nftID); // 4. Remove the bidding removeBidding(_nftID); } // 5. Biddings count for a leverage function biddingsCountLeverage(uint _leverage) external view returns(uint){ return biddingsByLeverage[_leverage].length; } // PUBLIC FUNCTIONS (EXCHANGE) function isListed(uint _nftID) public view returns(bool){ return biddingsByLeverage[nft.idToLeverage(_nftID)].length > 0 && biddingsByLeverage[nft.idToLeverage(_nftID)][idToBiddingsByLeverageIndex[_nftID]].nftID == _nftID; } // PUBLIC FUNCTIONS (POOL) // 1. Harvest pending ETH rewards function harvest() public notContract{ uint pending = pendingReward(); if(pending == 0){ return; } // 1. Send pending rewards msg.sender.transfer(pendingReward()); // 2. Update debt User storage u = users[msg.sender]; u.debt = u.provided.mul(accETHperGFARM).div(1e18); } // 2. Get ETH pending reward function pendingReward() view public returns(uint){ User memory u = users[msg.sender]; return u.provided.mul(accETHperGFARM).div(1e18).sub(u.debt); } // EXTERNAL FUNCTIONS (POOL) // 1. Stake GFARM2 + harvest function stake(uint amount) external notContract{ // 1. Transfer the GFARM2 to the contract token.transferFrom(msg.sender, address(this), amount); // 2. Harvest pending rewards uint pending = pendingReward(); if(pending > 0){ msg.sender.transfer(pendingReward()); } // 3. Set user provided & debt User storage u = users[msg.sender]; u.provided = u.provided.add(amount); u.debt = u.provided.mul(accETHperGFARM).div(1e18); } // 2. Unstake GFARM2 + harvest function unstake(uint amount) external notContract{ // 1. Verify he doesn't unstake more than provided User storage u = users[msg.sender]; require(amount <= u.provided, "Unstaking more than provided."); // 2. Harvest pending rewards uint pending = pendingReward(); if(pending > 0){ msg.sender.transfer(pendingReward()); } // 3. Set user provided & debt u.provided = u.provided.sub(amount); u.debt = u.provided.mul(accETHperGFARM).div(1e18); // 4. Transfer the GFARM2 to the address token.transfer(msg.sender, amount); // 5. Burn 10% token.burn(msg.sender, amount.mul(10).div(100)); } // USEFUL FRONT-END FUNCTIONS // 1. ETH/USD price (1e5) function getEthPrice() private view returns(uint){ (uint112 reserves0, uint112 reserves1, ) = ETH_USDC_PAIR.getReserves(); uint reserveUSDC; uint reserveETH; if(WETH == ETH_USDC_PAIR.token0()){ reserveETH = reserves0; reserveUSDC = reserves1; }else{ reserveUSDC = reserves0; reserveETH = reserves1; } // Divide number of USDC by number of ETH // we multiply by 1e12 because USDC only has 6 decimals return reserveUSDC.mul(1e12).mul(1e5).div(reserveETH); } // 2. GFARM/ETH price (1e5) function getGFarmPriceEth() private view returns(uint){ (uint112 reserves0, uint112 reserves1, ) = lp.getReserves(); uint reserveETH; uint reserveGFARM; if(WETH == lp.token0()){ reserveETH = reserves0; reserveGFARM = reserves1; }else{ reserveGFARM = reserves0; reserveETH = reserves1; } return reserveETH.mul(1e5).div(reserveGFARM); } // TVL of GFARM2 staked in $ (1e5) function TVL() external view returns(uint){ return token.balanceOf(address(this)).mul(getGFarmPriceEth()).mul(getEthPrice()).div(1e23); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract GFarmNFTInterface","name":"_nft","type":"address"},{"internalType":"contract GFarmTokenInterface","name":"_token","type":"address"},{"internalType":"contract IUniswapV2Pair","name":"_lp","type":"address"},{"internalType":"address","name":"_gov","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"seller","type":"address"},{"indexed":true,"internalType":"address","name":"bidder","type":"address"},{"indexed":false,"internalType":"uint256","name":"nftID","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"leverage","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NewBid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"seller","type":"address"},{"indexed":false,"internalType":"uint256","name":"nftID","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"leverage","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"duration","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"minBid","type":"uint256"}],"name":"NewBidding","type":"event"},{"inputs":[],"name":"BID_FEE_P","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GOV","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"HIGHEST_BID_FEE_P","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TVL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"accETHperGFARM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_nftID","type":"uint256"}],"name":"bid","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"biddingsByLeverage","outputs":[{"internalType":"uint256","name":"nftID","type":"uint256"},{"internalType":"address payable","name":"seller","type":"address"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"},{"internalType":"uint256","name":"minBid","type":"uint256"},{"internalType":"uint256","name":"highestBid","type":"uint256"},{"internalType":"uint256","name":"highestBidMinusFees","type":"uint256"},{"internalType":"address payable","name":"highestBidder","type":"address"},{"internalType":"uint256","name":"bidCount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_leverage","type":"uint256"}],"name":"biddingsCountLeverage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_nftID","type":"uint256"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_nftID","type":"uint256"}],"name":"claimBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"harvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"idToBiddingsByLeverageIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_nftID","type":"uint256"}],"name":"isListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lp","outputs":[{"internalType":"contract IUniswapV2Pair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nft","outputs":[{"internalType":"contract GFarmNFTInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_nftID","type":"uint256"},{"internalType":"uint256","name":"_minBid","type":"uint256"},{"internalType":"uint256","name":"_bidDuration","type":"uint256"}],"name":"sell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"set_BID_FEE_P","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gov","type":"address"}],"name":"set_GOV","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"set_HIGHEST_BID_FEE_P","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract GFarmTokenInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalEthDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"provided","type":"uint256"},{"internalType":"uint256","name":"debt","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60e06040526005600455601960055534801561001a57600080fd5b506040516128fc3803806128fc8339818101604052608081101561003d57600080fd5b5080516020820151604083015160609384015183851b6001600160601b031990811660805283861b811660a0529482901b90941660c052600680546001600160a01b0319166001600160a01b039586161790559183169290811691166127e6610116600039806108dd528061242452806124d35250806107c452806108425280610d4652806111ad52806117d75280611cdc5280611d61525080610a295280610c975280610ece528061137e528061149b528061169b52806119bf5280611a225280611d8b5280611e3b528061205152506127e66000f3fe6080604052600436106101965760003560e01c80634641257d116100e1578063a87430ba1161008a578063de73465e11610064578063de73465e14610508578063edaf2d2e14610532578063fc0c546a14610547578063fcce48831461055c57610196565b8063a87430ba14610471578063be756afd146104bd578063d3c9727c146104d257610196565b80637d529d72116100bb5780637d529d72146103f357806383579a631461041d578063a694fc3a1461044757610196565b80634641257d1461039657806347ccca02146103ab5780635d453d29146103c057610196565b8063180cb47f11610143578063336b29691161011d578063336b2969146102c7578063379607f51461034f578063454a2ab31461037957610196565b8063180cb47f146102575780632e17de7814610288578063313c06a0146102b257610196565b80630af37ba3116101745780630af37ba3146102035780630eebed9214610218578063137ee36e1461024257610196565b806302a71bde1461019b5780630480c899146101c257806307f193ff146101ee575b600080fd5b3480156101a757600080fd5b506101b061059a565b60408051918252519081900360200190f35b3480156101ce57600080fd5b506101ec600480360360208110156101e557600080fd5b50356105a0565b005b3480156101fa57600080fd5b506101b06105bc565b34801561020f57600080fd5b506101b06105c2565b34801561022457600080fd5b506101ec6004803603602081101561023b57600080fd5b50356105c8565b34801561024e57600080fd5b506101b06105e4565b34801561026357600080fd5b5061026c61064c565b604080516001600160a01b039092168252519081900360200190f35b34801561029457600080fd5b506101ec600480360360208110156102ab57600080fd5b503561065b565b3480156102be57600080fd5b5061026c6108db565b3480156102d357600080fd5b506102f7600480360360408110156102ea57600080fd5b50803590602001356108ff565b60408051998a526001600160a01b0398891660208b0152898101979097526060890195909552608088019390935260a087019190915260c086015290921660e084015261010083019190915251908190036101200190f35b34801561035b57600080fd5b506101ec6004803603602081101561037257600080fd5b5035610974565b6101ec6004803603602081101561038f57600080fd5b5035610e22565b3480156103a257600080fd5b506101ec6112ae565b3480156103b757600080fd5b5061026c61137c565b3480156103cc57600080fd5b506101ec600480360360208110156103e357600080fd5b50356001600160a01b03166113a0565b3480156103ff57600080fd5b506101ec6004803603602081101561041657600080fd5b50356113e6565b34801561042957600080fd5b506101b06004803603602081101561044057600080fd5b503561174b565b34801561045357600080fd5b506101ec6004803603602081101561046a57600080fd5b503561175d565b34801561047d57600080fd5b506104a46004803603602081101561049457600080fd5b50356001600160a01b03166118d7565b6040805192835260208301919091528051918290030190f35b3480156104c957600080fd5b506101b06118f0565b3480156104de57600080fd5b506101ec600480360360608110156104f557600080fd5b50803590602081013590604001356118f6565b34801561051457600080fd5b506101b06004803603602081101561052b57600080fd5b5035611c84565b34801561053e57600080fd5b506101b0611c96565b34801561055357600080fd5b5061026c611d5f565b34801561056857600080fd5b506105866004803603602081101561057f57600080fd5b5035611d83565b604080519115158252519081900360200190f35b60075481565b6006546001600160a01b031633146105b757600080fd5b600555565b60055481565b60025481565b6006546001600160a01b031633146105df57600080fd5b600455565b60006105ee6126a7565b503360009081526003602090815260409182902082518084019093528054808452600190910154918301829052600254610646929161064091670de0b6b3a76400009161063a91611f0f565b90611f6f565b90611fb1565b91505090565b6006546001600160a01b031681565b3233146106a8576040805162461bcd60e51b815260206004820152601660248201527521b7b73a3930b1ba39903737ba1030b63637bbb2b21760511b604482015290519081900360640190fd5b336000908152600360205260409020805482111561070d576040805162461bcd60e51b815260206004820152601d60248201527f556e7374616b696e67206d6f7265207468616e2070726f76696465642e000000604482015290519081900360640190fd5b60006107176105e4565b9050801561075557336108fc61072b6105e4565b6040518115909202916000818181858888f19350505050158015610753573d6000803e3d6000fd5b505b81546107619084611fb1565b80835560025461077f91670de0b6b3a76400009161063a9190611f0f565b6001830155604080517fa9059cbb0000000000000000000000000000000000000000000000000000000081523360048201526024810185905290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163a9059cbb9160448083019260209291908290030181600087803b15801561080c57600080fd5b505af1158015610820573d6000803e3d6000fd5b505050506040513d602081101561083657600080fd5b50506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016639dc29fac33610878606461063a88600a611f0f565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156108be57600080fd5b505af11580156108d2573d6000803e3d6000fd5b50505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000602052816000526040600020818154811061091b57600080fd5b60009182526020909120600990910201805460018201546002830154600384015460048501546005860154600687015460078801546008909801549699506001600160a01b039586169850939692959194909392169089565b3233146109c1576040805162461bcd60e51b815260206004820152601660248201527521b7b73a3930b1ba39903737ba1030b63637bbb2b21760511b604482015290519081900360640190fd5b806109cb81611d83565b610a1c576040805162461bcd60e51b815260206004820152601660248201527f54686973204e46542069736e2774206c69737465642e00000000000000000000604482015290519081900360640190fd5b610a246126c1565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4214ec0866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610a8b57600080fd5b505afa158015610a9f573d6000803e3d6000fd5b505050506040513d6020811015610ab557600080fd5b505160ff168152602081810192909252604090810160009081208682526001909352205481548110610ae357fe5b6000918252602091829020604080516101208101825260099093029091018054835260018101546001600160a01b0390811694840194909452600281015491830182905260038101546060840181905260048201546080850152600582015460a0850152600682015460c0850152600782015490941660e084015260080154610100830152909250610b7491611ff3565b431015610bc8576040805162461bcd60e51b815260206004820152601560248201527f42696464696e67206861736e277420656e6465642e0000000000000000000000604482015290519081900360640190fd5b600081610100015111610c22576040805162461bcd60e51b815260206004820152601060248201527f4e6f2062696420776173206d6164652e00000000000000000000000000000000604482015290519081900360640190fd5b6000610c42606461063a6005548560c00151611f0f90919063ffffffff16565b905081602001516001600160a01b03166108fc610c6c838560c00151611fb190919063ffffffff16565b6040518115909202916000818181858888f19350505050158015610c94573d6000803e3d6000fd5b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd308460e00151876040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050600060405180830381600087803b158015610d2157600080fd5b505af1158015610d35573d6000803e3d6000fd5b50505050610d428461204d565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610db157600080fd5b505afa158015610dc5573d6000803e3d6000fd5b505050506040513d6020811015610ddb57600080fd5b505190508015610e0b57610e07610dfe8261063a85670de0b6b3a7640000611f0f565b60025490611ff3565b6002555b600754610e189083611ff3565b6007555050505050565b323314610e6f576040805162461bcd60e51b815260206004820152601660248201527521b7b73a3930b1ba39903737ba1030b63637bbb2b21760511b604482015290519081900360640190fd5b80610e7981611d83565b610eca576040805162461bcd60e51b815260206004820152601660248201527f54686973204e46542069736e2774206c69737465642e00000000000000000000604482015290519081900360640190fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4214ec0846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610f3057600080fd5b505afa158015610f44573d6000803e3d6000fd5b505050506040513d6020811015610f5a57600080fd5b505160ff166000818152602081815260408083208784526001909252822054815493945091929091908110610f8b57fe5b6000918252602090912060099091020160018101549091506001600160a01b0316331415611000576040805162461bcd60e51b815260206004820152601f60248201527f596f752063616e27742062696420666f7220796f7572206f776e204e46542e00604482015290519081900360640190fd5b6003810154600282015461101391611ff3565b4310611066576040805162461bcd60e51b815260206004820152601a60248201527f42696464696e672068617320616c726561647920656e6465642e000000000000604482015290519081900360640190fd5b8060040154341015801561107d5750806005015434115b6110b85760405162461bcd60e51b81526004018080602001828103825260398152602001806127206039913960400191505060405180910390fd5b60078101546001600160a01b0316158015906110d75750600581015415155b1561111e57600781015460068201546040516001600160a01b039092169181156108fc0291906000818181858888f1935050505015801561111c573d6000803e3d6000fd5b505b600061113a606461063a60045434611f0f90919063ffffffff16565b346005840181905590915061114f9082611fb1565b600683015560078201805473ffffffffffffffffffffffffffffffffffffffff1916331790556008820154611185906001611ff3565b6008830155604080516370a0823160e01b815230600482015290516000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b1580156111f457600080fd5b505afa158015611208573d6000803e3d6000fd5b505050506040513d602081101561121e57600080fd5b50519050801561124557611241610dfe8261063a85670de0b6b3a7640000611f0f565b6002555b6007546112529083611ff3565b600755600183015460408051888152602081018790523481830152905133926001600160a01b0316917f911d834cc781bcb7a08922b9dd1f1d175c0a0467d9705194c2e200f8ce2786bb919081900360600190a3505050505050565b3233146112fb576040805162461bcd60e51b815260206004820152601660248201527521b7b73a3930b1ba39903737ba1030b63637bbb2b21760511b604482015290519081900360640190fd5b60006113056105e4565b905080611312575061137a565b336108fc61131e6105e4565b6040518115909202916000818181858888f19350505050158015611346573d6000803e3d6000fd5b50336000908152600360205260409020600254815461137291670de0b6b3a76400009161063a91611f0f565b600190910155505b565b7f000000000000000000000000000000000000000000000000000000000000000081565b6006546001600160a01b031633146113b757600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b323314611433576040805162461bcd60e51b815260206004820152601660248201527521b7b73a3930b1ba39903737ba1030b63637bbb2b21760511b604482015290519081900360640190fd5b8061143d81611d83565b61148e576040805162461bcd60e51b815260206004820152601660248201527f54686973204e46542069736e2774206c69737465642e00000000000000000000604482015290519081900360640190fd5b6114966126c1565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4214ec0866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156114fd57600080fd5b505afa158015611511573d6000803e3d6000fd5b505050506040513d602081101561152757600080fd5b505160ff16815260208181019290925260409081016000908120868252600190935220548154811061155557fe5b6000918252602091829020604080516101208101825260099093029091018054835260018101546001600160a01b03908116948401949094526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015490921660e0820152600890910154610100820181905290915015611632576040805162461bcd60e51b815260206004820152600f60248201527f426964732077657265206d6164652e0000000000000000000000000000000000604482015290519081900360640190fd5b6060810151604082015161164591611ff3565b431015611699576040805162461bcd60e51b815260206004820152601560248201527f42696464696e67206861736e277420656e6465642e0000000000000000000000604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd308360200151866040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050600060405180830381600087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b505050506117468361204d565b505050565b60016020526000908152604090205481565b3233146117aa576040805162461bcd60e51b815260206004820152601660248201527521b7b73a3930b1ba39903737ba1030b63637bbb2b21760511b604482015290519081900360640190fd5b604080516323b872dd60e01b81523360048201523060248201526044810183905290516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916323b872dd9160648083019260209291908290030181600087803b15801561181f57600080fd5b505af1158015611833573d6000803e3d6000fd5b505050506040513d602081101561184957600080fd5b50600090506118566105e4565b9050801561189457336108fc61186a6105e4565b6040518115909202916000818181858888f19350505050158015611892573d6000803e3d6000fd5b505b33600090815260036020526040902080546118af9084611ff3565b8082556002546118cd91670de0b6b3a76400009161063a9190611f0f565b6001909101555050565b6003602052600090815260409020805460019091015482565b60045481565b323314611943576040805162461bcd60e51b815260206004820152601660248201527521b7b73a3930b1ba39903737ba1030b63637bbb2b21760511b604482015290519081900360640190fd5b606481101580156119575750620186a08111155b6119925760405162461bcd60e51b81526004018080602001828103825260378152602001806127596037913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916323b872dd91606480830192600092919082900301818387803b158015611a0657600080fd5b505af1158015611a1a573d6000803e3d6000fd5b5050505060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4214ec0856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611a8457600080fd5b505afa158015611a98573d6000803e3d6000fd5b505050506040513d6020811015611aae57600080fd5b505160ff169050611abd6126c1565b604051806101200160405280868152602001336001600160a01b03168152602001438152602001848152602001858152602001600081526020016000815260200160006001600160a01b03168152602001600081525090506000808381526020019081526020016000208190806001815401808255809150506001900390600052602060002090600902016000909190919091506000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061010082015181600801555050600160008084815260200190815260200160002080549050036001600087815260200190815260200160002081905550336001600160a01b03167f33911c123d51874482101aba465c700f8a8c49c02f4b695f0c5bf6396dbbf35f868486886040518085815260200184815260200183815260200182815260200194505050505060405180910390a25050505050565b60009081526020819052604090205490565b6000611d5a69152d02c7e14af680000061063a611cb161229e565b611d54611cbc61241d565b604080516370a0823160e01b815230600482015290516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a08231916024808301926020929190829003018186803b158015611d2257600080fd5b505afa158015611d36573d6000803e3d6000fd5b505050506040513d6020811015611d4c57600080fd5b505190611f0f565b90611f0f565b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4214ec0866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611ded57600080fd5b505afa158015611e01573d6000803e3d6000fd5b505050506040513d6020811015611e1757600080fd5b505160ff168152602081019190915260400160002054118015611f095750816000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4214ec0866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611e9d57600080fd5b505afa158015611eb1573d6000803e3d6000fd5b505050506040513d6020811015611ec757600080fd5b505160ff168152602081810192909252604090810160009081208682526001909352205481548110611ef557fe5b906000526020600020906009020160000154145b92915050565b600082611f1e57506000611f09565b82820282848281611f2b57fe5b0414611f685760405162461bcd60e51b81526004018080602001828103825260218152602001806127906021913960400191505060405180910390fd5b9392505050565b6000611f6883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125ab565b6000611f6883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061264d565b600082820183811015611f68576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4214ec0836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156120b357600080fd5b505afa1580156120c7573d6000803e3d6000fd5b505050506040513d60208110156120dd57600080fd5b505160ff1660008181526020818152604080832086845260019283905290832054815494955090939092908490600019810190811061211857fe5b60009182526020808320600990920290910154835282019290925260400190205580548190600019810190811061214b57fe5b90600052602060002090600902018160016000868152602001908152602001600020548154811061217857fe5b60009182526020909120825460099092020190815560018083015490820180546001600160a01b0392831673ffffffffffffffffffffffffffffffffffffffff199182161790915560028085015490840155600380850154908401556004808501549084015560058085015490840155600680850154908401556007808501549084018054919093169116179055600891820154910155805481908061221a57fe5b600082815260208082206009600019909401938402018281556001818101805473ffffffffffffffffffffffffffffffffffffffff1990811690915560028301859055600383018590556004830185905560058301859055600683018590556007830180549091169055600890910183905592909355948552905250506040812055565b600080600073b4e16d0168e52d35cacd2c6185b44281ec28c9dc6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156122f057600080fd5b505afa158015612304573d6000803e3d6000fd5b505050506040513d606081101561231a57600080fd5b50805160209182015160408051630dfe168160e01b81529051929550909350600092839273b4e16d0168e52d35cacd2c6185b44281ec28c9dc92630dfe1681926004808301939192829003018186803b15801561237657600080fd5b505afa15801561238a573d6000803e3d6000fd5b505050506040513d60208110156123a057600080fd5b50516001600160a01b031673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc214156123e25750506dffffffffffffffffffffffffffff8181169083166123fa565b50506dffffffffffffffffffffffffffff8083169082165b6124148161063a620186a0611d548664e8d4a51000611f0f565b94505050505090565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561247b57600080fd5b505afa15801561248f573d6000803e3d6000fd5b505050506040513d60608110156124a557600080fd5b50805160209182015160408051630dfe168160e01b8152905192955090935060009283926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692630dfe1681926004808301939192829003018186803b15801561251657600080fd5b505afa15801561252a573d6000803e3d6000fd5b505050506040513d602081101561254057600080fd5b50516001600160a01b031673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc214156125825750506dffffffffffffffffffffffffffff80831690821661259a565b50506dffffffffffffffffffffffffffff8181169083165b6124148161063a84620186a0611f0f565b600081836126375760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156125fc5781810151838201526020016125e4565b50505050905090810190601f1680156126295780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161264357fe5b0495945050505050565b6000818484111561269f5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156125fc5781810151838201526020016125e4565b505050900390565b604051806040016040528060008152602001600081525090565b6040518061012001604052806000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160008152509056fe596f75206d7573742062696420686967686572207468616e20746865206d696e2062696420616e64207468652068696768657374206269642e42696464696e67206475726174696f6e2073686f756c64206265206265747765656e2031303020616e64203130306b20626c6f636b732e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220eafc2d44a5a859dea61e9df824d8c0e957905e751b1f673b4df0eaa83f31f2da64736f6c6343000705003300000000000000000000000043ccd9ea8f64b8918267f7ee4a071d3e9168f9cd000000000000000000000000831091da075665168e01898c6dac004a867f1e1b0000000000000000000000003f759c3f4cdba32e69ddf607e0cdcc2547061b97000000000000000000000000c66fbe50dd33c9aadd65707f7088d597c86fe00f
Deployed Bytecode
0x6080604052600436106101965760003560e01c80634641257d116100e1578063a87430ba1161008a578063de73465e11610064578063de73465e14610508578063edaf2d2e14610532578063fc0c546a14610547578063fcce48831461055c57610196565b8063a87430ba14610471578063be756afd146104bd578063d3c9727c146104d257610196565b80637d529d72116100bb5780637d529d72146103f357806383579a631461041d578063a694fc3a1461044757610196565b80634641257d1461039657806347ccca02146103ab5780635d453d29146103c057610196565b8063180cb47f11610143578063336b29691161011d578063336b2969146102c7578063379607f51461034f578063454a2ab31461037957610196565b8063180cb47f146102575780632e17de7814610288578063313c06a0146102b257610196565b80630af37ba3116101745780630af37ba3146102035780630eebed9214610218578063137ee36e1461024257610196565b806302a71bde1461019b5780630480c899146101c257806307f193ff146101ee575b600080fd5b3480156101a757600080fd5b506101b061059a565b60408051918252519081900360200190f35b3480156101ce57600080fd5b506101ec600480360360208110156101e557600080fd5b50356105a0565b005b3480156101fa57600080fd5b506101b06105bc565b34801561020f57600080fd5b506101b06105c2565b34801561022457600080fd5b506101ec6004803603602081101561023b57600080fd5b50356105c8565b34801561024e57600080fd5b506101b06105e4565b34801561026357600080fd5b5061026c61064c565b604080516001600160a01b039092168252519081900360200190f35b34801561029457600080fd5b506101ec600480360360208110156102ab57600080fd5b503561065b565b3480156102be57600080fd5b5061026c6108db565b3480156102d357600080fd5b506102f7600480360360408110156102ea57600080fd5b50803590602001356108ff565b60408051998a526001600160a01b0398891660208b0152898101979097526060890195909552608088019390935260a087019190915260c086015290921660e084015261010083019190915251908190036101200190f35b34801561035b57600080fd5b506101ec6004803603602081101561037257600080fd5b5035610974565b6101ec6004803603602081101561038f57600080fd5b5035610e22565b3480156103a257600080fd5b506101ec6112ae565b3480156103b757600080fd5b5061026c61137c565b3480156103cc57600080fd5b506101ec600480360360208110156103e357600080fd5b50356001600160a01b03166113a0565b3480156103ff57600080fd5b506101ec6004803603602081101561041657600080fd5b50356113e6565b34801561042957600080fd5b506101b06004803603602081101561044057600080fd5b503561174b565b34801561045357600080fd5b506101ec6004803603602081101561046a57600080fd5b503561175d565b34801561047d57600080fd5b506104a46004803603602081101561049457600080fd5b50356001600160a01b03166118d7565b6040805192835260208301919091528051918290030190f35b3480156104c957600080fd5b506101b06118f0565b3480156104de57600080fd5b506101ec600480360360608110156104f557600080fd5b50803590602081013590604001356118f6565b34801561051457600080fd5b506101b06004803603602081101561052b57600080fd5b5035611c84565b34801561053e57600080fd5b506101b0611c96565b34801561055357600080fd5b5061026c611d5f565b34801561056857600080fd5b506105866004803603602081101561057f57600080fd5b5035611d83565b604080519115158252519081900360200190f35b60075481565b6006546001600160a01b031633146105b757600080fd5b600555565b60055481565b60025481565b6006546001600160a01b031633146105df57600080fd5b600455565b60006105ee6126a7565b503360009081526003602090815260409182902082518084019093528054808452600190910154918301829052600254610646929161064091670de0b6b3a76400009161063a91611f0f565b90611f6f565b90611fb1565b91505090565b6006546001600160a01b031681565b3233146106a8576040805162461bcd60e51b815260206004820152601660248201527521b7b73a3930b1ba39903737ba1030b63637bbb2b21760511b604482015290519081900360640190fd5b336000908152600360205260409020805482111561070d576040805162461bcd60e51b815260206004820152601d60248201527f556e7374616b696e67206d6f7265207468616e2070726f76696465642e000000604482015290519081900360640190fd5b60006107176105e4565b9050801561075557336108fc61072b6105e4565b6040518115909202916000818181858888f19350505050158015610753573d6000803e3d6000fd5b505b81546107619084611fb1565b80835560025461077f91670de0b6b3a76400009161063a9190611f0f565b6001830155604080517fa9059cbb0000000000000000000000000000000000000000000000000000000081523360048201526024810185905290516001600160a01b037f000000000000000000000000831091da075665168e01898c6dac004a867f1e1b169163a9059cbb9160448083019260209291908290030181600087803b15801561080c57600080fd5b505af1158015610820573d6000803e3d6000fd5b505050506040513d602081101561083657600080fd5b50506001600160a01b037f000000000000000000000000831091da075665168e01898c6dac004a867f1e1b16639dc29fac33610878606461063a88600a611f0f565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156108be57600080fd5b505af11580156108d2573d6000803e3d6000fd5b50505050505050565b7f0000000000000000000000003f759c3f4cdba32e69ddf607e0cdcc2547061b9781565b6000602052816000526040600020818154811061091b57600080fd5b60009182526020909120600990910201805460018201546002830154600384015460048501546005860154600687015460078801546008909801549699506001600160a01b039586169850939692959194909392169089565b3233146109c1576040805162461bcd60e51b815260206004820152601660248201527521b7b73a3930b1ba39903737ba1030b63637bbb2b21760511b604482015290519081900360640190fd5b806109cb81611d83565b610a1c576040805162461bcd60e51b815260206004820152601660248201527f54686973204e46542069736e2774206c69737465642e00000000000000000000604482015290519081900360640190fd5b610a246126c1565b6000807f00000000000000000000000043ccd9ea8f64b8918267f7ee4a071d3e9168f9cd6001600160a01b031663e4214ec0866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610a8b57600080fd5b505afa158015610a9f573d6000803e3d6000fd5b505050506040513d6020811015610ab557600080fd5b505160ff168152602081810192909252604090810160009081208682526001909352205481548110610ae357fe5b6000918252602091829020604080516101208101825260099093029091018054835260018101546001600160a01b0390811694840194909452600281015491830182905260038101546060840181905260048201546080850152600582015460a0850152600682015460c0850152600782015490941660e084015260080154610100830152909250610b7491611ff3565b431015610bc8576040805162461bcd60e51b815260206004820152601560248201527f42696464696e67206861736e277420656e6465642e0000000000000000000000604482015290519081900360640190fd5b600081610100015111610c22576040805162461bcd60e51b815260206004820152601060248201527f4e6f2062696420776173206d6164652e00000000000000000000000000000000604482015290519081900360640190fd5b6000610c42606461063a6005548560c00151611f0f90919063ffffffff16565b905081602001516001600160a01b03166108fc610c6c838560c00151611fb190919063ffffffff16565b6040518115909202916000818181858888f19350505050158015610c94573d6000803e3d6000fd5b507f00000000000000000000000043ccd9ea8f64b8918267f7ee4a071d3e9168f9cd6001600160a01b03166323b872dd308460e00151876040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050600060405180830381600087803b158015610d2157600080fd5b505af1158015610d35573d6000803e3d6000fd5b50505050610d428461204d565b60007f000000000000000000000000831091da075665168e01898c6dac004a867f1e1b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610db157600080fd5b505afa158015610dc5573d6000803e3d6000fd5b505050506040513d6020811015610ddb57600080fd5b505190508015610e0b57610e07610dfe8261063a85670de0b6b3a7640000611f0f565b60025490611ff3565b6002555b600754610e189083611ff3565b6007555050505050565b323314610e6f576040805162461bcd60e51b815260206004820152601660248201527521b7b73a3930b1ba39903737ba1030b63637bbb2b21760511b604482015290519081900360640190fd5b80610e7981611d83565b610eca576040805162461bcd60e51b815260206004820152601660248201527f54686973204e46542069736e2774206c69737465642e00000000000000000000604482015290519081900360640190fd5b60007f00000000000000000000000043ccd9ea8f64b8918267f7ee4a071d3e9168f9cd6001600160a01b031663e4214ec0846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610f3057600080fd5b505afa158015610f44573d6000803e3d6000fd5b505050506040513d6020811015610f5a57600080fd5b505160ff166000818152602081815260408083208784526001909252822054815493945091929091908110610f8b57fe5b6000918252602090912060099091020160018101549091506001600160a01b0316331415611000576040805162461bcd60e51b815260206004820152601f60248201527f596f752063616e27742062696420666f7220796f7572206f776e204e46542e00604482015290519081900360640190fd5b6003810154600282015461101391611ff3565b4310611066576040805162461bcd60e51b815260206004820152601a60248201527f42696464696e672068617320616c726561647920656e6465642e000000000000604482015290519081900360640190fd5b8060040154341015801561107d5750806005015434115b6110b85760405162461bcd60e51b81526004018080602001828103825260398152602001806127206039913960400191505060405180910390fd5b60078101546001600160a01b0316158015906110d75750600581015415155b1561111e57600781015460068201546040516001600160a01b039092169181156108fc0291906000818181858888f1935050505015801561111c573d6000803e3d6000fd5b505b600061113a606461063a60045434611f0f90919063ffffffff16565b346005840181905590915061114f9082611fb1565b600683015560078201805473ffffffffffffffffffffffffffffffffffffffff1916331790556008820154611185906001611ff3565b6008830155604080516370a0823160e01b815230600482015290516000916001600160a01b037f000000000000000000000000831091da075665168e01898c6dac004a867f1e1b16916370a0823191602480820192602092909190829003018186803b1580156111f457600080fd5b505afa158015611208573d6000803e3d6000fd5b505050506040513d602081101561121e57600080fd5b50519050801561124557611241610dfe8261063a85670de0b6b3a7640000611f0f565b6002555b6007546112529083611ff3565b600755600183015460408051888152602081018790523481830152905133926001600160a01b0316917f911d834cc781bcb7a08922b9dd1f1d175c0a0467d9705194c2e200f8ce2786bb919081900360600190a3505050505050565b3233146112fb576040805162461bcd60e51b815260206004820152601660248201527521b7b73a3930b1ba39903737ba1030b63637bbb2b21760511b604482015290519081900360640190fd5b60006113056105e4565b905080611312575061137a565b336108fc61131e6105e4565b6040518115909202916000818181858888f19350505050158015611346573d6000803e3d6000fd5b50336000908152600360205260409020600254815461137291670de0b6b3a76400009161063a91611f0f565b600190910155505b565b7f00000000000000000000000043ccd9ea8f64b8918267f7ee4a071d3e9168f9cd81565b6006546001600160a01b031633146113b757600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b323314611433576040805162461bcd60e51b815260206004820152601660248201527521b7b73a3930b1ba39903737ba1030b63637bbb2b21760511b604482015290519081900360640190fd5b8061143d81611d83565b61148e576040805162461bcd60e51b815260206004820152601660248201527f54686973204e46542069736e2774206c69737465642e00000000000000000000604482015290519081900360640190fd5b6114966126c1565b6000807f00000000000000000000000043ccd9ea8f64b8918267f7ee4a071d3e9168f9cd6001600160a01b031663e4214ec0866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156114fd57600080fd5b505afa158015611511573d6000803e3d6000fd5b505050506040513d602081101561152757600080fd5b505160ff16815260208181019290925260409081016000908120868252600190935220548154811061155557fe5b6000918252602091829020604080516101208101825260099093029091018054835260018101546001600160a01b03908116948401949094526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015490921660e0820152600890910154610100820181905290915015611632576040805162461bcd60e51b815260206004820152600f60248201527f426964732077657265206d6164652e0000000000000000000000000000000000604482015290519081900360640190fd5b6060810151604082015161164591611ff3565b431015611699576040805162461bcd60e51b815260206004820152601560248201527f42696464696e67206861736e277420656e6465642e0000000000000000000000604482015290519081900360640190fd5b7f00000000000000000000000043ccd9ea8f64b8918267f7ee4a071d3e9168f9cd6001600160a01b03166323b872dd308360200151866040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050600060405180830381600087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b505050506117468361204d565b505050565b60016020526000908152604090205481565b3233146117aa576040805162461bcd60e51b815260206004820152601660248201527521b7b73a3930b1ba39903737ba1030b63637bbb2b21760511b604482015290519081900360640190fd5b604080516323b872dd60e01b81523360048201523060248201526044810183905290516001600160a01b037f000000000000000000000000831091da075665168e01898c6dac004a867f1e1b16916323b872dd9160648083019260209291908290030181600087803b15801561181f57600080fd5b505af1158015611833573d6000803e3d6000fd5b505050506040513d602081101561184957600080fd5b50600090506118566105e4565b9050801561189457336108fc61186a6105e4565b6040518115909202916000818181858888f19350505050158015611892573d6000803e3d6000fd5b505b33600090815260036020526040902080546118af9084611ff3565b8082556002546118cd91670de0b6b3a76400009161063a9190611f0f565b6001909101555050565b6003602052600090815260409020805460019091015482565b60045481565b323314611943576040805162461bcd60e51b815260206004820152601660248201527521b7b73a3930b1ba39903737ba1030b63637bbb2b21760511b604482015290519081900360640190fd5b606481101580156119575750620186a08111155b6119925760405162461bcd60e51b81526004018080602001828103825260378152602001806127596037913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b037f00000000000000000000000043ccd9ea8f64b8918267f7ee4a071d3e9168f9cd16916323b872dd91606480830192600092919082900301818387803b158015611a0657600080fd5b505af1158015611a1a573d6000803e3d6000fd5b5050505060007f00000000000000000000000043ccd9ea8f64b8918267f7ee4a071d3e9168f9cd6001600160a01b031663e4214ec0856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611a8457600080fd5b505afa158015611a98573d6000803e3d6000fd5b505050506040513d6020811015611aae57600080fd5b505160ff169050611abd6126c1565b604051806101200160405280868152602001336001600160a01b03168152602001438152602001848152602001858152602001600081526020016000815260200160006001600160a01b03168152602001600081525090506000808381526020019081526020016000208190806001815401808255809150506001900390600052602060002090600902016000909190919091506000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061010082015181600801555050600160008084815260200190815260200160002080549050036001600087815260200190815260200160002081905550336001600160a01b03167f33911c123d51874482101aba465c700f8a8c49c02f4b695f0c5bf6396dbbf35f868486886040518085815260200184815260200183815260200182815260200194505050505060405180910390a25050505050565b60009081526020819052604090205490565b6000611d5a69152d02c7e14af680000061063a611cb161229e565b611d54611cbc61241d565b604080516370a0823160e01b815230600482015290516001600160a01b037f000000000000000000000000831091da075665168e01898c6dac004a867f1e1b16916370a08231916024808301926020929190829003018186803b158015611d2257600080fd5b505afa158015611d36573d6000803e3d6000fd5b505050506040513d6020811015611d4c57600080fd5b505190611f0f565b90611f0f565b905090565b7f000000000000000000000000831091da075665168e01898c6dac004a867f1e1b81565b6000806000807f00000000000000000000000043ccd9ea8f64b8918267f7ee4a071d3e9168f9cd6001600160a01b031663e4214ec0866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611ded57600080fd5b505afa158015611e01573d6000803e3d6000fd5b505050506040513d6020811015611e1757600080fd5b505160ff168152602081019190915260400160002054118015611f095750816000807f00000000000000000000000043ccd9ea8f64b8918267f7ee4a071d3e9168f9cd6001600160a01b031663e4214ec0866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611e9d57600080fd5b505afa158015611eb1573d6000803e3d6000fd5b505050506040513d6020811015611ec757600080fd5b505160ff168152602081810192909252604090810160009081208682526001909352205481548110611ef557fe5b906000526020600020906009020160000154145b92915050565b600082611f1e57506000611f09565b82820282848281611f2b57fe5b0414611f685760405162461bcd60e51b81526004018080602001828103825260218152602001806127906021913960400191505060405180910390fd5b9392505050565b6000611f6883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125ab565b6000611f6883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061264d565b600082820183811015611f68576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60007f00000000000000000000000043ccd9ea8f64b8918267f7ee4a071d3e9168f9cd6001600160a01b031663e4214ec0836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156120b357600080fd5b505afa1580156120c7573d6000803e3d6000fd5b505050506040513d60208110156120dd57600080fd5b505160ff1660008181526020818152604080832086845260019283905290832054815494955090939092908490600019810190811061211857fe5b60009182526020808320600990920290910154835282019290925260400190205580548190600019810190811061214b57fe5b90600052602060002090600902018160016000868152602001908152602001600020548154811061217857fe5b60009182526020909120825460099092020190815560018083015490820180546001600160a01b0392831673ffffffffffffffffffffffffffffffffffffffff199182161790915560028085015490840155600380850154908401556004808501549084015560058085015490840155600680850154908401556007808501549084018054919093169116179055600891820154910155805481908061221a57fe5b600082815260208082206009600019909401938402018281556001818101805473ffffffffffffffffffffffffffffffffffffffff1990811690915560028301859055600383018590556004830185905560058301859055600683018590556007830180549091169055600890910183905592909355948552905250506040812055565b600080600073b4e16d0168e52d35cacd2c6185b44281ec28c9dc6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156122f057600080fd5b505afa158015612304573d6000803e3d6000fd5b505050506040513d606081101561231a57600080fd5b50805160209182015160408051630dfe168160e01b81529051929550909350600092839273b4e16d0168e52d35cacd2c6185b44281ec28c9dc92630dfe1681926004808301939192829003018186803b15801561237657600080fd5b505afa15801561238a573d6000803e3d6000fd5b505050506040513d60208110156123a057600080fd5b50516001600160a01b031673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc214156123e25750506dffffffffffffffffffffffffffff8181169083166123fa565b50506dffffffffffffffffffffffffffff8083169082165b6124148161063a620186a0611d548664e8d4a51000611f0f565b94505050505090565b60008060007f0000000000000000000000003f759c3f4cdba32e69ddf607e0cdcc2547061b976001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561247b57600080fd5b505afa15801561248f573d6000803e3d6000fd5b505050506040513d60608110156124a557600080fd5b50805160209182015160408051630dfe168160e01b8152905192955090935060009283926001600160a01b037f0000000000000000000000003f759c3f4cdba32e69ddf607e0cdcc2547061b971692630dfe1681926004808301939192829003018186803b15801561251657600080fd5b505afa15801561252a573d6000803e3d6000fd5b505050506040513d602081101561254057600080fd5b50516001600160a01b031673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc214156125825750506dffffffffffffffffffffffffffff80831690821661259a565b50506dffffffffffffffffffffffffffff8181169083165b6124148161063a84620186a0611f0f565b600081836126375760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156125fc5781810151838201526020016125e4565b50505050905090810190601f1680156126295780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161264357fe5b0495945050505050565b6000818484111561269f5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156125fc5781810151838201526020016125e4565b505050900390565b604051806040016040528060008152602001600081525090565b6040518061012001604052806000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160008152509056fe596f75206d7573742062696420686967686572207468616e20746865206d696e2062696420616e64207468652068696768657374206269642e42696464696e67206475726174696f6e2073686f756c64206265206265747765656e2031303020616e64203130306b20626c6f636b732e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220eafc2d44a5a859dea61e9df824d8c0e957905e751b1f673b4df0eaa83f31f2da64736f6c63430007050033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000043ccd9ea8f64b8918267f7ee4a071d3e9168f9cd000000000000000000000000831091da075665168e01898c6dac004a867f1e1b0000000000000000000000003f759c3f4cdba32e69ddf607e0cdcc2547061b97000000000000000000000000c66fbe50dd33c9aadd65707f7088d597c86fe00f
-----Decoded View---------------
Arg [0] : _nft (address): 0x43ccD9eA8f64B8918267F7EE4a071D3e9168F9cD
Arg [1] : _token (address): 0x831091dA075665168E01898c6DAC004A867f1e1B
Arg [2] : _lp (address): 0x3f759C3F4cDba32E69dDf607E0CDCC2547061B97
Arg [3] : _gov (address): 0xC66FbE50Dd33c9AAdd65707F7088D597C86fE00F
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000043ccd9ea8f64b8918267f7ee4a071d3e9168f9cd
Arg [1] : 000000000000000000000000831091da075665168e01898c6dac004a867f1e1b
Arg [2] : 0000000000000000000000003f759c3f4cdba32e69ddf607e0cdcc2547061b97
Arg [3] : 000000000000000000000000c66fbe50dd33c9aadd65707f7088d597c86fe00f
Deployed Bytecode Sourcemap
9178:11842:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10430:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11334:101;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11334:101:0;;:::i;:::-;;10336:34;;;;;;;;;;;;;:::i;10118:26::-;;;;;;;;;;;;;:::i;11243:85::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11243:85:0;;:::i;18125:172::-;;;;;;;;;;;;;:::i;10377:18::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;10377:18:0;;;;;;;;;;;;;;18931:713;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18931:713:0;;:::i;9357:34::-;;;;;;;;;;;;;:::i;9930:52::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9930:52:0;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;9930:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15417:1127;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15417:1127:0;;:::i;13592:1769::-;;;;;;;;;;;;;;;;-1:-1:-1;13592:1769:0;;:::i;17741:342::-;;;;;;;;;;;;;:::i;9263:38::-;;;;;;;;;;;;;:::i;11161:76::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11161:76:0;-1:-1:-1;;;;;11161:76:0;;:::i;16599:583::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16599:583:0;;:::i;9989:56::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9989:56:0;;:::i;18375:512::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18375:512:0;;:::i;10242:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10242:37:0;-1:-1:-1;;;;;10242:37:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10304:25;;;;;;;;;;;;;:::i;12631:919::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12631:919:0;;;;;;;;;;;;:::i;17231:136::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17231:136:0;;:::i;20864:151::-;;;;;;;;;;;;;:::i;9308:42::-;;;;;;;;;;;;;:::i;17413:247::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17413:247:0;;:::i;:::-;;;;;;;;;;;;;;;;;;10430:31;;;;:::o;11334:101::-;11131:3;;-1:-1:-1;;;;;11131:3:0;11117:10;:17;11109:26;;;;;;11403:17:::1;:24:::0;11334:101::o;10336:34::-;;;;:::o;10118:26::-;;;;:::o;11243:85::-;11131:3;;-1:-1:-1;;;;;11131:3:0;11117:10;:17;11109:26;;;;;;11304:9:::1;:16:::0;11243:85::o;18125:172::-;18170:4;18186:13;;:::i;:::-;-1:-1:-1;18208:10:0;18202:17;;;;:5;:17;;;;;;;;;18186:33;;;;;;;;;;;;;;;;;;;;;;;;18252:14;;18237:52;;18186:33;18237:40;;18272:4;;18237:30;;:14;:30::i;:::-;:34;;:40::i;:::-;:44;;:52::i;:::-;18230:59;;;18125:172;:::o;10377:18::-;;;-1:-1:-1;;;;;10377:18:0;;:::o;18931:713::-;12414:9;12427:10;12414:23;12406:58;;;;;-1:-1:-1;;;12406:58:0;;;;;;;;;;;;-1:-1:-1;;;12406:58:0;;;;;;;;;;;;;;;19075:10:::1;19052:14;19069:17:::0;;;:5:::1;:17;::::0;;;;19115:10;;19105:20;::::1;;19097:62;;;::::0;;-1:-1:-1;;;19097:62:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;19211:12;19226:15;:13;:15::i;:::-;19211:30:::0;-1:-1:-1;19255:11:0;;19252:56:::1;;19269:10;:36;19289:15;:13;:15::i;:::-;19269:36;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;19252:56;19373:10:::0;;:22:::1;::::0;19388:6;19373:14:::1;:22::i;:::-;19360:35:::0;;;19430:14:::1;::::0;19415:40:::1;::::0;19450:4:::1;::::0;19415:30:::1;::::0;19360:35;19415:14:::1;:30::i;:40::-;19406:6;::::0;::::1;:49:::0;19518:34:::1;::::0;;;;;19533:10:::1;19518:34;::::0;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;19518:5:0::1;:14;::::0;::::1;::::0;:34;;;;;::::1;::::0;;;;;;;;-1:-1:-1;19518:14:0;:34;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;;;;;;19589:5:0::1;:10;;19600;19612:23;19631:3;19612:14;:6:::0;19623:2:::1;19612:10;:14::i;:23::-;19589:47;;;;;;;;;;;;;-1:-1:-1::0;;;;;19589:47:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12475:1;;18931:713:::0;:::o;9357:34::-;;;:::o;9930:52::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9930:52:0;;;;-1:-1:-1;9930:52:0;;;;;;;;;;;;:::o;15417:1127::-;12414:9;12427:10;12414:23;12406:58;;;;;-1:-1:-1;;;12406:58:0;;;;;;;;;;;;-1:-1:-1;;;12406:58:0;;;;;;;;;;;;;;;15473:6:::1;12533:12;12542:2;12533:8;:12::i;:::-;12525:47;;;::::0;;-1:-1:-1;;;12525:47:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;15491:16:::2;;:::i;:::-;15510:18;:44:::0;15529:3:::2;-1:-1:-1::0;;;;;15529:16:0::2;;15546:6;15529:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;-1:-1:-1::0;15529:24:0;15510:44:::2;;::::0;;15529:24:::2;15510:44:::0;;::::2;::::0;;;;;;;;-1:-1:-1;15510:44:0;;;15555:35;;;:27:::2;:35:::0;;;;;15510:81;;;::::2;;;;;;::::0;;;::::2;::::0;;;;15491:100:::2;::::0;;::::2;::::0;::::2;::::0;;15510:81:::2;::::0;;::::2;::::0;;::::2;15491:100:::0;;;;::::2;::::0;::::2;::::0;-1:-1:-1;;;;;15491:100:0;;::::2;::::0;;::::2;::::0;;;;::::2;::::0;::::2;::::0;;;;;;;::::2;::::0;::::2;::::0;;;;;;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;::::2;::::0;;;::::2;::::0;;;;::::2;;::::0;::::2;::::0;;;;;-1:-1:-1;15668:23:0::2;::::0;:11:::2;:23::i;:::-;15652:12;:39;;15644:73;;;::::0;;-1:-1:-1;;;15644:73:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;15800:1;15787;:10;;;:14;15779:43;;;::::0;;-1:-1:-1;;;15779:43:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;15891:8;15902:53;15951:3;15902:44;15928:17;;15902:1;:21;;;:25;;:44;;;;:::i;:53::-;15891:64;;15966:1;:8;;;-1:-1:-1::0;;;;;15966:17:0::2;:49;15984:30;16010:3;15984:1;:21;;;:25;;:30;;;;:::i;:::-;15966:49;::::0;;::::2;::::0;;::::2;::::0;::::2;::::0;;;;;;::::2;;;;;;;;;;;;;::::0;::::2;;;;;;16082:3;-1:-1:-1::0;;;;;16082:16:0::2;;16107:4;16114:1;:15;;;16131:6;16082:56;;;;;;;;;;;;;-1:-1:-1::0;;;;;16082:56:0::2;;;;;;-1:-1:-1::0;;;;;16082:56:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;16185:21;16199:6;16185:13;:21::i;:::-;16239:17;16259:5;-1:-1:-1::0;;;;;16259:15:0::2;;16283:4;16259:30;;;;;;;;;;;;;-1:-1:-1::0;;;;;16259:30:0::2;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;-1:-1:-1::0;16259:30:0;;-1:-1:-1;16303:16:0;;16300:147:::2;;16352:83;16389:31;16407:12:::0;16389:13:::2;:3:::0;16397:4:::2;16389:7;:13::i;:31::-;16352:14;::::0;;:18:::2;:83::i;:::-;16335:14;:100:::0;16300:147:::2;16508:19;::::0;:28:::2;::::0;16532:3;16508:23:::2;:28::i;:::-;16486:19;:50:::0;-1:-1:-1;;;;;15417:1127:0:o;13592:1769::-;12414:9;12427:10;12414:23;12406:58;;;;;-1:-1:-1;;;12406:58:0;;;;;;;;;;;;-1:-1:-1;;;12406:58:0;;;;;;;;;;;;;;;13654:6:::1;12533:12;12542:2;12533:8;:12::i;:::-;12525:47;;;::::0;;-1:-1:-1;;;12525:47:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;13672:13:::2;13688:3;-1:-1:-1::0;;;;;13688:16:0::2;;13705:6;13688:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;-1:-1:-1::0;13688:24:0;13672:40:::2;;13723:17;13743:28:::0;;;13688:24:::2;13743:28:::0;;;;;;;13772:35;;;:27:::2;:35:::0;;;;;;13743:65;;13672:40;;-1:-1:-1;13723:17:0;;13743:28;;13772:35;13743:65;::::2;;;;;;::::0;;;::::2;::::0;;;::::2;::::0;;::::2;;13893:8;::::0;::::2;::::0;13743:65;;-1:-1:-1;;;;;;13893:8:0::2;13879:10;:22;;13871:66;;;::::0;;-1:-1:-1;;;13871:66:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;14028:10;::::0;::::2;::::0;14016:7:::2;::::0;::::2;::::0;:23:::2;::::0;:11:::2;:23::i;:::-;14001:12;:38;13993:77;;;::::0;;-1:-1:-1;;;13993:77:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;14161:1;:8;;;14148:9;:21;;:49;;;;;14185:1;:12;;;14173:9;:24;14148:49;14140:119;;;;-1:-1:-1::0;;;14140:119:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14350:15;::::0;::::2;::::0;-1:-1:-1;;;;;14350:15:0::2;:29:::0;;::::2;::::0;:50:::2;;-1:-1:-1::0;14383:12:0::2;::::0;::::2;::::0;:17;::::2;14350:50;14347:128;;;14416:15;::::0;::::2;::::0;14441:21:::2;::::0;::::2;::::0;14416:47:::2;::::0;-1:-1:-1;;;;;14416:15:0;;::::2;::::0;:47;::::2;;;::::0;14441:21;14416:15:::2;:47:::0;:15;:47;14441:21;14416:15;:47;::::2;;;;;;;;;;;;;::::0;::::2;;;;;;14347:128;14612:8;14623:33;14652:3;14623:24;14637:9;;14623;:13;;:24;;;;:::i;:33::-;14682:9;14667:12;::::0;::::2;:24:::0;;;14612:44;;-1:-1:-1;14726:18:0::2;::::0;14612:44;14726:13:::2;:18::i;:::-;14702:21;::::0;::::2;:42:::0;14755:15:::2;::::0;::::2;:28:::0;;-1:-1:-1;;14755:28:0::2;14773:10;14755:28;::::0;;14807:10:::2;::::0;::::2;::::0;:17:::2;::::0;14755:28;14807:14:::2;:17::i;:::-;14794:10;::::0;::::2;:30:::0;14899::::2;::::0;;-1:-1:-1;;;14899:30:0;;14923:4:::2;14899:30;::::0;::::2;::::0;;;14879:17:::2;::::0;-1:-1:-1;;;;;14899:5:0::2;:15;::::0;::::2;::::0;:30;;;;;::::2;::::0;;;;;;;;;:15;:30;::::2;;::::0;::::2;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;-1:-1:-1::0;14899:30:0;;-1:-1:-1;14943:16:0;;14940:147:::2;;14992:83;15029:31;15047:12:::0;15029:13:::2;:3:::0;15037:4:::2;15029:7;:13::i;14992:83::-;14975:14;:100:::0;14940:147:::2;15148:19;::::0;:28:::2;::::0;15172:3;15148:23:::2;:28::i;:::-;15126:19;:50:::0;15241:8:::2;::::0;::::2;::::0;15220:133:::2;::::0;;;;;::::2;::::0;::::2;::::0;;;15333:9:::2;15220:133:::0;;;;;;15264:10:::2;::::0;-1:-1:-1;;;;;15241:8:0::2;::::0;15220:133:::2;::::0;;;;;;;;::::2;12583:1;;;;12475::::1;13592:1769:::0;:::o;17741:342::-;12414:9;12427:10;12414:23;12406:58;;;;;-1:-1:-1;;;12406:58:0;;;;;;;;;;;;-1:-1:-1;;;12406:58:0;;;;;;;;;;;;;;;17789:12:::1;17804:15;:13;:15::i;:::-;17789:30:::0;-1:-1:-1;17833:12:0;17830:27:::1;;17848:7;;;17830:27;17905:10;:36;17925:15;:13;:15::i;:::-;17905:36;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;18004:10:0::1;17981:14;17998:17:::0;;;:5:::1;:17;::::0;;;;18050:14:::1;::::0;18035:10;;:40:::1;::::0;18070:4:::1;::::0;18035:30:::1;::::0;:14:::1;:30::i;:40::-;18026:6;::::0;;::::1;:49:::0;-1:-1:-1;12475:1:0::1;17741:342::o:0;9263:38::-;;;:::o;11161:76::-;11131:3;;-1:-1:-1;;;;;11131:3:0;11117:10;:17;11109:26;;;;;;11219:3:::1;:10:::0;;-1:-1:-1;;11219:10:0::1;-1:-1:-1::0;;;;;11219:10:0;;;::::1;::::0;;;::::1;::::0;;11161:76::o;16599:583::-;12414:9;12427:10;12414:23;12406:58;;;;;-1:-1:-1;;;12406:58:0;;;;;;;;;;;;-1:-1:-1;;;12406:58:0;;;;;;;;;;;;;;;16659:6:::1;12533:12;12542:2;12533:8;:12::i;:::-;12525:47;;;::::0;;-1:-1:-1;;;12525:47:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;16677:16:::2;;:::i;:::-;16696:18;:44:::0;16715:3:::2;-1:-1:-1::0;;;;;16715:16:0::2;;16732:6;16715:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;-1:-1:-1::0;16715:24:0;16696:44:::2;;::::0;;16715:24:::2;16696:44:::0;;::::2;::::0;;;;;;;;-1:-1:-1;16696:44:0;;;16741:35;;;:27:::2;:35:::0;;;;;16696:81;;;::::2;;;;;;::::0;;;::::2;::::0;;;;16677:100:::2;::::0;;::::2;::::0;::::2;::::0;;16696:81:::2;::::0;;::::2;::::0;;::::2;16677:100:::0;;;;::::2;::::0;::::2;::::0;-1:-1:-1;;;;;16677:100:0;;::::2;::::0;;::::2;::::0;;;;::::2;::::0;::::2;::::0;;;;;;;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;::::2;::::0;;;::::2;::::0;;;;::::2;::::0;;::::2;::::0;::::2;::::0;;;;;;;-1:-1:-1;16836:15:0;16828:43:::2;;;::::0;;-1:-1:-1;;;16828:43:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;16960:10;::::0;::::2;::::0;16948:7:::2;::::0;::::2;::::0;:23:::2;::::0;:11:::2;:23::i;:::-;16932:12;:39;;16924:73;;;::::0;;-1:-1:-1;;;16924:73:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;17057:3;-1:-1:-1::0;;;;;17057:16:0::2;;17082:4;17089:1;:8;;;17099:6;17057:49;;;;;;;;;;;;;-1:-1:-1::0;;;;;17057:49:0::2;;;;;;-1:-1:-1::0;;;;;17057:49:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;17153:21;17167:6;17153:13;:21::i;:::-;12583:1;12475::::1;16599:583:::0;:::o;9989:56::-;;;;;;;;;;;;;:::o;18375:512::-;12414:9;12427:10;12414:23;12406:58;;;;;-1:-1:-1;;;12406:58:0;;;;;;;;;;;;-1:-1:-1;;;12406:58:0;;;;;;;;;;;;;;;18485:53:::1;::::0;;-1:-1:-1;;;18485:53:0;;18504:10:::1;18485:53;::::0;::::1;::::0;18524:4:::1;18485:53:::0;;;;;;;;;;;;-1:-1:-1;;;;;18485:5:0::1;:18;::::0;::::1;::::0;:53;;;;;::::1;::::0;;;;;;;;-1:-1:-1;18485:18:0;:53;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;18590:12:0::1;::::0;-1:-1:-1;18605:15:0::1;:13;:15::i;:::-;18590:30:::0;-1:-1:-1;18634:11:0;;18631:56:::1;;18648:10;:36;18668:15;:13;:15::i;:::-;18648:36;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18631:56;18762:10;18739:14;18756:17:::0;;;:5:::1;:17;::::0;;;;18797:10;;:22:::1;::::0;18812:6;18797:14:::1;:22::i;:::-;18784:35:::0;;;18854:14:::1;::::0;18839:40:::1;::::0;18874:4:::1;::::0;18839:30:::1;::::0;18784:35;18839:14:::1;:30::i;:40::-;18830:6;::::0;;::::1;:49:::0;-1:-1:-1;;18375:512:0:o;10242:37::-;;;;;;;;;;;;;;;;;;;:::o;10304:25::-;;;;:::o;12631:919::-;12414:9;12427:10;12414:23;12406:58;;;;;-1:-1:-1;;;12406:58:0;;;;;;;;;;;;-1:-1:-1;;;12406:58:0;;;;;;;;;;;;;;;12823:3:::1;12807:12;:19;;:45;;;;;12846:6;12830:12;:22;;12807:45;12799:113;;;;-1:-1:-1::0;;;12799:113:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12974:51;::::0;;-1:-1:-1;;;12974:51:0;;12991:10:::1;12974:51;::::0;::::1;::::0;13011:4:::1;12974:51:::0;;;;;;;;;;;;-1:-1:-1;;;;;12974:3:0::1;:16;::::0;::::1;::::0;:51;;;;;-1:-1:-1;;12974:51:0;;;;;;;-1:-1:-1;12974:16:0;:51;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13067:13;13083:3;-1:-1:-1::0;;;;;13083:16:0::1;;13100:6;13083:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;13083:24:0;13067:40:::1;;::::0;-1:-1:-1;13118:16:0::1;;:::i;:::-;13137:85;;;;;;;;13145:6;13137:85;;;;13153:10;-1:-1:-1::0;;;;;13137:85:0::1;;;;;13165:12;13137:85;;;;13179:12;13137:85;;;;13193:7;13137:85;;;;13202:1;13137:85;;;;13205:1;13137:85;;;;13216:1;-1:-1:-1::0;;;;;13137:85:0::1;;;;;13220:1;13137:85;;::::0;13118:104:::1;;13235:18;:28:::0;13254:8:::1;13235:28;;;;;;;;;;;13269:1;13235:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;13235:36:0::1;;;;;-1:-1:-1::0;;;;;13235:36:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;13235:36:0::1;;;;;-1:-1:-1::0;;;;;13235:36:0::1;;;;;;;;;;;;;;;;13358:1;13320:18;:28:::0;13339:8:::1;13320:28;;;;;;;;;;;:35;;;;:39;13282:27;:35;13310:6;13282:35;;;;;;;;;;;:77;;;;13428:10;-1:-1:-1::0;;;;;13403:139:0::1;;13453:6;13474:8;13497:12;13524:7;13403:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12475:1;;12631:919:::0;;;:::o;17231:136::-;17300:4;17323:29;;;;;;;;;;:36;;17231:136::o;20864:151::-;20901:4;20924:83;21002:4;20924:73;20983:13;:11;:13::i;:::-;20924:54;20959:18;:16;:18::i;:::-;20924:30;;;-1:-1:-1;;;20924:30:0;;20948:4;20924:30;;;;;;-1:-1:-1;;;;;20924:5:0;:15;;;;:30;;;;;;;;;;;;;;:15;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20924:30:0;;:34;:54::i;:::-;:58;;:73::i;:83::-;20917:90;;20864:151;:::o;9308:42::-;;;:::o;17413:247::-;17464:4;17541:1;17487:18;:44;17506:3;-1:-1:-1;;;;;17506:16:0;;17523:6;17506:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17506:24:0;17487:44;;;;17506:24;17487:44;;;;;;;;-1:-1:-1;17487:44:0;:51;:55;:165;;;;;17646:6;17555:18;:44;17574:3;-1:-1:-1;;;;;17574:16:0;;17591:6;17574:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17574:24:0;17555:44;;;;17574:24;17555:44;;;;;;;;;;;-1:-1:-1;17555:44:0;;;17600:35;;;:27;:35;;;;;17555:81;;;;;;;;;;;;;;;;;;:87;;;:97;17487:165;17480:172;17413:247;-1:-1:-1;;17413:247:0:o;5995:471::-;6053:7;6298:6;6294:47;;-1:-1:-1;6328:1:0;6321:8;;6294:47;6365:5;;;6369:1;6365;:5;:1;6389:5;;;;;:10;6381:56;;;;-1:-1:-1;;;6381:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6457:1;5995:471;-1:-1:-1;;;5995:471:0:o;6942:132::-;7000:7;7027:39;7031:1;7034;7027:39;;;;;;;;;;;;;;;;;:3;:39::i;5105:136::-;5163:7;5190:43;5194:1;5197;5190:43;;;;;;;;;;;;;;;;;:3;:43::i;4641:181::-;4699:7;4731:5;;;4755:6;;;;4747:46;;;;;-1:-1:-1;;;4747:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11482:822;11536:13;11552:3;-1:-1:-1;;;;;11552:16:0;;11569:6;11552:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11552:24:0;11536:40;;11587:34;11624:28;;;11552:24;11624:28;;;;;;;11842:35;;;:27;:35;;;;;;;;11804:23;;11536:40;;-1:-1:-1;11624:28:0;;11842:35;;11587:34;11624:28;;-1:-1:-1;;11804:27:0;;;11787:45;;;;;;;;;;;;;;;;;;;;;:51;11759:80;;;;;;;;;;;;:118;12061:23;;12044:16;;-1:-1:-1;;12061:27:0;;;12044:45;;;;;;;;;;;;;;;;11988:16;12005:27;:35;12033:6;12005:35;;;;;;;;;;;;11988:53;;;;;;;;;;;;;;;;:101;;:53;;;;;:101;;;;;;;;;;;;;-1:-1:-1;;;;;11988:101:0;;;-1:-1:-1;;11988:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12163:22;;;;;;;;;;;;;;;;;;-1:-1:-1;;12163:22:0;;;;;;;;;;;;;;;;-1:-1:-1;;12163:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12259:35;;;;;-1:-1:-1;;12259:35:0;;;12252:42;11482:822::o;19720:595::-;19764:4;19781:17;19800;9526:42;-1:-1:-1;;;;;19823:25:0;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19823:27:0;;;;;;;;19927:22;;-1:-1:-1;;;19927:22:0;;;;19823:27;;-1:-1:-1;19823:27:0;;-1:-1:-1;19861:16:0;;;;9526:42;;19927:20;;:22;;;;;19823:27;;19927:22;;;;;9526:42;19927:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19927:22:0;-1:-1:-1;;;;;19919:30:0;9422:42;19919:30;19916:212;;;-1:-1:-1;;19965:22:0;20002:23;;;;19965:22;;19916:212;;;-1:-1:-1;;20056:23:0;;;;;20094:22;;19916:212;20261:46;20296:10;20261:30;20287:3;20261:21;:11;20277:4;20261:15;:21::i;:46::-;20254:53;;;;;;19720:595;:::o;20356:460::-;20405:4;20422:17;20441;20464:2;-1:-1:-1;;;;;20464:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20464:16:0;;;;;;;;20560:11;;-1:-1:-1;;;20560:11:0;;;;20464:16;;-1:-1:-1;20464:16:0;;-1:-1:-1;20493:15:0;;;;-1:-1:-1;;;;;20560:2:0;:9;;;;:11;;;;;20464:16;;20560:11;;;;;:9;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20560:11:0;-1:-1:-1;;;;;20552:19:0;9422:42;20552:19;20549:203;;;-1:-1:-1;;20587:22:0;;;;;20624:24;;20549:203;;;-1:-1:-1;;20679:24:0;20718:22;;;;20679:24;;20549:203;20771:37;20795:12;20771:19;:10;20786:3;20771:14;:19::i;7570:278::-;7656:7;7691:12;7684:5;7676:28;;;;-1:-1:-1;;;7676:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7715:9;7731:1;7727;:5;;;;;;;7570:278;-1:-1:-1;;;;;7570:278:0:o;5544:192::-;5630:7;5666:12;5658:6;;;;5650:29;;;;-1:-1:-1;;;5650:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5702:5:0;;;5544:192::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
ipfs://eafc2d44a5a859dea61e9df824d8c0e957905e751b1f673b4df0eaa83f31f2da
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.