More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 797 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim Reward | 12347329 | 1271 days ago | IN | 0 ETH | 0.00260693 | ||||
Unstake | 12320827 | 1275 days ago | IN | 0 ETH | 0.00503957 | ||||
Update Score Eth | 12320818 | 1275 days ago | IN | 0 ETH | 0.00097484 | ||||
Update Score Eth | 12320771 | 1275 days ago | IN | 0 ETH | 0.00201726 | ||||
Update Offer | 12320759 | 1275 days ago | IN | 0 ETH | 0.00139762 | ||||
Stake | 12320754 | 1275 days ago | IN | 0 ETH | 0.0053045 | ||||
Update Offer | 12320750 | 1275 days ago | IN | 0 ETH | 0.00169795 | ||||
Update Offer | 12320745 | 1275 days ago | IN | 0 ETH | 0.00141798 | ||||
Stake | 12320737 | 1275 days ago | IN | 0 ETH | 0.00541059 | ||||
Update Offer | 12320732 | 1275 days ago | IN | 0 ETH | 0.00158849 | ||||
Update Offer | 12320730 | 1275 days ago | IN | 0 ETH | 0.00173129 | ||||
Update Score Eth | 12320584 | 1276 days ago | IN | 0 ETH | 0.00053736 | ||||
Update Score Eth | 12320514 | 1276 days ago | IN | 0 ETH | 0.00120737 | ||||
Unstake | 12320497 | 1276 days ago | IN | 0 ETH | 0.00386416 | ||||
Update Score Eth | 12320489 | 1276 days ago | IN | 0 ETH | 0.00132622 | ||||
Unstake | 12319147 | 1276 days ago | IN | 0 ETH | 0.00498326 | ||||
Unstake | 12319092 | 1276 days ago | IN | 0 ETH | 0.0049014 | ||||
Claim Reward | 12319092 | 1276 days ago | IN | 0 ETH | 0.00490099 | ||||
Claim Reward | 12318940 | 1276 days ago | IN | 0 ETH | 0.00225958 | ||||
Claim Reward | 12318938 | 1276 days ago | IN | 0 ETH | 0.00288382 | ||||
Claim Reward | 12317343 | 1276 days ago | IN | 0 ETH | 0.00433286 | ||||
Claim Score Eth | 12317267 | 1276 days ago | IN | 0 ETH | 0.00369935 | ||||
Claim Score Eth | 12314522 | 1276 days ago | IN | 0 ETH | 0.00178299 | ||||
Claim Reward | 12313615 | 1277 days ago | IN | 0 ETH | 0.00266161 | ||||
Claim Score Eth | 12313207 | 1277 days ago | IN | 0 ETH | 0.00210086 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
12319147 | 1276 days ago | 0.00001429 ETH | ||||
12319092 | 1276 days ago | 0.07635799 ETH | ||||
12317267 | 1276 days ago | 0.03091334 ETH | ||||
12314522 | 1276 days ago | 0.02396075 ETH | ||||
12313207 | 1277 days ago | 0.07998874 ETH | ||||
12306586 | 1278 days ago | 0.01425189 ETH | ||||
12301323 | 1278 days ago | 0.01448608 ETH | ||||
12293425 | 1280 days ago | 0.05313561 ETH | ||||
12292988 | 1280 days ago | 0.03214641 ETH | ||||
12286410 | 1281 days ago | 0.00000037 ETH | ||||
12286390 | 1281 days ago | 0.01681366 ETH | ||||
12264270 | 1284 days ago | 0.03019732 ETH | ||||
12263913 | 1284 days ago | 0.00283762 ETH | ||||
12263552 | 1284 days ago | 0.15414576 ETH | ||||
12257146 | 1285 days ago | 0.06097183 ETH | ||||
12255321 | 1286 days ago | 0.0127995 ETH | ||||
12254021 | 1286 days ago | 0.03317075 ETH | ||||
12247779 | 1287 days ago | 0.06614816 ETH | ||||
12234655 | 1289 days ago | 0.00590631 ETH | ||||
12227556 | 1290 days ago | 0.0003711 ETH | ||||
12226370 | 1290 days ago | 0.00561391 ETH | ||||
12223031 | 1291 days ago | 0.00389812 ETH | ||||
12217301 | 1291 days ago | 0.02803411 ETH | ||||
12213615 | 1292 days ago | 0.22865046 ETH | ||||
12211351 | 1292 days ago | 0.21388494 ETH |
Loading...
Loading
Contract Name:
PRDZstakingV2
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-12-12 */ /** *Submitted for verification at Etherscan.io on 2020-12-12 */ /** *Submitted for verification at Etherscan.io on 2020-12-11 */ /** *Submitted for verification at Etherscan.io on 2020-12-10 */ pragma solidity 0.6.12; // SPDX-License-Identifier: No License /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a * b; assert(a == 0 || c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } /** * @dev Library for managing * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive * types. * * Sets have the following properties: * * - Elements are added, removed, and checked for existence in constant time * (O(1)). * - Elements are enumerated in O(n). No guarantees are made on the ordering. * * ``` * contract Example { * // Add the library methods * using EnumerableSet for EnumerableSet.AddressSet; * * // Declare a set state variable * EnumerableSet.AddressSet private mySet; * } * ``` * * As of v3.0.0, only sets of type `address` (`AddressSet`) and `uint256` * (`UintSet`) are supported. */ library EnumerableSet { // To implement this library for multiple types with as little code // repetition as possible, we write it in terms of a generic Set type with // bytes32 values. // The Set implementation uses private functions, and user-facing // implementations (such as AddressSet) are just wrappers around the // underlying Set. // This means that we can only create new EnumerableSets for types that fit // in bytes32. struct Set { // Storage of set values bytes32[] _values; // Position of the value in the `values` array, plus 1 because index 0 // means a value is not in the set. mapping (bytes32 => uint256) _indexes; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function _add(Set storage set, bytes32 value) private returns (bool) { if (!_contains(set, value)) { set._values.push(value); // The value is stored at length-1, but we add 1 to all indexes // and use 0 as a sentinel value set._indexes[value] = set._values.length; return true; } else { return false; } } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function _remove(Set storage set, bytes32 value) private returns (bool) { // We read and store the value's index to prevent multiple reads from the same storage slot uint256 valueIndex = set._indexes[value]; if (valueIndex != 0) { // Equivalent to contains(set, value) // To delete an element from the _values array in O(1), we swap the element to delete with the last one in // the array, and then remove the last element (sometimes called as 'swap and pop'). // This modifies the order of the array, as noted in {at}. uint256 toDeleteIndex = valueIndex - 1; uint256 lastIndex = set._values.length - 1; // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement. bytes32 lastvalue = set._values[lastIndex]; // Move the last value to the index where the value to delete is set._values[toDeleteIndex] = lastvalue; // Update the index for the moved value set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based // Delete the slot where the moved value was stored set._values.pop(); // Delete the index for the deleted slot delete set._indexes[value]; return true; } else { return false; } } /** * @dev Returns true if the value is in the set. O(1). */ function _contains(Set storage set, bytes32 value) private view returns (bool) { return set._indexes[value] != 0; } /** * @dev Returns the number of values on the set. O(1). */ function _length(Set storage set) private view returns (uint256) { return set._values.length; } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function _at(Set storage set, uint256 index) private view returns (bytes32) { require(set._values.length > index, "EnumerableSet: index out of bounds"); return set._values[index]; } // AddressSet struct AddressSet { Set _inner; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function add(AddressSet storage set, address value) internal returns (bool) { return _add(set._inner, bytes32(uint256(value))); } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function remove(AddressSet storage set, address value) internal returns (bool) { return _remove(set._inner, bytes32(uint256(value))); } /** * @dev Returns true if the value is in the set. O(1). */ function contains(AddressSet storage set, address value) internal view returns (bool) { return _contains(set._inner, bytes32(uint256(value))); } /** * @dev Returns the number of values in the set. O(1). */ function length(AddressSet storage set) internal view returns (uint256) { return _length(set._inner); } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function at(AddressSet storage set, uint256 index) internal view returns (address) { return address(uint256(_at(set._inner, index))); } // UintSet struct UintSet { Set _inner; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function add(UintSet storage set, uint256 value) internal returns (bool) { return _add(set._inner, bytes32(value)); } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function remove(UintSet storage set, uint256 value) internal returns (bool) { return _remove(set._inner, bytes32(value)); } /** * @dev Returns true if the value is in the set. O(1). */ function contains(UintSet storage set, uint256 value) internal view returns (bool) { return _contains(set._inner, bytes32(value)); } /** * @dev Returns the number of values on the set. O(1). */ function length(UintSet storage set) internal view returns (uint256) { return _length(set._inner); } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function at(UintSet storage set, uint256 index) internal view returns (uint256) { return uint256(_at(set._inner, index)); } } /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) onlyOwner public { require(newOwner != address(0)); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } } interface Token { function transferFrom(address, address, uint) external returns (bool); function transfer(address, uint) external returns (bool); } contract PRDZstakingV2 is Ownable { using SafeMath for uint; using EnumerableSet for EnumerableSet.AddressSet; event RewardsClaimed(address indexed holder, uint amount , uint indexed time); event TokenStaked(address indexed holder, uint amount, uint indexed time); event AllTokenStaked(uint amount, uint indexed time); event OfferStaked(uint amount, uint indexed time); event AllTokenUnStaked(uint amount, uint indexed time); event AllTokenClaimed(uint amount, uint indexed time); event TokenUnstaked(address indexed holder, uint amount, uint indexed time); event TokenBurned(uint amount, uint indexed time); event EthClaimed(address indexed holder, uint amount, uint indexed time); // PRDZ token contract address address public constant tokenAddress = 0x4e085036A1b732cBe4FfB1C12ddfDd87E7C3664d; address public constant burnAddress = 0x0000000000000000000000000000000000000000; // reward rate 80.00% per year uint public constant rewardRate = 8000; uint public constant scoreRate = 1000; uint public constant rewardInterval = 365 days; uint public constant scoreInterval = 3 days; uint public scoreEth = 1000; // unstaking fee 2.00 percent uint public constant unstakingFeeRate = 250; // unstaking possible after 72 hours uint public constant cliffTime = 72 hours; uint public totalClaimedRewards = 0; uint public totalStakedToken = 0; uint public totalUnstakedToken = 0; uint public totalEthDeposited = 0; uint public totalEthClaimed = 0; uint public totalFeeCollected = 0; uint public totalOfferRaise = 0; uint public stakingOffer = 1607878800; uint public stakingOfferRaise = 250; EnumerableSet.AddressSet private holders; mapping (address => uint) public depositedTokens; mapping (address => uint) public stakingTime; mapping (address => uint) public lastClaimedTime; mapping (address => uint) public totalEarnedTokens; mapping (address => uint) public totalScore; mapping (address => uint) public totalOfferUser; mapping (address => uint) public lastScoreTime; /* Updates Total Reward and transfer User Reward on Stake and Unstake. */ function updateAccount(address account) private { uint pendingDivs = getPendingReward(account); if (pendingDivs > 0) { require(Token(tokenAddress).transfer(account, pendingDivs), "Could not transfer tokens."); totalEarnedTokens[account] = totalEarnedTokens[account].add(pendingDivs); totalClaimedRewards = totalClaimedRewards.add(pendingDivs); emit RewardsClaimed(account, pendingDivs, now); emit AllTokenClaimed(totalClaimedRewards, now); } lastClaimedTime[account] = now; } /* Updates Last Score Time for Users. */ function updateLastScoreTime(address _holder) private { if(lastScoreTime[_holder] > 0){ uint timeDiff = 0 ; timeDiff = now.sub(lastScoreTime[_holder]).div(2); lastScoreTime[_holder] = now.sub(timeDiff) ; }else{ lastScoreTime[_holder] = now ; } } /* Calculate realtime ETH Reward based on User Score. */ function getScoreEth(address _holder) public view returns (uint) { uint timeDiff = 0 ; if(lastScoreTime[_holder] > 0){ timeDiff = now.sub(lastScoreTime[_holder]).div(2); } uint stakedAmount = depositedTokens[_holder]; uint score = stakedAmount .mul(scoreRate) .mul(timeDiff) .div(scoreInterval) .div(1e4); uint eth = score.div(scoreEth); return eth; } /* Calculate realtime User Score. */ function getStakingScore(address _holder) public view returns (uint) { uint timeDiff = 0 ; if(lastScoreTime[_holder] > 0){ timeDiff = now.sub(lastScoreTime[_holder]).div(2); } uint stakedAmount = depositedTokens[_holder]; uint score = stakedAmount .mul(scoreRate) .mul(timeDiff) .div(scoreInterval) .div(1e4); return score; } /* Calculate realtime User Staking Score. */ function getPendingReward(address _holder) public view returns (uint) { if (!holders.contains(_holder)) return 0; if (depositedTokens[_holder] == 0) return 0; uint timeDiff = now.sub(lastClaimedTime[_holder]); uint stakedAmount = depositedTokens[_holder]; uint pendingDivs = stakedAmount .mul(rewardRate) .mul(timeDiff) .div(rewardInterval) .div(1e4); return pendingDivs; } /* Fetch realtime Number of Token Claimed. */ function getTotalClaimed() public view returns (uint) { return totalClaimedRewards; } /* Fetch realtime Number of User Staked. */ function getNumberOfHolders() public view returns (uint) { return holders.length(); } /* Fetch realtime Token User Staked. */ function getTotalStaked() public view returns (uint) { return totalStakedToken; } /* Fetch realtime Token User UnStaked. */ function getTotalUnStaked() public view returns (uint) { return totalUnstakedToken; } /* Fetch realtime Token Gain from UnstakeFee. */ function getTotalFeeCollected() public view returns (uint) { return totalFeeCollected; } /* Record Staking with Offer check. */ function stake(uint amountToStake) public { require(amountToStake > 0, "Cannot deposit 0 Tokens"); require(Token(tokenAddress).transferFrom(msg.sender, address(this), amountToStake), "Insufficient Token Allowance"); emit TokenStaked(msg.sender, amountToStake, now); updateAccount(msg.sender); updateLastScoreTime(msg.sender); totalStakedToken = totalStakedToken.add(amountToStake); if(stakingOffer > now){ uint offerRaise = amountToStake.mul(stakingOfferRaise).div(1e4); totalOfferRaise = totalOfferRaise.add(offerRaise); totalOfferUser[msg.sender] = offerRaise ; emit OfferStaked(totalStakedToken, now); amountToStake = amountToStake.add(offerRaise); } emit AllTokenStaked(totalStakedToken, now); depositedTokens[msg.sender] = depositedTokens[msg.sender].add(amountToStake); if (!holders.contains(msg.sender)) { holders.add(msg.sender); stakingTime[msg.sender] = now; } } /* Record UnStaking. */ function unstake(uint amountToWithdraw) public { require(depositedTokens[msg.sender] >= amountToWithdraw, "Invalid amount to withdraw"); updateAccount(msg.sender); uint fee = amountToWithdraw.mul(unstakingFeeRate).div(1e4); uint amountAfterFee = amountToWithdraw.sub(fee); require(Token(tokenAddress).transfer(msg.sender, amountAfterFee), "Could not transfer tokens."); emit TokenUnstaked(msg.sender, amountAfterFee,now); require(Token(tokenAddress).transfer(burnAddress, fee), "Could not burn fee."); emit TokenBurned(fee,now); totalUnstakedToken = totalUnstakedToken.add(amountAfterFee); totalFeeCollected = totalFeeCollected.add(fee); emit AllTokenUnStaked(totalUnstakedToken, now); uint timeDiff = 0 ; if(lastScoreTime[msg.sender] > 0){ timeDiff = now.sub(lastScoreTime[msg.sender]).div(2); } uint score = amountAfterFee .mul(scoreRate) .mul(timeDiff) .div(scoreInterval) .div(1e4); uint eth = score.div(scoreEth); totalEthClaimed = totalEthClaimed.add(eth); msg.sender.transfer(eth); emit EthClaimed(msg.sender ,eth,now); lastScoreTime[msg.sender] = now; depositedTokens[msg.sender] = depositedTokens[msg.sender].sub(amountToWithdraw); if (holders.contains(msg.sender) && depositedTokens[msg.sender] == 0) { holders.remove(msg.sender); } } /* Claim Reward. */ function claimReward() public { updateAccount(msg.sender); } /* Claim ETH Equivalent to Score. */ function claimScoreEth() public { uint timeDiff = 0 ; if(lastScoreTime[msg.sender] > 0){ timeDiff = now.sub(lastScoreTime[msg.sender]).div(2); } uint stakedAmount = depositedTokens[msg.sender]; uint score = stakedAmount .mul(scoreRate) .mul(timeDiff) .div(scoreInterval) .div(1e4); uint eth = score.div(scoreEth); totalEthClaimed = totalEthClaimed.add(eth); msg.sender.transfer(eth); emit EthClaimed(msg.sender , eth,now); lastScoreTime[msg.sender] = now; } function deposit() payable public { totalEthDeposited = totalEthDeposited.add(msg.value); } function updateScoreEth(uint _amount) public onlyOwner { scoreEth = _amount ; } function updateOffer(uint time, uint raise) public onlyOwner { stakingOffer = time ; stakingOfferRaise = raise ; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"time","type":"uint256"}],"name":"AllTokenClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"time","type":"uint256"}],"name":"AllTokenStaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"time","type":"uint256"}],"name":"AllTokenUnStaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"time","type":"uint256"}],"name":"EthClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"time","type":"uint256"}],"name":"OfferStaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"time","type":"uint256"}],"name":"RewardsClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"time","type":"uint256"}],"name":"TokenBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"time","type":"uint256"}],"name":"TokenStaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"time","type":"uint256"}],"name":"TokenUnstaked","type":"event"},{"inputs":[],"name":"burnAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimScoreEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cliffTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"depositedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNumberOfHolders","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_holder","type":"address"}],"name":"getPendingReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_holder","type":"address"}],"name":"getScoreEth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_holder","type":"address"}],"name":"getStakingScore","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalFeeCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalUnStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastClaimedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastScoreTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"scoreEth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"scoreInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"scoreRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountToStake","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingOffer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingOfferRaise","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalClaimedRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalEarnedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalEthClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalEthDeposited","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalOfferRaise","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalOfferUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalScore","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStakedToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalUnstakedToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountToWithdraw","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unstakingFeeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"uint256","name":"raise","type":"uint256"}],"name":"updateOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"updateScoreEth","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526103e86001556000600255600060035560006004556000600555600060065560006007556000600855635fd6489060095560fa600a5534801561004657600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612968806100966000396000f3fe6080604052600436106102515760003560e01c806393bcb5a311610139578063c7c09074116100b6578063d578ceab1161007a578063d578ceab14610a75578063d816c7d514610aa0578063eae6754a14610acb578063f2fde38b14610af6578063f3f91fa014610b47578063f509ea6614610bac57610251565b8063c7c09074146109bf578063cb6d8ee6146109ea578063ccb9891e14610a15578063ce40453d14610a40578063d0e30db014610a6b57610251565b8063af900492116100fd578063af900492146108c2578063b88a802f146108ed578063b9b2b5cd14610904578063bec4de3f1461092f578063c326bf4f1461095a57610251565b806393bcb5a31461078f5780639d76ea58146107a6578063a694fc3a146107e7578063a84e9dee14610822578063a967b72c1461088757610251565b80634df9d6ba116101d257806374c8c6111161019657806374c8c611146106035780637b0a47ee1461062e57806384eda6621461065957806385b6b621146106be57806387285587146106e95780638da5cb5b1461074e57610251565b80634df9d6ba14610468578063583d42fd146104cd5780636270cd181461053257806370d5ae0514610597578063736a83a1146105d857610251565b80632e17de78116102195780632e17de7814610347578063308feec31461038257806335b4f8a3146103ad57806335d8f62f146103d85780633a5ec6531461043d57610251565b806301779c9d146102565780630917e776146102815780630b7b925b146102ac5780630f1a6444146102f15780632a4cc2f01461031c575b600080fd5b34801561026257600080fd5b5061026b610c11565b6040518082815260200191505060405180910390f35b34801561028d57600080fd5b50610296610c17565b6040518082815260200191505060405180910390f35b3480156102b857600080fd5b506102ef600480360360408110156102cf57600080fd5b810190808035906020019092919080359060200190929190505050610c21565b005b3480156102fd57600080fd5b50610306610c8b565b6040518082815260200191505060405180910390f35b34801561032857600080fd5b50610331610c92565b6040518082815260200191505060405180910390f35b34801561035357600080fd5b506103806004803603602081101561036a57600080fd5b8101908080359060200190929190505050610c98565b005b34801561038e57600080fd5b5061039761141f565b6040518082815260200191505060405180910390f35b3480156103b957600080fd5b506103c2611430565b6040518082815260200191505060405180910390f35b3480156103e457600080fd5b50610427600480360360208110156103fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061143a565b6040518082815260200191505060405180910390f35b34801561044957600080fd5b506104526115ae565b6040518082815260200191505060405180910390f35b34801561047457600080fd5b506104b76004803603602081101561048b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115b5565b6040518082815260200191505060405180910390f35b3480156104d957600080fd5b5061051c600480360360208110156104f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611724565b6040518082815260200191505060405180910390f35b34801561053e57600080fd5b506105816004803603602081101561055557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061173c565b6040518082815260200191505060405180910390f35b3480156105a357600080fd5b506105ac611754565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105e457600080fd5b506105ed611759565b6040518082815260200191505060405180910390f35b34801561060f57600080fd5b50610618611763565b6040518082815260200191505060405180910390f35b34801561063a57600080fd5b50610643611769565b6040518082815260200191505060405180910390f35b34801561066557600080fd5b506106a86004803603602081101561067c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061176f565b6040518082815260200191505060405180910390f35b3480156106ca57600080fd5b506106d3611787565b6040518082815260200191505060405180910390f35b3480156106f557600080fd5b506107386004803603602081101561070c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061178d565b6040518082815260200191505060405180910390f35b34801561075a57600080fd5b506107636118e7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561079b57600080fd5b506107a461190b565b005b3480156107b257600080fd5b506107bb611b68565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f357600080fd5b506108206004803603602081101561080a57600080fd5b8101908080359060200190929190505050611b80565b005b34801561082e57600080fd5b506108716004803603602081101561084557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fed565b6040518082815260200191505060405180910390f35b34801561089357600080fd5b506108c0600480360360208110156108aa57600080fd5b8101908080359060200190929190505050612005565b005b3480156108ce57600080fd5b506108d7612067565b6040518082815260200191505060405180910390f35b3480156108f957600080fd5b50610902612071565b005b34801561091057600080fd5b5061091961207c565b6040518082815260200191505060405180910390f35b34801561093b57600080fd5b50610944612082565b6040518082815260200191505060405180910390f35b34801561096657600080fd5b506109a96004803603602081101561097d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061208a565b6040518082815260200191505060405180910390f35b3480156109cb57600080fd5b506109d46120a2565b6040518082815260200191505060405180910390f35b3480156109f657600080fd5b506109ff6120a8565b6040518082815260200191505060405180910390f35b348015610a2157600080fd5b50610a2a6120ae565b6040518082815260200191505060405180910390f35b348015610a4c57600080fd5b50610a556120b4565b6040518082815260200191505060405180910390f35b610a736120ba565b005b348015610a8157600080fd5b50610a8a6120d7565b6040518082815260200191505060405180910390f35b348015610aac57600080fd5b50610ab56120dd565b6040518082815260200191505060405180910390f35b348015610ad757600080fd5b50610ae06120e2565b6040518082815260200191505060405180910390f35b348015610b0257600080fd5b50610b4560048036036020811015610b1957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120e8565b005b348015610b5357600080fd5b50610b9660048036036020811015610b6a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612237565b6040518082815260200191505060405180910390f35b348015610bb857600080fd5b50610bfb60048036036020811015610bcf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061224f565b6040518082815260200191505060405180910390f35b600a5481565b6000600354905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c7957600080fd5b8160098190555080600a819055505050565b6203f48081565b60045481565b80600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610d4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f496e76616c696420616d6f756e7420746f20776974686472617700000000000081525060200191505060405180910390fd5b610d5633612267565b6000610d80612710610d7260fa8561253190919063ffffffff16565b61256090919063ffffffff16565b90506000610d97828461257990919063ffffffff16565b9050734e085036a1b732cbe4ffb1c12ddfdd87e7c3664d73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610e1e57600080fd5b505af1158015610e32573d6000803e3d6000fd5b505050506040513d6020811015610e4857600080fd5b8101908080519060200190929190505050610ecb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f74207472616e7366657220746f6b656e732e00000000000081525060200191505060405180910390fd5b423373ffffffffffffffffffffffffffffffffffffffff167f563fc70fca9d440d883299c76a721644d5aca7c45df98aeb5292c4cb823579bf836040518082815260200191505060405180910390a3734e085036a1b732cbe4ffb1c12ddfdd87e7c3664d73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610fa057600080fd5b505af1158015610fb4573d6000803e3d6000fd5b505050506040513d6020811015610fca57600080fd5b810190808051906020019092919050505061104d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f436f756c64206e6f74206275726e206665652e0000000000000000000000000081525060200191505060405180910390fd5b427f43ce8febc9822756d8f34b35cd628db23dc57fe810cb077080d7c740fcc6988f836040518082815260200191505060405180910390a261109a8160045461259090919063ffffffff16565b6004819055506110b58260075461259090919063ffffffff16565b600781905550427fa15f07f56600a91570db6667e7c35b836d5d4258237cc82400dc5a7d8784eda56004546040518082815260200191505060405180910390a2600080601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156111a6576111a36002611195601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544261257990919063ffffffff16565b61256090919063ffffffff16565b90505b60006111f86127106111ea6203f4806111dc866111ce6103e88a61253190919063ffffffff16565b61253190919063ffffffff16565b61256090919063ffffffff16565b61256090919063ffffffff16565b905060006112116001548361256090919063ffffffff16565b90506112288160065461259090919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611274573d6000803e3d6000fd5b50423373ffffffffffffffffffffffffffffffffffffffff167ff4c8e3a141f402733f36011a62cef94385bf3bc2905fca8df9bab1a429e5199e836040518082815260200191505060405180910390a342601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061135a86600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461257990919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113b133600b6125ac90919063ffffffff16565b80156113fc57506000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b156114175761141533600b6125dc90919063ffffffff16565b505b505050505050565b600061142b600b61260c565b905090565b6000600754905090565b600080600090506000601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156114f1576114ee60026114e0601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544261257990919063ffffffff16565b61256090919063ffffffff16565b90505b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006115876127106115796203f48061156b8761155d6103e88961253190919063ffffffff16565b61253190919063ffffffff16565b61256090919063ffffffff16565b61256090919063ffffffff16565b905060006115a06001548361256090919063ffffffff16565b905080945050505050919050565b6203f48081565b60006115cb82600b6125ac90919063ffffffff16565b6115d8576000905061171f565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611629576000905061171f565b600061167d600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544261257990919063ffffffff16565b90506000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006117166127106117086301e133806116fa876116ec611f408961253190919063ffffffff16565b61253190919063ffffffff16565b61256090919063ffffffff16565b61256090919063ffffffff16565b90508093505050505b919050565b600e6020528060005260406000206000915090505481565b60106020528060005260406000206000915090505481565b600081565b6000600254905090565b60065481565b611f4081565b60116020528060005260406000206000915090505481565b60085481565b600080600090506000601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611844576118416002611833601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544261257990919063ffffffff16565b61256090919063ffffffff16565b90505b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006118da6127106118cc6203f4806118be876118b06103e88961253190919063ffffffff16565b61253190919063ffffffff16565b61256090919063ffffffff16565b61256090919063ffffffff16565b9050809350505050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156119bc576119b960026119ab601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544261257990919063ffffffff16565b61256090919063ffffffff16565b90505b6000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000611a52612710611a446203f480611a3687611a286103e88961253190919063ffffffff16565b61253190919063ffffffff16565b61256090919063ffffffff16565b61256090919063ffffffff16565b90506000611a6b6001548361256090919063ffffffff16565b9050611a828160065461259090919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ace573d6000803e3d6000fd5b50423373ffffffffffffffffffffffffffffffffffffffff167ff4c8e3a141f402733f36011a62cef94385bf3bc2905fca8df9bab1a429e5199e836040518082815260200191505060405180910390a342601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b734e085036a1b732cbe4ffb1c12ddfdd87e7c3664d81565b60008111611bf6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616e6e6f74206465706f736974203020546f6b656e7300000000000000000081525060200191505060405180910390fd5b734e085036a1b732cbe4ffb1c12ddfdd87e7c3664d73ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611c9957600080fd5b505af1158015611cad573d6000803e3d6000fd5b505050506040513d6020811015611cc357600080fd5b8101908080519060200190929190505050611d46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e73756666696369656e7420546f6b656e20416c6c6f77616e63650000000081525060200191505060405180910390fd5b423373ffffffffffffffffffffffffffffffffffffffff167f6173e4d2d9dd52aae0ed37afed3adcf924a490639b759ca93d32dc43366c17d2836040518082815260200191505060405180910390a3611d9e33612267565b611da733612621565b611dbc8160035461259090919063ffffffff16565b600381905550426009541115611ea9576000611df7612710611de9600a548561253190919063ffffffff16565b61256090919063ffffffff16565b9050611e0e8160085461259090919063ffffffff16565b60088190555080601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550427f572884873248ee7e04cba5e3859e101ba1e2ce191c450ae4711720174a8d7b766003546040518082815260200191505060405180910390a2611ea5818361259090919063ffffffff16565b9150505b427f1bb5608a984ccf66cb52c29035f05db8c8b2cf6da66ea824e485eb74e6fb5e2a6003546040518082815260200191505060405180910390a2611f3581600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461259090919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f8c33600b6125ac90919063ffffffff16565b611fea57611fa433600b61277690919063ffffffff16565b5042600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50565b60136020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461205d57600080fd5b8060018190555050565b6000600454905090565b61207a33612267565b565b60075481565b6301e1338081565b600d6020528060005260406000206000915090505481565b6103e881565b60035481565b60095481565b60015481565b6120cf3460055461259090919063ffffffff16565b600581905550565b60025481565b60fa81565b60055481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461214057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561217a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f6020528060005260406000206000915090505481565b60126020528060005260406000206000915090505481565b6000612272826115b5565b905060008111156124e957734e085036a1b732cbe4ffb1c12ddfdd87e7c3664d73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561230257600080fd5b505af1158015612316573d6000803e3d6000fd5b505050506040513d602081101561232c57600080fd5b81019080805190602001909291905050506123af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f74207472616e7366657220746f6b656e732e00000000000081525060200191505060405180910390fd5b61240181601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461259090919063ffffffff16565b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124598160025461259090919063ffffffff16565b600281905550428273ffffffffffffffffffffffffffffffffffffffff167fdacbdde355ba930696a362ea6738feb9f8bd52dfb3d81947558fd3217e23e325836040518082815260200191505060405180910390a3427f1d2034b794f7eb0f4a3f72d353be055f83bb53bc3bd2d8629ba87452047d237d6002546040518082815260200191505060405180910390a25b42600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000808284029050600084148061255057508284828161254d57fe5b04145b61255657fe5b8091505092915050565b60008082848161256c57fe5b0490508091505092915050565b60008282111561258557fe5b818303905092915050565b6000808284019050838110156125a257fe5b8091505092915050565b60006125d4836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6127a6565b905092915050565b6000612604836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6127c9565b905092915050565b600061261a826000016128b1565b9050919050565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561272e5760006126d060026126c2601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544261257990919063ffffffff16565b61256090919063ffffffff16565b90506126e5814261257990919063ffffffff16565b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050612773565b42601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50565b600061279e836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6128c2565b905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b600080836001016000848152602001908152602001600020549050600081146128a5576000600182039050600060018660000180549050039050600086600001828154811061281457fe5b906000526020600020015490508087600001848154811061283157fe5b906000526020600020018190555060018301876001016000838152602001908152602001600020819055508660000180548061286957fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506128ab565b60009150505b92915050565b600081600001805490509050919050565b60006128ce83836127a6565b61292757826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905061292c565b600090505b9291505056fea26469706673582212205641a33f73d999b39c69e289aaa2c5490914c7c8fb24c87d7eee2b6e5bf3fba864736f6c634300060c0033
Deployed Bytecode
0x6080604052600436106102515760003560e01c806393bcb5a311610139578063c7c09074116100b6578063d578ceab1161007a578063d578ceab14610a75578063d816c7d514610aa0578063eae6754a14610acb578063f2fde38b14610af6578063f3f91fa014610b47578063f509ea6614610bac57610251565b8063c7c09074146109bf578063cb6d8ee6146109ea578063ccb9891e14610a15578063ce40453d14610a40578063d0e30db014610a6b57610251565b8063af900492116100fd578063af900492146108c2578063b88a802f146108ed578063b9b2b5cd14610904578063bec4de3f1461092f578063c326bf4f1461095a57610251565b806393bcb5a31461078f5780639d76ea58146107a6578063a694fc3a146107e7578063a84e9dee14610822578063a967b72c1461088757610251565b80634df9d6ba116101d257806374c8c6111161019657806374c8c611146106035780637b0a47ee1461062e57806384eda6621461065957806385b6b621146106be57806387285587146106e95780638da5cb5b1461074e57610251565b80634df9d6ba14610468578063583d42fd146104cd5780636270cd181461053257806370d5ae0514610597578063736a83a1146105d857610251565b80632e17de78116102195780632e17de7814610347578063308feec31461038257806335b4f8a3146103ad57806335d8f62f146103d85780633a5ec6531461043d57610251565b806301779c9d146102565780630917e776146102815780630b7b925b146102ac5780630f1a6444146102f15780632a4cc2f01461031c575b600080fd5b34801561026257600080fd5b5061026b610c11565b6040518082815260200191505060405180910390f35b34801561028d57600080fd5b50610296610c17565b6040518082815260200191505060405180910390f35b3480156102b857600080fd5b506102ef600480360360408110156102cf57600080fd5b810190808035906020019092919080359060200190929190505050610c21565b005b3480156102fd57600080fd5b50610306610c8b565b6040518082815260200191505060405180910390f35b34801561032857600080fd5b50610331610c92565b6040518082815260200191505060405180910390f35b34801561035357600080fd5b506103806004803603602081101561036a57600080fd5b8101908080359060200190929190505050610c98565b005b34801561038e57600080fd5b5061039761141f565b6040518082815260200191505060405180910390f35b3480156103b957600080fd5b506103c2611430565b6040518082815260200191505060405180910390f35b3480156103e457600080fd5b50610427600480360360208110156103fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061143a565b6040518082815260200191505060405180910390f35b34801561044957600080fd5b506104526115ae565b6040518082815260200191505060405180910390f35b34801561047457600080fd5b506104b76004803603602081101561048b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115b5565b6040518082815260200191505060405180910390f35b3480156104d957600080fd5b5061051c600480360360208110156104f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611724565b6040518082815260200191505060405180910390f35b34801561053e57600080fd5b506105816004803603602081101561055557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061173c565b6040518082815260200191505060405180910390f35b3480156105a357600080fd5b506105ac611754565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105e457600080fd5b506105ed611759565b6040518082815260200191505060405180910390f35b34801561060f57600080fd5b50610618611763565b6040518082815260200191505060405180910390f35b34801561063a57600080fd5b50610643611769565b6040518082815260200191505060405180910390f35b34801561066557600080fd5b506106a86004803603602081101561067c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061176f565b6040518082815260200191505060405180910390f35b3480156106ca57600080fd5b506106d3611787565b6040518082815260200191505060405180910390f35b3480156106f557600080fd5b506107386004803603602081101561070c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061178d565b6040518082815260200191505060405180910390f35b34801561075a57600080fd5b506107636118e7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561079b57600080fd5b506107a461190b565b005b3480156107b257600080fd5b506107bb611b68565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f357600080fd5b506108206004803603602081101561080a57600080fd5b8101908080359060200190929190505050611b80565b005b34801561082e57600080fd5b506108716004803603602081101561084557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fed565b6040518082815260200191505060405180910390f35b34801561089357600080fd5b506108c0600480360360208110156108aa57600080fd5b8101908080359060200190929190505050612005565b005b3480156108ce57600080fd5b506108d7612067565b6040518082815260200191505060405180910390f35b3480156108f957600080fd5b50610902612071565b005b34801561091057600080fd5b5061091961207c565b6040518082815260200191505060405180910390f35b34801561093b57600080fd5b50610944612082565b6040518082815260200191505060405180910390f35b34801561096657600080fd5b506109a96004803603602081101561097d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061208a565b6040518082815260200191505060405180910390f35b3480156109cb57600080fd5b506109d46120a2565b6040518082815260200191505060405180910390f35b3480156109f657600080fd5b506109ff6120a8565b6040518082815260200191505060405180910390f35b348015610a2157600080fd5b50610a2a6120ae565b6040518082815260200191505060405180910390f35b348015610a4c57600080fd5b50610a556120b4565b6040518082815260200191505060405180910390f35b610a736120ba565b005b348015610a8157600080fd5b50610a8a6120d7565b6040518082815260200191505060405180910390f35b348015610aac57600080fd5b50610ab56120dd565b6040518082815260200191505060405180910390f35b348015610ad757600080fd5b50610ae06120e2565b6040518082815260200191505060405180910390f35b348015610b0257600080fd5b50610b4560048036036020811015610b1957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120e8565b005b348015610b5357600080fd5b50610b9660048036036020811015610b6a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612237565b6040518082815260200191505060405180910390f35b348015610bb857600080fd5b50610bfb60048036036020811015610bcf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061224f565b6040518082815260200191505060405180910390f35b600a5481565b6000600354905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c7957600080fd5b8160098190555080600a819055505050565b6203f48081565b60045481565b80600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610d4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f496e76616c696420616d6f756e7420746f20776974686472617700000000000081525060200191505060405180910390fd5b610d5633612267565b6000610d80612710610d7260fa8561253190919063ffffffff16565b61256090919063ffffffff16565b90506000610d97828461257990919063ffffffff16565b9050734e085036a1b732cbe4ffb1c12ddfdd87e7c3664d73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610e1e57600080fd5b505af1158015610e32573d6000803e3d6000fd5b505050506040513d6020811015610e4857600080fd5b8101908080519060200190929190505050610ecb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f74207472616e7366657220746f6b656e732e00000000000081525060200191505060405180910390fd5b423373ffffffffffffffffffffffffffffffffffffffff167f563fc70fca9d440d883299c76a721644d5aca7c45df98aeb5292c4cb823579bf836040518082815260200191505060405180910390a3734e085036a1b732cbe4ffb1c12ddfdd87e7c3664d73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610fa057600080fd5b505af1158015610fb4573d6000803e3d6000fd5b505050506040513d6020811015610fca57600080fd5b810190808051906020019092919050505061104d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f436f756c64206e6f74206275726e206665652e0000000000000000000000000081525060200191505060405180910390fd5b427f43ce8febc9822756d8f34b35cd628db23dc57fe810cb077080d7c740fcc6988f836040518082815260200191505060405180910390a261109a8160045461259090919063ffffffff16565b6004819055506110b58260075461259090919063ffffffff16565b600781905550427fa15f07f56600a91570db6667e7c35b836d5d4258237cc82400dc5a7d8784eda56004546040518082815260200191505060405180910390a2600080601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156111a6576111a36002611195601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544261257990919063ffffffff16565b61256090919063ffffffff16565b90505b60006111f86127106111ea6203f4806111dc866111ce6103e88a61253190919063ffffffff16565b61253190919063ffffffff16565b61256090919063ffffffff16565b61256090919063ffffffff16565b905060006112116001548361256090919063ffffffff16565b90506112288160065461259090919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611274573d6000803e3d6000fd5b50423373ffffffffffffffffffffffffffffffffffffffff167ff4c8e3a141f402733f36011a62cef94385bf3bc2905fca8df9bab1a429e5199e836040518082815260200191505060405180910390a342601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061135a86600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461257990919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113b133600b6125ac90919063ffffffff16565b80156113fc57506000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b156114175761141533600b6125dc90919063ffffffff16565b505b505050505050565b600061142b600b61260c565b905090565b6000600754905090565b600080600090506000601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156114f1576114ee60026114e0601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544261257990919063ffffffff16565b61256090919063ffffffff16565b90505b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006115876127106115796203f48061156b8761155d6103e88961253190919063ffffffff16565b61253190919063ffffffff16565b61256090919063ffffffff16565b61256090919063ffffffff16565b905060006115a06001548361256090919063ffffffff16565b905080945050505050919050565b6203f48081565b60006115cb82600b6125ac90919063ffffffff16565b6115d8576000905061171f565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611629576000905061171f565b600061167d600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544261257990919063ffffffff16565b90506000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006117166127106117086301e133806116fa876116ec611f408961253190919063ffffffff16565b61253190919063ffffffff16565b61256090919063ffffffff16565b61256090919063ffffffff16565b90508093505050505b919050565b600e6020528060005260406000206000915090505481565b60106020528060005260406000206000915090505481565b600081565b6000600254905090565b60065481565b611f4081565b60116020528060005260406000206000915090505481565b60085481565b600080600090506000601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611844576118416002611833601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544261257990919063ffffffff16565b61256090919063ffffffff16565b90505b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006118da6127106118cc6203f4806118be876118b06103e88961253190919063ffffffff16565b61253190919063ffffffff16565b61256090919063ffffffff16565b61256090919063ffffffff16565b9050809350505050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156119bc576119b960026119ab601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544261257990919063ffffffff16565b61256090919063ffffffff16565b90505b6000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000611a52612710611a446203f480611a3687611a286103e88961253190919063ffffffff16565b61253190919063ffffffff16565b61256090919063ffffffff16565b61256090919063ffffffff16565b90506000611a6b6001548361256090919063ffffffff16565b9050611a828160065461259090919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ace573d6000803e3d6000fd5b50423373ffffffffffffffffffffffffffffffffffffffff167ff4c8e3a141f402733f36011a62cef94385bf3bc2905fca8df9bab1a429e5199e836040518082815260200191505060405180910390a342601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b734e085036a1b732cbe4ffb1c12ddfdd87e7c3664d81565b60008111611bf6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616e6e6f74206465706f736974203020546f6b656e7300000000000000000081525060200191505060405180910390fd5b734e085036a1b732cbe4ffb1c12ddfdd87e7c3664d73ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611c9957600080fd5b505af1158015611cad573d6000803e3d6000fd5b505050506040513d6020811015611cc357600080fd5b8101908080519060200190929190505050611d46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e73756666696369656e7420546f6b656e20416c6c6f77616e63650000000081525060200191505060405180910390fd5b423373ffffffffffffffffffffffffffffffffffffffff167f6173e4d2d9dd52aae0ed37afed3adcf924a490639b759ca93d32dc43366c17d2836040518082815260200191505060405180910390a3611d9e33612267565b611da733612621565b611dbc8160035461259090919063ffffffff16565b600381905550426009541115611ea9576000611df7612710611de9600a548561253190919063ffffffff16565b61256090919063ffffffff16565b9050611e0e8160085461259090919063ffffffff16565b60088190555080601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550427f572884873248ee7e04cba5e3859e101ba1e2ce191c450ae4711720174a8d7b766003546040518082815260200191505060405180910390a2611ea5818361259090919063ffffffff16565b9150505b427f1bb5608a984ccf66cb52c29035f05db8c8b2cf6da66ea824e485eb74e6fb5e2a6003546040518082815260200191505060405180910390a2611f3581600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461259090919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f8c33600b6125ac90919063ffffffff16565b611fea57611fa433600b61277690919063ffffffff16565b5042600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50565b60136020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461205d57600080fd5b8060018190555050565b6000600454905090565b61207a33612267565b565b60075481565b6301e1338081565b600d6020528060005260406000206000915090505481565b6103e881565b60035481565b60095481565b60015481565b6120cf3460055461259090919063ffffffff16565b600581905550565b60025481565b60fa81565b60055481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461214057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561217a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f6020528060005260406000206000915090505481565b60126020528060005260406000206000915090505481565b6000612272826115b5565b905060008111156124e957734e085036a1b732cbe4ffb1c12ddfdd87e7c3664d73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561230257600080fd5b505af1158015612316573d6000803e3d6000fd5b505050506040513d602081101561232c57600080fd5b81019080805190602001909291905050506123af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f74207472616e7366657220746f6b656e732e00000000000081525060200191505060405180910390fd5b61240181601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461259090919063ffffffff16565b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124598160025461259090919063ffffffff16565b600281905550428273ffffffffffffffffffffffffffffffffffffffff167fdacbdde355ba930696a362ea6738feb9f8bd52dfb3d81947558fd3217e23e325836040518082815260200191505060405180910390a3427f1d2034b794f7eb0f4a3f72d353be055f83bb53bc3bd2d8629ba87452047d237d6002546040518082815260200191505060405180910390a25b42600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000808284029050600084148061255057508284828161254d57fe5b04145b61255657fe5b8091505092915050565b60008082848161256c57fe5b0490508091505092915050565b60008282111561258557fe5b818303905092915050565b6000808284019050838110156125a257fe5b8091505092915050565b60006125d4836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6127a6565b905092915050565b6000612604836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6127c9565b905092915050565b600061261a826000016128b1565b9050919050565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561272e5760006126d060026126c2601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544261257990919063ffffffff16565b61256090919063ffffffff16565b90506126e5814261257990919063ffffffff16565b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050612773565b42601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50565b600061279e836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6128c2565b905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b600080836001016000848152602001908152602001600020549050600081146128a5576000600182039050600060018660000180549050039050600086600001828154811061281457fe5b906000526020600020015490508087600001848154811061283157fe5b906000526020600020018190555060018301876001016000838152602001908152602001600020819055508660000180548061286957fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506128ab565b60009150505b92915050565b600081600001805490509050919050565b60006128ce83836127a6565b61292757826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905061292c565b600090505b9291505056fea26469706673582212205641a33f73d999b39c69e289aaa2c5490914c7c8fb24c87d7eee2b6e5bf3fba864736f6c634300060c0033
Deployed Bytecode Sourcemap
10242:10509:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12038:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15970:95;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20600:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11650:41;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11785:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17642:1751;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15813:99;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16297:102;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13690:623;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11417:43;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15000:574;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12198:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12304:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11140:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15653:99;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11866:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11269:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12361:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11944:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14368:562;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9273:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19570:776;;;;;;;;;;;;;:::i;:::-;;11052:81;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16463:1120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12465:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20486:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16126:99;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19436:74;;;;;;;;;;;;;:::i;:::-;;11904:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11364:46;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12143:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11314:37;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11746:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11994:37;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11475:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20360:114;;;:::i;:::-;;11704:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11552:43;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11826:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9892:178;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12249:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12411:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12038:35;;;;:::o;15970:95::-;16017:4;16041:16;;16034:23;;15970:95;:::o;20600:145::-;9703:5;;;;;;;;;;9689:19;;:10;:19;;;9681:28;;;;;;20691:4:::1;20676:12;:19;;;;20731:5;20711:17;:25;;;;20600:145:::0;;:::o;11650:41::-;11683:8;11650:41;:::o;11785:34::-;;;;:::o;17642:1751::-;17741:16;17710:15;:27;17726:10;17710:27;;;;;;;;;;;;;;;;:47;;17702:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17818:25;17832:10;17818:13;:25::i;:::-;17864:8;17875:47;17918:3;17875:38;11592:3;17875:16;:20;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;17864:58;;17933:19;17955:25;17976:3;17955:16;:20;;:25;;;;:::i;:::-;17933:47;;11091:42;18009:28;;;18038:10;18050:14;18009:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18001:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18153:3;18126:10;18112:45;;;18138:14;18112:45;;;;;;;;;;;;;;;;;;11091:42;18183:28;;;11178:42;18225:3;18183:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18175:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18285:3;18269:20;18281:3;18269:20;;;;;;;;;;;;;;;;;;18330:38;18353:14;18330:18;;:22;;:38;;;;:::i;:::-;18309:18;:59;;;;18399:26;18421:3;18399:17;;:21;;:26;;;;:::i;:::-;18379:17;:46;;;;18478:3;18441:41;18458:18;;18441:41;;;;;;;;;;;;;;;;;;18503:13;18573:1;18545:13;:25;18559:10;18545:25;;;;;;;;;;;;;;;;:29;18542:124;;;18601:41;18640:1;18601:34;18609:13;:25;18623:10;18609:25;;;;;;;;;;;;;;;;18601:3;:7;;:34;;;;:::i;:::-;:38;;:41;;;;:::i;:::-;18590:52;;18542:124;18684:10;18697:191;18884:3;18697:152;11454:6;18697:103;18791:8;18697:59;11347:4;18697:14;:48;;:59;;;;:::i;:::-;:93;;:103;;;;:::i;:::-;:137;;:152;;;;:::i;:::-;:186;;:191;;;;:::i;:::-;18684:204;;18934:8;18945:19;18955:8;;18945:5;:9;;:19;;;;:::i;:::-;18934:30;;18998:24;19018:3;18998:15;;:19;;:24;;;;:::i;:::-;18980:15;:42;;;;19035:10;:19;;:24;19055:3;19035:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19102:3;19086:10;19075:31;;;19098:3;19075:31;;;;;;;;;;;;;;;;;;19147:3;19119:13;:25;19133:10;19119:25;;;;;;;;;;;;;;;:31;;;;19193:49;19225:16;19193:15;:27;19209:10;19193:27;;;;;;;;;;;;;;;;:31;;:49;;;;:::i;:::-;19163:15;:27;19179:10;19163:27;;;;;;;;;;;;;;;:79;;;;19267:28;19284:10;19267:7;:16;;:28;;;;:::i;:::-;:64;;;;;19330:1;19299:15;:27;19315:10;19299:27;;;;;;;;;;;;;;;;:32;19267:64;19263:123;;;19348:26;19363:10;19348:7;:14;;:26;;;;:::i;:::-;;19263:123;17642:1751;;;;;;:::o;15813:99::-;15864:4;15888:16;:7;:14;:16::i;:::-;15881:23;;15813:99;:::o;16297:102::-;16350:4;16374:17;;16367:24;;16297:102;:::o;13690:623::-;13749:4;13766:13;13782:1;13766:17;;13832:1;13807:13;:22;13821:7;13807:22;;;;;;;;;;;;;;;;:26;13804:121;;;13860:38;13896:1;13860:31;13868:13;:22;13882:7;13868:22;;;;;;;;;;;;;;;;13860:3;:7;;:31;;;;:::i;:::-;:35;;:38;;;;:::i;:::-;13849:49;;13804:121;13937:17;13957:15;:24;13973:7;13957:24;;;;;;;;;;;;;;;;13937:44;;14010:10;14023:189;14208:3;14023:150;11454:6;14023:101;14115:8;14023:57;11347:4;14023:12;:46;;:57;;;;:::i;:::-;:91;;:101;;;;:::i;:::-;:135;;:150;;;;:::i;:::-;:184;;:189;;;;:::i;:::-;14010:202;;14232:8;14243:19;14253:8;;14243:5;:9;;:19;;;;:::i;:::-;14232:30;;14290:3;14283:10;;;;;;13690:623;;;:::o;11417:43::-;11454:6;11417:43;:::o;15000:574::-;15064:4;15086:25;15103:7;15086;:16;;:25;;;;:::i;:::-;15081:40;;15120:1;15113:8;;;;15081:40;15164:1;15136:15;:24;15152:7;15136:24;;;;;;;;;;;;;;;;:29;15132:43;;;15174:1;15167:8;;;;15132:43;15188:13;15204:33;15212:15;:24;15228:7;15212:24;;;;;;;;;;;;;;;;15204:3;:7;;:33;;;;:::i;:::-;15188:49;;15248:17;15268:15;:24;15284:7;15268:24;;;;;;;;;;;;;;;;15248:44;;15313:16;15332:191;15519:3;15332:152;11402:8;15332:102;15425:8;15332:58;11303:4;15332:12;:46;;:58;;;;:::i;:::-;:92;;:102;;;;:::i;:::-;:136;;:152;;;;:::i;:::-;:186;;:191;;;;:::i;:::-;15313:210;;15555:11;15548:18;;;;;15000:574;;;;:::o;12198:44::-;;;;;;;;;;;;;;;;;:::o;12304:50::-;;;;;;;;;;;;;;;;;:::o;11140:80::-;11178:42;11140:80;:::o;15653:99::-;15701:4;15725:19;;15718:26;;15653:99;:::o;11866:31::-;;;;:::o;11269:38::-;11303:4;11269:38;:::o;12361:43::-;;;;;;;;;;;;;;;;;:::o;11944:31::-;;;;:::o;14368:562::-;14431:4;14451:13;14467:1;14451:17;;14511:1;14486:13;:22;14500:7;14486:22;;;;;;;;;;;;;;;;:26;14483:121;;;14539:38;14575:1;14539:31;14547:13;:22;14561:7;14547:22;;;;;;;;;;;;;;;;14539:3;:7;;:31;;;;:::i;:::-;:35;;:38;;;;:::i;:::-;14528:49;;14483:121;14620:17;14640:15;:24;14656:7;14640:24;;;;;;;;;;;;;;;;14620:44;;14697:10;14710:189;14895:3;14710:150;11454:6;14710:101;14802:8;14710:57;11347:4;14710:12;:46;;:57;;;;:::i;:::-;:91;;:101;;;;:::i;:::-;:135;;:150;;;;:::i;:::-;:184;;:189;;;;:::i;:::-;14697:202;;14917:5;14910:12;;;;;14368:562;;;:::o;9273:20::-;;;;;;;;;;;;:::o;19570:776::-;19613:13;19683:1;19655:13;:25;19669:10;19655:25;;;;;;;;;;;;;;;;:29;19652:124;;;19711:41;19750:1;19711:34;19719:13;:25;19733:10;19719:25;;;;;;;;;;;;;;;;19711:3;:7;;:34;;;;:::i;:::-;:38;;:41;;;;:::i;:::-;19700:52;;19652:124;19788:17;19808:15;:27;19824:10;19808:27;;;;;;;;;;;;;;;;19788:47;;19862:10;19875:189;20060:3;19875:150;11454:6;19875:101;19967:8;19875:57;11347:4;19875:12;:46;;:57;;;;:::i;:::-;:91;;:101;;;;:::i;:::-;:135;;:150;;;;:::i;:::-;:184;;:189;;;;:::i;:::-;19862:202;;20106:8;20117:19;20127:8;;20117:5;:9;;:19;;;;:::i;:::-;20106:30;;20170:24;20190:3;20170:15;;:19;;:24;;;;:::i;:::-;20152:15;:42;;;;20205:10;:19;;:24;20225:3;20205:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20273:3;20256:10;20245:32;;;20269:3;20245:32;;;;;;;;;;;;;;;;;;20329:3;20301:13;:25;20315:10;20301:25;;;;;;;;;;;;;;;:31;;;;19570:776;;;;:::o;11052:81::-;11091:42;11052:81;:::o;16463:1120::-;16540:1;16524:13;:17;16516:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11091:42;16588:32;;;16621:10;16641:4;16648:13;16588:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16580:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16750:3;16723:10;16711:43;;;16735:13;16711:43;;;;;;;;;;;;;;;;;;16775:25;16789:10;16775:13;:25::i;:::-;16811:31;16831:10;16811:19;:31::i;:::-;16872:35;16893:13;16872:16;;:20;;:35;;;;:::i;:::-;16853:16;:54;;;;16946:3;16931:12;;:18;16928:357;;;16965:15;16983:45;17024:3;16983:36;17001:17;;16983:13;:17;;:36;;;;:::i;:::-;:40;;:45;;;;:::i;:::-;16965:63;;17071:31;17091:10;17071:15;;:19;;:31;;;;:::i;:::-;17053:15;:49;;;;17146:10;17117:14;:26;17132:10;17117:26;;;;;;;;;;;;;;;:39;;;;17207:3;17177:34;17189:16;;17177:34;;;;;;;;;;;;;;;;;;17244:29;17262:10;17244:13;:17;;:29;;;;:::i;:::-;17228:45;;16928:357;;17339:3;17306:37;17321:16;;17306:37;;;;;;;;;;;;;;;;;;17388:46;17420:13;17388:15;:27;17404:10;17388:27;;;;;;;;;;;;;;;;:31;;:46;;;;:::i;:::-;17358:15;:27;17374:10;17358:27;;;;;;;;;;;;;;;:76;;;;17452:28;17469:10;17452:7;:16;;:28;;;;:::i;:::-;17447:129;;17497:23;17509:10;17497:7;:11;;:23;;;;:::i;:::-;;17561:3;17535:11;:23;17547:10;17535:23;;;;;;;;;;;;;;;:29;;;;17447:129;16463:1120;:::o;12465:46::-;;;;;;;;;;;;;;;;;:::o;20486:97::-;9703:5;;;;;;;;;;9689:19;;:10;:19;;;9681:28;;;;;;20567:7:::1;20556:8;:18;;;;20486:97:::0;:::o;16126:99::-;16175:4;16199:18;;16192:25;;16126:99;:::o;19436:74::-;19477:25;19491:10;19477:13;:25::i;:::-;19436:74::o;11904:33::-;;;;:::o;11364:46::-;11402:8;11364:46;:::o;12143:48::-;;;;;;;;;;;;;;;;;:::o;11314:37::-;11347:4;11314:37;:::o;11746:32::-;;;;:::o;11994:37::-;;;;:::o;11475:27::-;;;;:::o;20360:114::-;20425:32;20447:9;20425:17;;:21;;:32;;;;:::i;:::-;20405:17;:52;;;;20360:114::o;11704:35::-;;;;:::o;11552:43::-;11592:3;11552:43;:::o;11826:33::-;;;;:::o;9892:178::-;9703:5;;;;;;;;;;9689:19;;:10;:19;;;9681:28;;;;;;9989:1:::1;9969:22;;:8;:22;;;;9961:31;;;::::0;::::1;;10032:8;10004:37;;10025:5;::::0;::::1;;;;;;;;10004:37;;;;;;;;;;;;10056:8;10048:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;9892:178:::0;:::o;12249:48::-;;;;;;;;;;;;;;;;;:::o;12411:47::-;;;;;;;;;;;;;;;;;:::o;12603:581::-;12662:16;12681:25;12698:7;12681:16;:25::i;:::-;12662:44;;12735:1;12721:11;:15;12717:419;;;11091:42;12761:28;;;12790:7;12799:11;12761:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12753:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12886:43;12917:11;12886:17;:26;12904:7;12886:26;;;;;;;;;;;;;;;;:30;;:43;;;;:::i;:::-;12857:17;:26;12875:7;12857:26;;;;;;;;;;;;;;;:72;;;;12966:36;12990:11;12966:19;;:23;;:36;;;;:::i;:::-;12944:19;:58;;;;13059:3;13037:7;13022:41;;;13046:11;13022:41;;;;;;;;;;;;;;;;;;13120:3;13083:41;13099:19;;13083:41;;;;;;;;;;;;;;;;;;12717:419;13173:3;13146:15;:24;13162:7;13146:24;;;;;;;;;;;;;;;:30;;;;12603:581;;:::o;398:147::-;456:7;472:9;488:1;484;:5;472:17;;508:1;503;:6;:20;;;;522:1;517;513;:5;;;;;;:10;503:20;496:28;;;;538:1;531:8;;;398:147;;;;:::o;551:270::-;609:7;700:9;716:1;712;:5;;;;;;700:17;;814:1;807:8;;;551:270;;;;:::o;827:113::-;885:7;913:1;908;:6;;901:14;;;;933:1;929;:5;922:12;;827:113;;;;:::o;946:133::-;1004:7;1020:9;1036:1;1032;:5;1020:17;;1056:1;1051;:6;;1044:14;;;;1072:1;1065:8;;;946:133;;;;:::o;6588:158::-;6668:4;6692:46;6702:3;:10;;6730:5;6722:14;;6714:23;;6692:9;:46::i;:::-;6685:53;;6588:158;;;;:::o;6353:149::-;6426:4;6450:44;6458:3;:10;;6486:5;6478:14;;6470:23;;6450:7;:44::i;:::-;6443:51;;6353:149;;;;:::o;6832:117::-;6895:7;6922:19;6930:3;:10;;6922:7;:19::i;:::-;6915:26;;6832:117;;;:::o;13246:369::-;13343:1;13318:13;:22;13332:7;13318:22;;;;;;;;;;;;;;;;:26;13315:275;;;13363:13;13410:38;13446:1;13410:31;13418:13;:22;13432:7;13418:22;;;;;;;;;;;;;;;;13410:3;:7;;:31;;;;:::i;:::-;:35;;:38;;;;:::i;:::-;13399:49;;13492:17;13500:8;13492:3;:7;;:17;;;;:::i;:::-;13467:13;:22;13481:7;13467:22;;;;;;;;;;;;;;;:42;;;;13315:275;;;;13571:3;13546:13;:22;13560:7;13546:22;;;;;;;;;;;;;;;:28;;;;13315:275;13246:369;:::o;6034:143::-;6104:4;6128:41;6133:3;:10;;6161:5;6153:14;;6145:23;;6128:4;:41::i;:::-;6121:48;;6034:143;;;;:::o;4908:129::-;4981:4;5028:1;5005:3;:12;;:19;5018:5;5005:19;;;;;;;;;;;;:24;;4998:31;;4908:129;;;;:::o;3278:1544::-;3344:4;3462:18;3483:3;:12;;:19;3496:5;3483:19;;;;;;;;;;;;3462:40;;3533:1;3519:10;:15;3515:1300;;3881:21;3918:1;3905:10;:14;3881:38;;3934:17;3975:1;3954:3;:11;;:18;;;;:22;3934:42;;4221:17;4241:3;:11;;4253:9;4241:22;;;;;;;;;;;;;;;;4221:42;;4387:9;4358:3;:11;;4370:13;4358:26;;;;;;;;;;;;;;;:38;;;;4506:1;4490:13;:17;4464:3;:12;;:23;4477:9;4464:23;;;;;;;;;;;:43;;;;4616:3;:11;;:17;;;;;;;;;;;;;;;;;;;;;;;;4711:3;:12;;:19;4724:5;4711:19;;;;;;;;;;;4704:26;;;4754:4;4747:11;;;;;;;;3515:1300;4798:5;4791:12;;;3278:1544;;;;;:::o;5123:109::-;5179:7;5206:3;:11;;:18;;;;5199:25;;5123:109;;;:::o;2688:414::-;2751:4;2773:21;2783:3;2788:5;2773:9;:21::i;:::-;2768:327;;2811:3;:11;;2828:5;2811:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2994:3;:11;;:18;;;;2972:3;:12;;:19;2985:5;2972:19;;;;;;;;;;;:40;;;;3034:4;3027:11;;;;2768:327;3078:5;3071:12;;2688:414;;;;;:::o
Swarm Source
ipfs://5641a33f73d999b39c69e289aaa2c5490914c7c8fb24c87d7eee2b6e5bf3fba8
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.