More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 828 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Unstake | 20674103 | 103 days ago | IN | 0 ETH | 0.000241 | ||||
Unstake | 20674083 | 103 days ago | IN | 0 ETH | 0.00023383 | ||||
Unstake | 20674075 | 103 days ago | IN | 0 ETH | 0.00022217 | ||||
Unstake | 20674072 | 103 days ago | IN | 0 ETH | 0.00040223 | ||||
Unstake | 20671638 | 103 days ago | IN | 0 ETH | 0.00015861 | ||||
Unstake | 20671625 | 103 days ago | IN | 0 ETH | 0.00010269 | ||||
Unstake | 20671518 | 103 days ago | IN | 0 ETH | 0.00013501 | ||||
Unstake | 20671495 | 103 days ago | IN | 0 ETH | 0.00016023 | ||||
Unstake | 20671490 | 103 days ago | IN | 0 ETH | 0.00034256 | ||||
Unstake | 20671465 | 103 days ago | IN | 0 ETH | 0.00020049 | ||||
Unstake | 20671451 | 103 days ago | IN | 0 ETH | 0.00017624 | ||||
Unstake | 20489266 | 129 days ago | IN | 0 ETH | 0.00010668 | ||||
Unstake | 20473955 | 131 days ago | IN | 0 ETH | 0.00023443 | ||||
Unstake | 20036905 | 192 days ago | IN | 0 ETH | 0.00088142 | ||||
Unstake | 20036584 | 192 days ago | IN | 0 ETH | 0.0009057 | ||||
Unstake | 20031050 | 193 days ago | IN | 0 ETH | 0.00066804 | ||||
Unstake | 20031048 | 193 days ago | IN | 0 ETH | 0.00082283 | ||||
Unstake | 20031043 | 193 days ago | IN | 0 ETH | 0.00088718 | ||||
Unstake | 20031041 | 193 days ago | IN | 0 ETH | 0.00083151 | ||||
Unstake | 20031038 | 193 days ago | IN | 0 ETH | 0.00095485 | ||||
Unstake | 20031036 | 193 days ago | IN | 0 ETH | 0.00086731 | ||||
Unstake | 20031034 | 193 days ago | IN | 0 ETH | 0.00083469 | ||||
Unstake | 20031029 | 193 days ago | IN | 0 ETH | 0.00091413 | ||||
Unstake | 20031026 | 193 days ago | IN | 0 ETH | 0.00100913 | ||||
Unstake | 20031017 | 193 days ago | IN | 0 ETH | 0.00105862 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
AINStake
Compiler Version
v0.4.24+commit.e67f0147
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-12-06 */ /** *Submitted for verification at Etherscan.io on 2020-12-06 */ // SPDX-License-Identifier: MIT pragma solidity ^0.4.24; /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { function totalSupply() public view returns (uint256); function balanceOf(address who) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public view returns (uint256); function transferFrom(address from, address to, uint256 value) public returns (bool); function approve(address spender, uint256 value) public returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @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 OwnershipRenounced(address indexed previousOwner); 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, "Sender is not the 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) public onlyOwner { require(newOwner != address(0), "New owner address is invalid"); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } /** * @dev Allows the current owner to relinquish control of the contract. */ function renounceOwnership() public onlyOwner { emit OwnershipRenounced(owner); owner = address(0); } } /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { if (a == 0) { return 0; } c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ 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 a / b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; assert(c >= a); return c; } } /** * @dev A staking contract that pays interest if users and the owner (on behalf of users) stake * tokens */ contract AINStake is Ownable { using SafeMath for uint256; ERC20 public token; uint256 public closingTime; uint256 public interestRate = 1020000; // 1.02 (2%, monthly) uint256 public divider = 1000000; uint256 public maxStakingAmountPerUser = 20000 ether; // 20,000 AIN (~1,000,000 KRW) uint256 public maxUnstakingAmountPerUser = 40000 ether; // 40,000 AIN uint256 public maxStakingAmountPerContract = 2000000 ether; // 2,000,000 AIN (~100,000,000 KRW) uint256 constant public MONTH = 30 days; // ~1 month in seconds bool public stakingClosed = false; bool public contractClosed = false; bool public reEntrancyMutex = false; mapping(address => UserStake) public userStakeMap; // userAddress => { index, [{ amount, startTime }, ...] } // sum of all stakes from the user (only the principal amounts, stakes from the owner don't count) mapping(address => uint256) public singleStakeSum; // userAddress => sum uint256 public contractSingleStakeSum; address[] public userList; struct StakeItem { uint256 amount; // amount of tokens staked uint256 startTime; // timestamp when tokens are staked } struct UserStake { uint256 index; // index of the user within userList StakeItem[] stakes; // stakes from the user } event MultiStake(address[] users, uint256[] amounts, uint256 startTime); event Stake(address user, uint256 amount, uint256 startTime); event Unstake(address user, uint256 amount); constructor(ERC20 _token, uint256 _closingTime) public { token = _token; closingTime = _closingTime; } function userExists(address user) public view returns (bool) { return userStakeMap[user].index > 0 || (userList.length > 0 && userList[0] == user); } function getUserListLength() public view returns (uint256) { return userList.length; } function getUserStakeCount(address user) public view returns (uint256) { return userStakeMap[user].stakes.length; } /** * @return staking information of a user */ function getUserStake(address user, uint256 index) public view returns (uint256, uint256) { if (index >= getUserStakeCount(user)) { return (0, 0); } StakeItem memory item = userStakeMap[user].stakes[index]; return (item.amount, item.startTime); } /** * @dev Closes contract, return staked tokens to users, and transfer contract's tokens to the owner */ function closeContract() onlyOwner public returns (bool) { require(contractClosed == false, "contract is closed"); // unstake all users for (uint256 i = 0; i < userList.length; i++) { if (userStakeMap[userList[i]].stakes.length > 0) { _unstake(userList[i]); } } uint256 balance = token.balanceOf(address(this)); if (balance > 0) { require(token.transfer(owner, balance), "token transfer to owner failed"); } stakingClosed = true; contractClosed = true; return true; } /** * @dev Opens staking (users can start staking after calling this function) */ function openStaking() onlyOwner public returns (bool) { require(stakingClosed == true, "staking is open"); require(contractClosed == false, "contract is closed"); stakingClosed = false; return true; } /** * @dev Closes staking (users can only unstake after calling this function) */ function closeStaking() onlyOwner public returns (bool) { require(stakingClosed == false, "staking is closed"); stakingClosed = true; return true; } function setMaxStakingAmountPerUser(uint256 max) onlyOwner public { maxStakingAmountPerUser = max; } function setMaxUnstakingAmountPerUser(uint256 max) onlyOwner public { maxUnstakingAmountPerUser = max; } function setMaxStakingAmountPerContract(uint256 max) onlyOwner public { maxStakingAmountPerContract = max; } function extendContract(uint256 rate, uint256 time) onlyOwner public { require(contractClosed == false, "contract is closed"); require(block.timestamp >= closingTime, "cannot extend contract before the current closingTime"); if (interestRate != rate) { for (uint256 i = 0; i < userList.length; i++) { address user = userList[i]; uint256 total = calcUserStakeAndInterest(user, closingTime); resetUserStakes(user); _stake(user, total, block.timestamp); } interestRate = rate; } closingTime = time; } /** * @return sum of stakes from an address as well as stakes from the owner */ function getUserTotalStakeSum(address user) public view returns (uint256) { uint256 sum = 0; StakeItem[] memory stakes = userStakeMap[user].stakes; for (uint256 i = 0; i < stakes.length; i++) { sum = sum.add(stakes[i].amount); } return sum; } function min(uint256 a, uint256 b) public pure returns (uint256) { return a < b ? a : b; } /** * @return min(total stakes + interest earned from the stakes, maxUnstakingAmountPerUser) of an address */ function calcUserStakeAndInterest(address user, uint256 _endTime) public view returns (uint256) { uint256 endTime = min(_endTime, closingTime); uint256 total = 0; uint256 multiplier = 1000000; uint256 currentMonthsPassed = 0; uint256 currentMonthSum = 0; StakeItem[] memory stakes = userStakeMap[user].stakes; for (uint256 i = stakes.length; i > 0; i--) { // start with the most recent stakes uint256 amount = stakes[i.sub(1)].amount; uint256 startTime = stakes[i.sub(1)].startTime; if (startTime > endTime) { // should not happen total = total.add(amount); } else { uint256 monthsPassed = (endTime.sub(startTime)).div(MONTH); if (monthsPassed == currentMonthsPassed) { currentMonthSum = currentMonthSum.add(amount); } else { total = total.add(currentMonthSum.mul(multiplier).div(divider)); currentMonthSum = amount; while (currentMonthsPassed < monthsPassed) { multiplier = multiplier.mul(interestRate).div(divider); currentMonthsPassed = currentMonthsPassed.add(1); } } } } total = total.add(currentMonthSum.mul(multiplier).div(divider)); require(total <= maxUnstakingAmountPerUser, "maxUnstakingAmountPerUser exceeded"); return total; } /** * @return the total staked amount + interest in this contract */ function calcContractStakeAndInterest(uint256 endTime) public view returns (uint256) { uint256 total = 0; for (uint256 i = 0; i < userList.length; i++) { total = total.add(calcUserStakeAndInterest(userList[i], endTime)); } return total; } function addUser(address user) private { userList.push(user); userStakeMap[user].index = userList.length.sub(1); } /** * @dev Deletes user's stakes from userStakeMap (keeps the user in userList) */ function resetUserStakes(address user) private { // NOTE: decreasing array length will automatically clean up the storage slots occupied by // the out-of-bounds elements userStakeMap[user].stakes.length = 0; contractSingleStakeSum = contractSingleStakeSum.sub(singleStakeSum[user]); delete singleStakeSum[user]; } function addMultiStakeWhitelist(address[] users) onlyOwner public { for (uint256 i = 0; i < users.length; i++) { address user = users[i]; if (!userExists(user)) { addUser(user); } } } function _stake(address user, uint256 amount, uint256 startTime) private { userStakeMap[user].stakes.push(StakeItem(amount, startTime)); } /** * @dev Airdrops tokens, in the form of stakes, to multiple users. Note that before calling this * fucntion, the owner should call token.approve() for the transferFrom() to work, as well as * addMultiStakeWhitelist() to register users. */ function multiStake(address[] users, uint256[] amounts) onlyOwner public returns (bool) { require(contractClosed == false, "contract closed"); require(users.length == amounts.length, "array length mismatch"); address emptyAddr = address(0); uint256 amountTotal = 0; for (uint256 i = 0; i < amounts.length; i++) { require(users[i] != emptyAddr, "invalid address"); amountTotal = amountTotal.add(amounts[i]); } require(token.transferFrom(msg.sender, address(this), amountTotal), "transferFrom failed"); uint256 startTime = block.timestamp; for (uint256 j = 0; j < users.length; j++) { _stake(users[j], amounts[j], startTime); } emit MultiStake(users, amounts, startTime); return true; } /** * @dev Stakes tokens and earn interest. User must first approve this contract for transferring * her tokens. */ function stake(uint256 amount) public returns (bool) { require(!reEntrancyMutex, "re-entrancy occurred"); require(stakingClosed == false, "staking closed"); require(contractClosed == false, "contract closed"); require(block.timestamp < closingTime, "past closing time"); require(amount > 0, "invalid amount"); require(amount.add(singleStakeSum[msg.sender]) <= maxStakingAmountPerUser, "max user staking amount exceeded"); require(amount.add(contractSingleStakeSum) <= maxStakingAmountPerContract, "max contract staking amount exceeded"); reEntrancyMutex = true; require(token.transferFrom(msg.sender, address(this), amount), "transferFrom failed"); if (!userExists(msg.sender)) { addUser(msg.sender); } _stake(msg.sender, amount, block.timestamp); singleStakeSum[msg.sender] = singleStakeSum[msg.sender].add(amount); contractSingleStakeSum = contractSingleStakeSum.add(amount); reEntrancyMutex = false; emit Stake(msg.sender, amount, block.timestamp); return true; } function _unstake(address user) private returns (uint256) { require(!reEntrancyMutex, "re-entrancy occurred"); reEntrancyMutex = true; uint256 amount = calcUserStakeAndInterest(user, block.timestamp); require(amount > 0 && amount <= maxUnstakingAmountPerUser, "invalid unstaking amount"); resetUserStakes(user); require(token.transfer(user, amount), "transfer failed"); reEntrancyMutex = false; return amount; } /** * @dev Unstakes a user's stakes and interest all at once */ function unstake() public returns (bool) { require(contractClosed == false, "contract closed"); require(userStakeMap[msg.sender].stakes.length > 0, "no stakes"); uint256 amount = _unstake(msg.sender); emit Unstake(msg.sender, amount); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"getUserListLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"userExists","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"endTime","type":"uint256"}],"name":"calcContractStakeAndInterest","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"users","type":"address[]"}],"name":"addMultiStakeWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"getUserStakeCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"},{"name":"_endTime","type":"uint256"}],"name":"calcUserStakeAndInterest","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unstake","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"divider","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"singleStakeSum","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"max","type":"uint256"}],"name":"setMaxUnstakingAmountPerUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"closingTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"users","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"multiStake","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"closeContract","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"openStaking","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"rate","type":"uint256"},{"name":"time","type":"uint256"}],"name":"extendContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"uint256"},{"name":"b","type":"uint256"}],"name":"min","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"interestRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"getUserTotalStakeSum","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxStakingAmountPerUser","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxUnstakingAmountPerUser","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxStakingAmountPerContract","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"max","type":"uint256"}],"name":"setMaxStakingAmountPerContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"userStakeMap","outputs":[{"name":"index","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"closeStaking","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"contractSingleStakeSum","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"userList","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"stake","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"stakingClosed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reEntrancyMutex","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"max","type":"uint256"}],"name":"setMaxStakingAmountPerUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"},{"name":"index","type":"uint256"}],"name":"getUserStake","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MONTH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"contractClosed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_token","type":"address"},{"name":"_closingTime","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"users","type":"address[]"},{"indexed":false,"name":"amounts","type":"uint256[]"},{"indexed":false,"name":"startTime","type":"uint256"}],"name":"MultiStake","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"startTime","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Unstake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
6080604052620f9060600355620f424060045569043c33c1937564800000600555690878678326eac90000006006556a01a784379d99db420000006007556008805462ffffff1916905534801561005557600080fd5b506040516040806124a783398101604052805160209091015160008054600160a060020a0319908116331790915560018054600160a060020a0390941693909116929092179091556002556123f8806100af6000396000f3006080604052600436106101cc5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305fe2fc181146101d15780630e666e49146101f857806314b8cb1e1461022d5780631a666f93146102455780631b545a171461029c5780631cc7e151146102bd5780632def6620146102e1578063378efa37146102f65780633cf251c21461030b57806348415ada1461032c5780634b6753bc1461034457806350575ab814610359578063610be654146103e757806362581733146103fc578063715018a6146104115780637723d306146104265780637ae2b5c7146104415780637c3a00fd1461045c578063801aa5331461047157806381d38568146104925780638da5cb5b146104a75780638eff6dce146104d85780638f995d7d146104ed57806394130fe314610502578063960f5fc71461051a57806398cfe5871461053b57806398e98311146105505780639f4216e814610565578063a694fc3a1461057d578063a92ae61f14610595578063b0fdbb8a146105aa578063c094cb4f146105bf578063cec695fa146105d7578063d5999a5c14610614578063f2fde38b14610629578063f5e1a4521461064a578063fc0c546a1461065f575b600080fd5b3480156101dd57600080fd5b506101e6610674565b60408051918252519081900360200190f35b34801561020457600080fd5b50610219600160a060020a036004351661067b565b604080519115158252519081900360200190f35b34801561023957600080fd5b506101e66004356106e0565b34801561025157600080fd5b506040805160206004803580820135838102808601850190965280855261029a9536959394602494938501929182918501908490808284375094975061073d9650505050505050565b005b3480156102a857600080fd5b506101e6600160a060020a03600435166107e0565b3480156102c957600080fd5b506101e6600160a060020a03600435166024356107fe565b3480156102ed57600080fd5b50610219610a94565b34801561030257600080fd5b506101e6610bb1565b34801561031757600080fd5b506101e6600160a060020a0360043516610bb7565b34801561033857600080fd5b5061029a600435610bc9565b34801561035057600080fd5b506101e6610c1e565b34801561036557600080fd5b506040805160206004803580820135838102808601850190965280855261021995369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610c249650505050505050565b3480156103f357600080fd5b5061021961101b565b34801561040857600080fd5b50610219611311565b34801561041d57600080fd5b5061029a611431565b34801561043257600080fd5b5061029a6004356024356114d6565b34801561044d57600080fd5b506101e6600435602435611688565b34801561046857600080fd5b506101e66116a0565b34801561047d57600080fd5b506101e6600160a060020a03600435166116a6565b34801561049e57600080fd5b506101e6611774565b3480156104b357600080fd5b506104bc61177a565b60408051600160a060020a039092168252519081900360200190f35b3480156104e457600080fd5b506101e6611789565b3480156104f957600080fd5b506101e661178f565b34801561050e57600080fd5b5061029a600435611795565b34801561052657600080fd5b506101e6600160a060020a03600435166117ea565b34801561054757600080fd5b506102196117fc565b34801561055c57600080fd5b506101e66118bc565b34801561057157600080fd5b506104bc6004356118c2565b34801561058957600080fd5b506102196004356118ea565b3480156105a157600080fd5b50610219611d88565b3480156105b657600080fd5b50610219611d91565b3480156105cb57600080fd5b5061029a600435611da0565b3480156105e357600080fd5b506105fb600160a060020a0360043516602435611df5565b6040805192835260208301919091528051918290030190f35b34801561062057600080fd5b506101e6611e7e565b34801561063557600080fd5b5061029a600160a060020a0360043516611e85565b34801561065657600080fd5b50610219611f9d565b34801561066b57600080fd5b506104bc611fab565b600c545b90565b600160a060020a0381166000908152600960205260408120548110806106da5750600c5460001080156106da575081600160a060020a0316600c60008154811015156106c357fe5b600091825260209091200154600160a060020a0316145b92915050565b600080805b600c548110156107365761072c61071f600c8381548110151561070457fe5b600091825260209091200154600160a060020a0316866107fe565b839063ffffffff611fba16565b91506001016106e5565b5092915050565b600080548190600160a060020a03163314610790576040805160e560020a62461bcd02815260206004820152601760248201526000805160206123ad833981519152604482015290519081900360640190fd5b600091505b82518210156107db5782828151811015156107ac57fe5b9060200190602002015190506107c18161067b565b15156107d0576107d081611fc7565b600190910190610795565b505050565b600160a060020a031660009081526009602052604090206001015490565b600080600080600080606060008060008061081b8c600254611688565b600160a060020a038e1660009081526009602090815260408083206001018054825181850281018501909352808352949e50929c50620f42409b508c9a508a99509290899084015b828210156108a2576000848152602090819020604080518082019091526002850290910180548252600190810154828401529083529092019101610863565b505050509450845193505b60008411156109e557846108c885600163ffffffff61204816565b815181106108d257fe5b60209081029091010151519250846108f185600163ffffffff61204816565b815181106108fb57fe5b906020019060200201516020015191508982111561092a57610923898463ffffffff611fba16565b98506109d9565b61094d62278d006109418c8563ffffffff61204816565b9063ffffffff61205a16565b90508681141561096e57610967868463ffffffff611fba16565b95506109d9565b6004546109969061098990610941898c63ffffffff61206f16565b8a9063ffffffff611fba16565b98508295505b808710156109d9576109bf6004546109416003548b61206f90919063ffffffff16565b97506109d287600163ffffffff611fba16565b965061099c565b600019909301926108ad565b600454610a009061098990610941898c63ffffffff61206f16565b600654909950891115610a83576040805160e560020a62461bcd02815260206004820152602260248201527f6d6178556e7374616b696e67416d6f756e74506572557365722065786365656460448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b50969b9a5050505050505050505050565b6008546000908190610100900460ff1615610af9576040805160e560020a62461bcd02815260206004820152600f60248201527f636f6e747261637420636c6f7365640000000000000000000000000000000000604482015290519081900360640190fd5b3360009081526009602052604081206001015411610b61576040805160e560020a62461bcd02815260206004820152600960248201527f6e6f207374616b65730000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610b6a33612098565b604080513381526020810183905281519293507f85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd929081900390910190a1600191505b5090565b60045481565b600a6020526000908152604090205481565b600054600160a060020a03163314610c19576040805160e560020a62461bcd02815260206004820152601760248201526000805160206123ad833981519152604482015290519081900360640190fd5b600655565b60025481565b6000805481908190819081908190600160a060020a03163314610c7f576040805160e560020a62461bcd02815260206004820152601760248201526000805160206123ad833981519152604482015290519081900360640190fd5b600854610100900460ff1615610cdf576040805160e560020a62461bcd02815260206004820152600f60248201527f636f6e747261637420636c6f7365640000000000000000000000000000000000604482015290519081900360640190fd5b8651885114610d38576040805160e560020a62461bcd02815260206004820152601560248201527f6172726179206c656e677468206d69736d617463680000000000000000000000604482015290519081900360640190fd5b6000945060009350600092505b8651831015610e045784600160a060020a03168884815181101515610d6657fe5b60209081029091010151600160a060020a03161415610dcf576040805160e560020a62461bcd02815260206004820152600f60248201527f696e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b610df78784815181101515610de057fe5b60209081029091010151859063ffffffff611fba16565b9350600190920191610d45565b600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b158015610e7757600080fd5b505af1158015610e8b573d6000803e3d6000fd5b505050506040513d6020811015610ea157600080fd5b50511515610ef9576040805160e560020a62461bcd02815260206004820152601360248201527f7472616e7366657246726f6d206661696c656400000000000000000000000000604482015290519081900360640190fd5b5042905060005b8751811015610f4a57610f428882815181101515610f1a57fe5b906020019060200201518883815181101515610f3257fe5b906020019060200201518461228f565b600101610f00565b7f3039deda8e3547b9834f246c3c9393f90689ed77a592bc0ac354f221f3da43e4888884604051808060200180602001848152602001838103835286818151815260200191508051906020019060200280838360005b83811015610fb8578181015183820152602001610fa0565b50505050905001838103825285818151815260200191508051906020019060200280838360005b83811015610ff7578181015183820152602001610fdf565b505050509050019550505050505060405180910390a1506001979650505050505050565b6000805481908190600160a060020a03163314611070576040805160e560020a62461bcd02815260206004820152601760248201526000805160206123ad833981519152604482015290519081900360640190fd5b600854610100900460ff16156110d0576040805160e560020a62461bcd02815260206004820152601260248201527f636f6e747261637420697320636c6f7365640000000000000000000000000000604482015290519081900360640190fd5b600091505b600c5482101561115b57600060096000600c858154811015156110f457fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190206001015411156111505761114e600c8381548110151561113457fe5b600091825260209091200154600160a060020a0316612098565b505b6001909101906110d5565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156111c157600080fd5b505af11580156111d5573d6000803e3d6000fd5b505050506040513d60208110156111eb57600080fd5b5051905060008111156112f05760015460008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018690529051919093169263a9059cbb9260448083019360209390929083900390910190829087803b15801561126e57600080fd5b505af1158015611282573d6000803e3d6000fd5b505050506040513d602081101561129857600080fd5b505115156112f0576040805160e560020a62461bcd02815260206004820152601e60248201527f746f6b656e207472616e7366657220746f206f776e6572206661696c65640000604482015290519081900360640190fd5b505060088054610100600160ff19909216821761ff00191617909155919050565b60008054600160a060020a03163314611362576040805160e560020a62461bcd02815260206004820152601760248201526000805160206123ad833981519152604482015290519081900360640190fd5b60085460ff1615156001146113c1576040805160e560020a62461bcd02815260206004820152600f60248201527f7374616b696e67206973206f70656e0000000000000000000000000000000000604482015290519081900360640190fd5b600854610100900460ff1615611421576040805160e560020a62461bcd02815260206004820152601260248201527f636f6e747261637420697320636c6f7365640000000000000000000000000000604482015290519081900360640190fd5b506008805460ff19169055600190565b600054600160a060020a03163314611481576040805160e560020a62461bcd02815260206004820152601760248201526000805160206123ad833981519152604482015290519081900360640190fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000805481908190600160a060020a0316331461152b576040805160e560020a62461bcd02815260206004820152601760248201526000805160206123ad833981519152604482015290519081900360640190fd5b600854610100900460ff161561158b576040805160e560020a62461bcd02815260206004820152601260248201527f636f6e747261637420697320636c6f7365640000000000000000000000000000604482015290519081900360640190fd5b60025442101561160b576040805160e560020a62461bcd02815260206004820152603560248201527f63616e6e6f7420657874656e6420636f6e7472616374206265666f726520746860448201527f652063757272656e7420636c6f73696e6754696d650000000000000000000000606482015290519081900360840190fd5b600354851461167f57600092505b600c5483101561167957600c80548490811061163157fe5b600091825260209091200154600254600160a060020a0390911692506116589083906107fe565b9050611663826122e3565b61166e82824261228f565b600190920191611619565b60038590555b50505060025550565b60008183106116975781611699565b825b9392505050565b60035481565b600160a060020a038116600090815260096020908152604080832060010180548251818502810185019093528083528493606093859390929091849084015b828210156117245760008481526020908190206040805180820190915260028502909101805482526001908101548284015290835290920191016116e5565b505050509150600090505b815181101561176b57611761828281518110151561174957fe5b6020908102909101015151849063ffffffff611fba16565b925060010161172f565b50909392505050565b60055481565b600054600160a060020a031681565b60065481565b60075481565b600054600160a060020a031633146117e5576040805160e560020a62461bcd02815260206004820152601760248201526000805160206123ad833981519152604482015290519081900360640190fd5b600755565b60096020526000908152604090205481565b60008054600160a060020a0316331461184d576040805160e560020a62461bcd02815260206004820152601760248201526000805160206123ad833981519152604482015290519081900360640190fd5b60085460ff16156118a8576040805160e560020a62461bcd02815260206004820152601160248201527f7374616b696e6720697320636c6f736564000000000000000000000000000000604482015290519081900360640190fd5b506008805460ff1916600190811790915590565b600b5481565b600c8054829081106118d057fe5b600091825260209091200154600160a060020a0316905081565b60085460009062010000900460ff161561194e576040805160e560020a62461bcd02815260206004820152601460248201527f72652d656e7472616e6379206f63637572726564000000000000000000000000604482015290519081900360640190fd5b60085460ff16156119a9576040805160e560020a62461bcd02815260206004820152600e60248201527f7374616b696e6720636c6f736564000000000000000000000000000000000000604482015290519081900360640190fd5b600854610100900460ff1615611a09576040805160e560020a62461bcd02815260206004820152600f60248201527f636f6e747261637420636c6f7365640000000000000000000000000000000000604482015290519081900360640190fd5b6002544210611a62576040805160e560020a62461bcd02815260206004820152601160248201527f7061737420636c6f73696e672074696d65000000000000000000000000000000604482015290519081900360640190fd5b60008211611aba576040805160e560020a62461bcd02815260206004820152600e60248201527f696e76616c696420616d6f756e74000000000000000000000000000000000000604482015290519081900360640190fd5b600554336000908152600a6020526040902054611ade90849063ffffffff611fba16565b1115611b34576040805160e560020a62461bcd02815260206004820181905260248201527f6d61782075736572207374616b696e6720616d6f756e74206578636565646564604482015290519081900360640190fd5b600754600b54611b4b90849063ffffffff611fba16565b1115611bc6576040805160e560020a62461bcd028152602060048201526024808201527f6d617820636f6e7472616374207374616b696e6720616d6f756e74206578636560448201527f6564656400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6008805462ff0000191662010000179055600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b158015611c4a57600080fd5b505af1158015611c5e573d6000803e3d6000fd5b505050506040513d6020811015611c7457600080fd5b50511515611ccc576040805160e560020a62461bcd02815260206004820152601360248201527f7472616e7366657246726f6d206661696c656400000000000000000000000000604482015290519081900360640190fd5b611cd53361067b565b1515611ce457611ce433611fc7565b611cef33834261228f565b336000908152600a6020526040902054611d0f908363ffffffff611fba16565b336000908152600a6020526040902055600b54611d32908363ffffffff611fba16565b600b556008805462ff0000191690556040805133815260208101849052428183015290517f5af417134f72a9d41143ace85b0a26dce6f550f894f2cbc1eeee8810603d91b69181900360600190a1506001919050565b60085460ff1681565b60085462010000900460ff1681565b600054600160a060020a03163314611df0576040805160e560020a62461bcd02815260206004820152601760248201526000805160206123ad833981519152604482015290519081900360640190fd5b600555565b600080611e00612351565b611e09856107e0565b8410611e1b5760009250829150611e76565b600160a060020a0385166000908152600960205260409020600101805485908110611e4257fe5b6000918252602091829020604080518082019091526002909202018054808352600190910154928201839052945090925090505b509250929050565b62278d0081565b600054600160a060020a03163314611ed5576040805160e560020a62461bcd02815260206004820152601760248201526000805160206123ad833981519152604482015290519081900360640190fd5b600160a060020a0381161515611f35576040805160e560020a62461bcd02815260206004820152601c60248201527f4e6577206f776e6572206164647265737320697320696e76616c696400000000604482015290519081900360640190fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600854610100900460ff1681565b600154600160a060020a031681565b818101828110156106da57fe5b600c80546001808201835560008390527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038516179055905461202c91612048565b600160a060020a03909116600090815260096020526040902055565b60008282111561205457fe5b50900390565b6000818381151561206757fe5b049392505050565b6000821515612080575060006106da565b5081810281838281151561209057fe5b04146106da57fe5b600854600090819062010000900460ff16156120fe576040805160e560020a62461bcd02815260206004820152601460248201527f72652d656e7472616e6379206f63637572726564000000000000000000000000604482015290519081900360640190fd5b6008805462ff000019166201000017905561211983426107fe565b905060008111801561212d57506006548111155b1515612183576040805160e560020a62461bcd02815260206004820152601860248201527f696e76616c696420756e7374616b696e6720616d6f756e740000000000000000604482015290519081900360640190fd5b61218c836122e3565b600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156121fb57600080fd5b505af115801561220f573d6000803e3d6000fd5b505050506040513d602081101561222557600080fd5b5051151561227d576040805160e560020a62461bcd02815260206004820152600f60248201527f7472616e73666572206661696c65640000000000000000000000000000000000604482015290519081900360640190fd5b6008805462ff00001916905592915050565b600160a060020a039092166000908152600960209081526040808320815180830190925293815280820194855260019384018054808601825590845291909220915160029091029091019081559151910155565b600160a060020a03811660009081526009602052604081206123089060010182612368565b50600160a060020a0381166000908152600a6020526040902054600b546123349163ffffffff61204816565b600b55600160a060020a03166000908152600a6020526040812055565b604080518082019091526000808252602082015290565b8154818355818111156107db576000838152602090206107db916106789160029182028101918502015b80821115610bad5760008082556001820155600201612392560053656e646572206973206e6f7420746865206f776e6572000000000000000000a165627a7a72305820d19182511b2dd316ed8419252abaf3f58e5008699c552b143e78b1070f777c4000290000000000000000000000003a810ff7211b40c4fa76205a14efe161615d03850000000000000000000000000000000000000000000000000000000061b14700
Deployed Bytecode
0x6080604052600436106101cc5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305fe2fc181146101d15780630e666e49146101f857806314b8cb1e1461022d5780631a666f93146102455780631b545a171461029c5780631cc7e151146102bd5780632def6620146102e1578063378efa37146102f65780633cf251c21461030b57806348415ada1461032c5780634b6753bc1461034457806350575ab814610359578063610be654146103e757806362581733146103fc578063715018a6146104115780637723d306146104265780637ae2b5c7146104415780637c3a00fd1461045c578063801aa5331461047157806381d38568146104925780638da5cb5b146104a75780638eff6dce146104d85780638f995d7d146104ed57806394130fe314610502578063960f5fc71461051a57806398cfe5871461053b57806398e98311146105505780639f4216e814610565578063a694fc3a1461057d578063a92ae61f14610595578063b0fdbb8a146105aa578063c094cb4f146105bf578063cec695fa146105d7578063d5999a5c14610614578063f2fde38b14610629578063f5e1a4521461064a578063fc0c546a1461065f575b600080fd5b3480156101dd57600080fd5b506101e6610674565b60408051918252519081900360200190f35b34801561020457600080fd5b50610219600160a060020a036004351661067b565b604080519115158252519081900360200190f35b34801561023957600080fd5b506101e66004356106e0565b34801561025157600080fd5b506040805160206004803580820135838102808601850190965280855261029a9536959394602494938501929182918501908490808284375094975061073d9650505050505050565b005b3480156102a857600080fd5b506101e6600160a060020a03600435166107e0565b3480156102c957600080fd5b506101e6600160a060020a03600435166024356107fe565b3480156102ed57600080fd5b50610219610a94565b34801561030257600080fd5b506101e6610bb1565b34801561031757600080fd5b506101e6600160a060020a0360043516610bb7565b34801561033857600080fd5b5061029a600435610bc9565b34801561035057600080fd5b506101e6610c1e565b34801561036557600080fd5b506040805160206004803580820135838102808601850190965280855261021995369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610c249650505050505050565b3480156103f357600080fd5b5061021961101b565b34801561040857600080fd5b50610219611311565b34801561041d57600080fd5b5061029a611431565b34801561043257600080fd5b5061029a6004356024356114d6565b34801561044d57600080fd5b506101e6600435602435611688565b34801561046857600080fd5b506101e66116a0565b34801561047d57600080fd5b506101e6600160a060020a03600435166116a6565b34801561049e57600080fd5b506101e6611774565b3480156104b357600080fd5b506104bc61177a565b60408051600160a060020a039092168252519081900360200190f35b3480156104e457600080fd5b506101e6611789565b3480156104f957600080fd5b506101e661178f565b34801561050e57600080fd5b5061029a600435611795565b34801561052657600080fd5b506101e6600160a060020a03600435166117ea565b34801561054757600080fd5b506102196117fc565b34801561055c57600080fd5b506101e66118bc565b34801561057157600080fd5b506104bc6004356118c2565b34801561058957600080fd5b506102196004356118ea565b3480156105a157600080fd5b50610219611d88565b3480156105b657600080fd5b50610219611d91565b3480156105cb57600080fd5b5061029a600435611da0565b3480156105e357600080fd5b506105fb600160a060020a0360043516602435611df5565b6040805192835260208301919091528051918290030190f35b34801561062057600080fd5b506101e6611e7e565b34801561063557600080fd5b5061029a600160a060020a0360043516611e85565b34801561065657600080fd5b50610219611f9d565b34801561066b57600080fd5b506104bc611fab565b600c545b90565b600160a060020a0381166000908152600960205260408120548110806106da5750600c5460001080156106da575081600160a060020a0316600c60008154811015156106c357fe5b600091825260209091200154600160a060020a0316145b92915050565b600080805b600c548110156107365761072c61071f600c8381548110151561070457fe5b600091825260209091200154600160a060020a0316866107fe565b839063ffffffff611fba16565b91506001016106e5565b5092915050565b600080548190600160a060020a03163314610790576040805160e560020a62461bcd02815260206004820152601760248201526000805160206123ad833981519152604482015290519081900360640190fd5b600091505b82518210156107db5782828151811015156107ac57fe5b9060200190602002015190506107c18161067b565b15156107d0576107d081611fc7565b600190910190610795565b505050565b600160a060020a031660009081526009602052604090206001015490565b600080600080600080606060008060008061081b8c600254611688565b600160a060020a038e1660009081526009602090815260408083206001018054825181850281018501909352808352949e50929c50620f42409b508c9a508a99509290899084015b828210156108a2576000848152602090819020604080518082019091526002850290910180548252600190810154828401529083529092019101610863565b505050509450845193505b60008411156109e557846108c885600163ffffffff61204816565b815181106108d257fe5b60209081029091010151519250846108f185600163ffffffff61204816565b815181106108fb57fe5b906020019060200201516020015191508982111561092a57610923898463ffffffff611fba16565b98506109d9565b61094d62278d006109418c8563ffffffff61204816565b9063ffffffff61205a16565b90508681141561096e57610967868463ffffffff611fba16565b95506109d9565b6004546109969061098990610941898c63ffffffff61206f16565b8a9063ffffffff611fba16565b98508295505b808710156109d9576109bf6004546109416003548b61206f90919063ffffffff16565b97506109d287600163ffffffff611fba16565b965061099c565b600019909301926108ad565b600454610a009061098990610941898c63ffffffff61206f16565b600654909950891115610a83576040805160e560020a62461bcd02815260206004820152602260248201527f6d6178556e7374616b696e67416d6f756e74506572557365722065786365656460448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b50969b9a5050505050505050505050565b6008546000908190610100900460ff1615610af9576040805160e560020a62461bcd02815260206004820152600f60248201527f636f6e747261637420636c6f7365640000000000000000000000000000000000604482015290519081900360640190fd5b3360009081526009602052604081206001015411610b61576040805160e560020a62461bcd02815260206004820152600960248201527f6e6f207374616b65730000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610b6a33612098565b604080513381526020810183905281519293507f85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd929081900390910190a1600191505b5090565b60045481565b600a6020526000908152604090205481565b600054600160a060020a03163314610c19576040805160e560020a62461bcd02815260206004820152601760248201526000805160206123ad833981519152604482015290519081900360640190fd5b600655565b60025481565b6000805481908190819081908190600160a060020a03163314610c7f576040805160e560020a62461bcd02815260206004820152601760248201526000805160206123ad833981519152604482015290519081900360640190fd5b600854610100900460ff1615610cdf576040805160e560020a62461bcd02815260206004820152600f60248201527f636f6e747261637420636c6f7365640000000000000000000000000000000000604482015290519081900360640190fd5b8651885114610d38576040805160e560020a62461bcd02815260206004820152601560248201527f6172726179206c656e677468206d69736d617463680000000000000000000000604482015290519081900360640190fd5b6000945060009350600092505b8651831015610e045784600160a060020a03168884815181101515610d6657fe5b60209081029091010151600160a060020a03161415610dcf576040805160e560020a62461bcd02815260206004820152600f60248201527f696e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b610df78784815181101515610de057fe5b60209081029091010151859063ffffffff611fba16565b9350600190920191610d45565b600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b158015610e7757600080fd5b505af1158015610e8b573d6000803e3d6000fd5b505050506040513d6020811015610ea157600080fd5b50511515610ef9576040805160e560020a62461bcd02815260206004820152601360248201527f7472616e7366657246726f6d206661696c656400000000000000000000000000604482015290519081900360640190fd5b5042905060005b8751811015610f4a57610f428882815181101515610f1a57fe5b906020019060200201518883815181101515610f3257fe5b906020019060200201518461228f565b600101610f00565b7f3039deda8e3547b9834f246c3c9393f90689ed77a592bc0ac354f221f3da43e4888884604051808060200180602001848152602001838103835286818151815260200191508051906020019060200280838360005b83811015610fb8578181015183820152602001610fa0565b50505050905001838103825285818151815260200191508051906020019060200280838360005b83811015610ff7578181015183820152602001610fdf565b505050509050019550505050505060405180910390a1506001979650505050505050565b6000805481908190600160a060020a03163314611070576040805160e560020a62461bcd02815260206004820152601760248201526000805160206123ad833981519152604482015290519081900360640190fd5b600854610100900460ff16156110d0576040805160e560020a62461bcd02815260206004820152601260248201527f636f6e747261637420697320636c6f7365640000000000000000000000000000604482015290519081900360640190fd5b600091505b600c5482101561115b57600060096000600c858154811015156110f457fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190206001015411156111505761114e600c8381548110151561113457fe5b600091825260209091200154600160a060020a0316612098565b505b6001909101906110d5565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156111c157600080fd5b505af11580156111d5573d6000803e3d6000fd5b505050506040513d60208110156111eb57600080fd5b5051905060008111156112f05760015460008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018690529051919093169263a9059cbb9260448083019360209390929083900390910190829087803b15801561126e57600080fd5b505af1158015611282573d6000803e3d6000fd5b505050506040513d602081101561129857600080fd5b505115156112f0576040805160e560020a62461bcd02815260206004820152601e60248201527f746f6b656e207472616e7366657220746f206f776e6572206661696c65640000604482015290519081900360640190fd5b505060088054610100600160ff19909216821761ff00191617909155919050565b60008054600160a060020a03163314611362576040805160e560020a62461bcd02815260206004820152601760248201526000805160206123ad833981519152604482015290519081900360640190fd5b60085460ff1615156001146113c1576040805160e560020a62461bcd02815260206004820152600f60248201527f7374616b696e67206973206f70656e0000000000000000000000000000000000604482015290519081900360640190fd5b600854610100900460ff1615611421576040805160e560020a62461bcd02815260206004820152601260248201527f636f6e747261637420697320636c6f7365640000000000000000000000000000604482015290519081900360640190fd5b506008805460ff19169055600190565b600054600160a060020a03163314611481576040805160e560020a62461bcd02815260206004820152601760248201526000805160206123ad833981519152604482015290519081900360640190fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000805481908190600160a060020a0316331461152b576040805160e560020a62461bcd02815260206004820152601760248201526000805160206123ad833981519152604482015290519081900360640190fd5b600854610100900460ff161561158b576040805160e560020a62461bcd02815260206004820152601260248201527f636f6e747261637420697320636c6f7365640000000000000000000000000000604482015290519081900360640190fd5b60025442101561160b576040805160e560020a62461bcd02815260206004820152603560248201527f63616e6e6f7420657874656e6420636f6e7472616374206265666f726520746860448201527f652063757272656e7420636c6f73696e6754696d650000000000000000000000606482015290519081900360840190fd5b600354851461167f57600092505b600c5483101561167957600c80548490811061163157fe5b600091825260209091200154600254600160a060020a0390911692506116589083906107fe565b9050611663826122e3565b61166e82824261228f565b600190920191611619565b60038590555b50505060025550565b60008183106116975781611699565b825b9392505050565b60035481565b600160a060020a038116600090815260096020908152604080832060010180548251818502810185019093528083528493606093859390929091849084015b828210156117245760008481526020908190206040805180820190915260028502909101805482526001908101548284015290835290920191016116e5565b505050509150600090505b815181101561176b57611761828281518110151561174957fe5b6020908102909101015151849063ffffffff611fba16565b925060010161172f565b50909392505050565b60055481565b600054600160a060020a031681565b60065481565b60075481565b600054600160a060020a031633146117e5576040805160e560020a62461bcd02815260206004820152601760248201526000805160206123ad833981519152604482015290519081900360640190fd5b600755565b60096020526000908152604090205481565b60008054600160a060020a0316331461184d576040805160e560020a62461bcd02815260206004820152601760248201526000805160206123ad833981519152604482015290519081900360640190fd5b60085460ff16156118a8576040805160e560020a62461bcd02815260206004820152601160248201527f7374616b696e6720697320636c6f736564000000000000000000000000000000604482015290519081900360640190fd5b506008805460ff1916600190811790915590565b600b5481565b600c8054829081106118d057fe5b600091825260209091200154600160a060020a0316905081565b60085460009062010000900460ff161561194e576040805160e560020a62461bcd02815260206004820152601460248201527f72652d656e7472616e6379206f63637572726564000000000000000000000000604482015290519081900360640190fd5b60085460ff16156119a9576040805160e560020a62461bcd02815260206004820152600e60248201527f7374616b696e6720636c6f736564000000000000000000000000000000000000604482015290519081900360640190fd5b600854610100900460ff1615611a09576040805160e560020a62461bcd02815260206004820152600f60248201527f636f6e747261637420636c6f7365640000000000000000000000000000000000604482015290519081900360640190fd5b6002544210611a62576040805160e560020a62461bcd02815260206004820152601160248201527f7061737420636c6f73696e672074696d65000000000000000000000000000000604482015290519081900360640190fd5b60008211611aba576040805160e560020a62461bcd02815260206004820152600e60248201527f696e76616c696420616d6f756e74000000000000000000000000000000000000604482015290519081900360640190fd5b600554336000908152600a6020526040902054611ade90849063ffffffff611fba16565b1115611b34576040805160e560020a62461bcd02815260206004820181905260248201527f6d61782075736572207374616b696e6720616d6f756e74206578636565646564604482015290519081900360640190fd5b600754600b54611b4b90849063ffffffff611fba16565b1115611bc6576040805160e560020a62461bcd028152602060048201526024808201527f6d617820636f6e7472616374207374616b696e6720616d6f756e74206578636560448201527f6564656400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6008805462ff0000191662010000179055600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b158015611c4a57600080fd5b505af1158015611c5e573d6000803e3d6000fd5b505050506040513d6020811015611c7457600080fd5b50511515611ccc576040805160e560020a62461bcd02815260206004820152601360248201527f7472616e7366657246726f6d206661696c656400000000000000000000000000604482015290519081900360640190fd5b611cd53361067b565b1515611ce457611ce433611fc7565b611cef33834261228f565b336000908152600a6020526040902054611d0f908363ffffffff611fba16565b336000908152600a6020526040902055600b54611d32908363ffffffff611fba16565b600b556008805462ff0000191690556040805133815260208101849052428183015290517f5af417134f72a9d41143ace85b0a26dce6f550f894f2cbc1eeee8810603d91b69181900360600190a1506001919050565b60085460ff1681565b60085462010000900460ff1681565b600054600160a060020a03163314611df0576040805160e560020a62461bcd02815260206004820152601760248201526000805160206123ad833981519152604482015290519081900360640190fd5b600555565b600080611e00612351565b611e09856107e0565b8410611e1b5760009250829150611e76565b600160a060020a0385166000908152600960205260409020600101805485908110611e4257fe5b6000918252602091829020604080518082019091526002909202018054808352600190910154928201839052945090925090505b509250929050565b62278d0081565b600054600160a060020a03163314611ed5576040805160e560020a62461bcd02815260206004820152601760248201526000805160206123ad833981519152604482015290519081900360640190fd5b600160a060020a0381161515611f35576040805160e560020a62461bcd02815260206004820152601c60248201527f4e6577206f776e6572206164647265737320697320696e76616c696400000000604482015290519081900360640190fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600854610100900460ff1681565b600154600160a060020a031681565b818101828110156106da57fe5b600c80546001808201835560008390527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038516179055905461202c91612048565b600160a060020a03909116600090815260096020526040902055565b60008282111561205457fe5b50900390565b6000818381151561206757fe5b049392505050565b6000821515612080575060006106da565b5081810281838281151561209057fe5b04146106da57fe5b600854600090819062010000900460ff16156120fe576040805160e560020a62461bcd02815260206004820152601460248201527f72652d656e7472616e6379206f63637572726564000000000000000000000000604482015290519081900360640190fd5b6008805462ff000019166201000017905561211983426107fe565b905060008111801561212d57506006548111155b1515612183576040805160e560020a62461bcd02815260206004820152601860248201527f696e76616c696420756e7374616b696e6720616d6f756e740000000000000000604482015290519081900360640190fd5b61218c836122e3565b600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156121fb57600080fd5b505af115801561220f573d6000803e3d6000fd5b505050506040513d602081101561222557600080fd5b5051151561227d576040805160e560020a62461bcd02815260206004820152600f60248201527f7472616e73666572206661696c65640000000000000000000000000000000000604482015290519081900360640190fd5b6008805462ff00001916905592915050565b600160a060020a039092166000908152600960209081526040808320815180830190925293815280820194855260019384018054808601825590845291909220915160029091029091019081559151910155565b600160a060020a03811660009081526009602052604081206123089060010182612368565b50600160a060020a0381166000908152600a6020526040902054600b546123349163ffffffff61204816565b600b55600160a060020a03166000908152600a6020526040812055565b604080518082019091526000808252602082015290565b8154818355818111156107db576000838152602090206107db916106789160029182028101918502015b80821115610bad5760008082556001820155600201612392560053656e646572206973206e6f7420746865206f776e6572000000000000000000a165627a7a72305820d19182511b2dd316ed8419252abaf3f58e5008699c552b143e78b1070f777c400029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000003a810ff7211b40c4fa76205a14efe161615d03850000000000000000000000000000000000000000000000000000000061b14700
-----Decoded View---------------
Arg [0] : _token (address): 0x3A810ff7211b40c4fA76205a14efe161615d0385
Arg [1] : _closingTime (uint256): 1639008000
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000003a810ff7211b40c4fa76205a14efe161615d0385
Arg [1] : 0000000000000000000000000000000000000000000000000000000061b14700
Deployed Bytecode Sourcemap
3849:11902:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5716:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5716:100:0;;;;;;;;;;;;;;;;;;;;5545:163;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5545:163:0;-1:-1:-1;;;;;5545:163:0;;;;;;;;;;;;;;;;;;;;;;;11066:292;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11066:292:0;;;;;11983:262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11983:262:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11983:262:0;;-1:-1:-1;11983:262:0;;-1:-1:-1;;;;;;;11983:262:0;;;5824:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5824:129:0;-1:-1:-1;;;;;5824:129:0;;;;;9424:1548;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9424:1548:0;-1:-1:-1;;;;;9424:1548:0;;;;;;;15449:299;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15449:299:0;;;;4044:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4044:32:0;;;;4763:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4763:49:0;-1:-1:-1;;;;;4763:49:0;;;;;7844:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7844:118:0;;;;;3945:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3945:26:0;;;;12684:844;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12684:844:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12684:844:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12684:844:0;;;;-1:-1:-1;12684:844:0;-1:-1:-1;12684:844:0;;-1:-1:-1;12684:844:0;;;;;;;;;-1:-1:-1;12684:844:0;;-1:-1:-1;12684:844:0;;-1:-1:-1;;;;;;;12684:844:0;6456:622;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6456:622:0;;;;7185:242;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7185:242:0;;;;2342:124;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2342:124:0;;;;8100:667;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8100:667:0;;;;;;;9185:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9185:104:0;;;;;;;3978:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3978:37:0;;;;8872:305;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8872:305:0;-1:-1:-1;;;;;8872:305:0;;;;;4083:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4083:52:0;;;;1265:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1265:20:0;;;;;;;;-1:-1:-1;;;;;1265:20:0;;;;;;;;;;;;;;4173:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4173:54:0;;;;4248:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4248:58:0;;;;7970:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7970:122:0;;;;;4545:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4545:49:0;-1:-1:-1;;;;;4545:49:0;;;;;7534:180;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7534:180:0;;;;4841:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4841:37:0;;;;4885:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4885:25:0;;;;;13675:1189;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13675:1189:0;;;;;4420:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4420:33:0;;;;4501:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4501:35:0;;;;7722:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7722:114:0;;;;;6025:300;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6025:300:0;-1:-1:-1;;;;;6025:300:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4349:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4349:39:0;;;;2015:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2015:224:0;-1:-1:-1;;;;;2015:224:0;;;;;4460:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4460:34:0;;;;3920:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3920:18:0;;;;5716:100;5793:8;:15;5716:100;;:::o;5545:163::-;-1:-1:-1;;;;;5624:18:0;;5600:4;5624:18;;;:12;:18;;;;;:24;:28;-1:-1:-1;5624:28:0;:76;;-1:-1:-1;5657:8:0;:15;5675:1;-1:-1:-1;5657:42:0;;;;;5695:4;-1:-1:-1;;;;;5680:19:0;:8;5689:1;5680:11;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5680:11:0;:19;5657:42;5617:83;5545:163;-1:-1:-1;;5545:163:0:o;11066:292::-;11142:7;;;11190:138;11214:8;:15;11210:19;;11190:138;;;11259:57;11269:46;11294:8;11303:1;11294:11;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11294:11:0;11307:7;11269:24;:46::i;:::-;11259:5;;:57;:9;:57;:::i;:::-;11251:65;-1:-1:-1;11231:3:0;;11190:138;;;-1:-1:-1;11345:5:0;11066:292;-1:-1:-1;;11066:292:0:o;11983:262::-;12065:9;1785:5;;12065:9;;-1:-1:-1;;;;;1785:5:0;1771:10;:19;1763:55;;;;;-1:-1:-1;;;;;1763:55:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1763:55:0;;;;;;;;;;;;;;;12077:1;12065:13;;12060:178;12084:5;:12;12080:1;:16;12060:178;;;12133:5;12139:1;12133:8;;;;;;;;;;;;;;;;;;12118:23;;12161:16;12172:4;12161:10;:16::i;:::-;12160:17;12156:71;;;12198:13;12206:4;12198:7;:13::i;:::-;12098:3;;;;;12060:178;;;11983:262;;;:::o;5824:129::-;-1:-1:-1;;;;;5913:18:0;5886:7;5913:18;;;:12;:18;;;;;:25;;:32;;5824:129::o;9424:1548::-;9511:7;9531:15;9586:13;9614:18;9653:27;9695:23;9733:25;9802:9;9893:14;9948:17;10140:20;9549:26;9553:8;9563:11;;9549:3;:26::i;:::-;-1:-1:-1;;;;;9761:18:0;;9602:1;9761:18;;;:12;:18;;;;;;;;:25;;9733:53;;;;;;;;;;;;;;;;;9531:44;;-1:-1:-1;9602:1:0;;-1:-1:-1;9635:7:0;;-1:-1:-1;9602:1:0;;-1:-1:-1;9602:1:0;;-1:-1:-1;9733:53:0;;9602:1;;9733:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9814:6;:13;9802:25;;9797:979;9833:1;9829;:5;9797:979;;;9910:6;9917:8;:1;9923;9917:8;:5;:8;:::i;:::-;9910:16;;;;;;;;;;;;;;;;;:23;;-1:-1:-1;9968:6:0;9975:8;:1;9981;9975:8;:5;:8;:::i;:::-;9968:16;;;;;;;;;;;;;;;;:26;;;9948:46;;10025:7;10013:9;:19;10009:756;;;10082:17;:5;10092:6;10082:17;:9;:17;:::i;:::-;10074:25;;10009:756;;;10163:35;4381:7;10164:22;:7;10176:9;10164:22;:11;:22;:::i;:::-;10163:28;:35;:28;:35;:::i;:::-;10140:58;;10237:19;10221:12;:35;10217:533;;;10299:27;:15;10319:6;10299:27;:19;:27;:::i;:::-;10281:45;;10217:533;;;10429:7;;10383:55;;10393:44;;:31;:15;10413:10;10393:31;:19;:31;:::i;:44::-;10383:5;;:55;:9;:55;:::i;:::-;10375:63;;10479:6;10461:24;;10508:223;10537:12;10515:19;:34;10508:223;;;10591:41;10624:7;;10591:28;10606:12;;10591:10;:14;;:28;;;;:::i;:41::-;10578:54;-1:-1:-1;10681:26:0;:19;10705:1;10681:26;:23;:26;:::i;:::-;10659:48;;10508:223;;;-1:-1:-1;;9836:3:0;;;;9797:979;;;10840:7;;10794:55;;10804:44;;:31;:15;10824:10;10804:31;:19;:31;:::i;10794:55::-;10877:25;;10786:63;;-1:-1:-1;10868:34:0;;;10860:81;;;;;-1:-1:-1;;;;;10860:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10959:5:0;;9424:1548;-1:-1:-1;;;;;;;;;;;9424:1548:0:o;15449:299::-;15509:14;;15484:4;;;;15509:14;;;;;:23;15501:51;;;;;-1:-1:-1;;;;;15501:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15584:10;15612:1;15571:24;;;:12;:24;;;;;:31;;:38;:42;15563:64;;;;;-1:-1:-1;;;;;15563:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15655:20;15664:10;15655:8;:20::i;:::-;15691:27;;;15699:10;15691:27;;;;;;;;;;15638:37;;-1:-1:-1;15691:27:0;;;;;;;;;;;15736:4;15729:11;;15449:299;;;:::o;4044:32::-;;;;:::o;4763:49::-;;;;;;;;;;;;;:::o;7844:118::-;1785:5;;-1:-1:-1;;;;;1785:5:0;1771:10;:19;1763:55;;;;;-1:-1:-1;;;;;1763:55:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1763:55:0;;;;;;;;;;;;;;;7923:25;:31;7844:118::o;3945:26::-;;;;:::o;12684:844::-;12766:4;1785:5;;12766:4;;;;;;;;;;-1:-1:-1;;;;;1785:5:0;1771:10;:19;1763:55;;;;;-1:-1:-1;;;;;1763:55:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1763:55:0;;;;;;;;;;;;;;;12791:14;;;;;;;:23;12783:51;;;;;-1:-1:-1;;;;;12783:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12869:14;;12853:12;;:30;12845:64;;;;;-1:-1:-1;;;;;12845:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12950:1;12922:30;;12985:1;12963:23;;13014:1;13002:13;;12997:177;13021:7;:14;13017:1;:18;12997:177;;;13077:9;-1:-1:-1;;;;;13065:21:0;:5;13071:1;13065:8;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13065:21:0;;;13057:49;;;;;-1:-1:-1;;;;;13057:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13135:27;13151:7;13159:1;13151:10;;;;;;;;;;;;;;;;;;;13135:11;;:27;:15;:27;:::i;:::-;13121:41;-1:-1:-1;13037:3:0;;;;;12997:177;;;13192:5;;:58;;;;;;13211:10;13192:58;;;;13231:4;13192:58;;;;;;;;;;;;-1:-1:-1;;;;;13192:5:0;;;;:18;;:58;;;;;;;;;;;;;;;:5;;:58;;;5:2:-1;;;;30:1;27;20:12;5:2;13192:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13192:58:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13192:58:0;13184:90;;;;;;;-1:-1:-1;;;;;13184:90:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13307:15:0;;-1:-1:-1;13350:1:0;13333:109;13357:5;:12;13353:1;:16;13333:109;;;13391:39;13398:5;13404:1;13398:8;;;;;;;;;;;;;;;;;;13408:7;13416:1;13408:10;;;;;;;;;;;;;;;;;;13420:9;13391:6;:39::i;:::-;13371:3;;13333:109;;;13459:37;13470:5;13477:7;13486:9;13459:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;13459:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;13459:37:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13516:4:0;;12684:844;-1:-1:-1;;;;;;;12684:844:0:o;6456:622::-;6507:4;1785:5;;6507:4;;;;-1:-1:-1;;;;;1785:5:0;1771:10;:19;1763:55;;;;;-1:-1:-1;;;;;1763:55:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1763:55:0;;;;;;;;;;;;;;;6532:14;;;;;;;:23;6524:54;;;;;-1:-1:-1;;;;;6524:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6638:1;6626:13;;6621:177;6645:8;:15;6641:19;;6621:177;;;6728:1;6686:12;:25;6699:8;6708:1;6699:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6699:11:0;6686:25;;;;;;;;;;;;6699:11;6686:32;:39;:43;6682:105;;;6750:21;6759:8;6768:1;6759:11;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6759:11:0;6750:8;:21::i;:::-;;6682:105;6662:3;;;;;6621:177;;;6828:5;;:30;;;;;;6852:4;6828:30;;;;;;-1:-1:-1;;;;;6828:5:0;;;;:15;;:30;;;;;;;;;;;;;;;:5;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;6828:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6828:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6828:30:0;;-1:-1:-1;6883:1:0;6873:11;;6869:117;;;6909:5;;;6924;;6909:30;;;;;;-1:-1:-1;;;;;6924:5:0;;;6909:30;;;;;;;;;;;;:5;;;;;:14;;:30;;;;;;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;6909:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6909:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6909:30:0;6901:73;;;;;;;-1:-1:-1;;;;;6901:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6996:13:0;:20;;;7012:4;-1:-1:-1;;6996:20:0;;;;;-1:-1:-1;;7027:21:0;;;;;7012:4;6456:622;-1:-1:-1;6456:622:0:o;7185:242::-;7234:4;1785:5;;-1:-1:-1;;;;;1785:5:0;1771:10;:19;1763:55;;;;;-1:-1:-1;;;;;1763:55:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1763:55:0;;;;;;;;;;;;;;;7259:13;;;;:21;;:13;:21;7251:49;;;;;-1:-1:-1;;;;;7251:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7319:14;;;;;;;:23;7311:54;;;;;-1:-1:-1;;;;;7311:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7376:13:0;:21;;-1:-1:-1;;7376:21:0;;;;7185:242;:::o;2342:124::-;1785:5;;-1:-1:-1;;;;;1785:5:0;1771:10;:19;1763:55;;;;;-1:-1:-1;;;;;1763:55:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1763:55:0;;;;;;;;;;;;;;;2423:5;;;2404:25;;-1:-1:-1;;;;;2423:5:0;;;;2404:25;;;2456:1;2440:18;;-1:-1:-1;;2440:18:0;;;2342:124::o;8100:667::-;8411:9;1785:5;;8411:9;;;;-1:-1:-1;;;;;1785:5:0;1771:10;:19;1763:55;;;;;-1:-1:-1;;;;;1763:55:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1763:55:0;;;;;;;;;;;;;;;8188:14;;;;;;;:23;8180:54;;;;;-1:-1:-1;;;;;8180:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8272:11;;8253:15;:30;;8245:109;;;;;-1:-1:-1;;;;;8245:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8369:12;;:20;;8365:366;;8423:1;8411:13;;8406:280;8430:8;:15;8426:19;;8406:280;;;8486:8;:11;;8495:1;;8486:11;;;;;;;;;;;;;;;;8563;;-1:-1:-1;;;;;8486:11:0;;;;-1:-1:-1;8532:43:0;;8486:11;;8532:24;:43::i;:::-;8516:59;;8594:21;8610:4;8594:15;:21::i;:::-;8634:36;8641:4;8647:5;8654:15;8634:6;:36::i;:::-;8447:3;;;;;8406:280;;;8700:12;:19;;;8365:366;-1:-1:-1;;;8741:11:0;:18;-1:-1:-1;8100:667:0:o;9185:104::-;9241:7;9272:1;9268;:5;:13;;9280:1;9268:13;;;9276:1;9268:13;9261:20;9185:104;-1:-1:-1;;;9185:104:0:o;3978:37::-;;;;:::o;8872:305::-;-1:-1:-1;;;;;9011:18:0;;8937:7;9011:18;;;:12;:18;;;;;;;;:25;;8983:53;;;;;;;;;;;;;;;;;8937:7;;8983:25;;8937:7;;8983:53;;9011:25;;8937:7;;8983:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9064:1;9052:13;;9047:102;9071:6;:13;9067:1;:17;9047:102;;;9112:25;9120:6;9127:1;9120:9;;;;;;;;;;;;;;;;;;;:16;9112:3;;:25;:7;:25;:::i;:::-;9106:31;-1:-1:-1;9086:3:0;;9047:102;;;-1:-1:-1;9166:3:0;;8872:305;-1:-1:-1;;;8872:305:0:o;4083:52::-;;;;:::o;1265:20::-;;;-1:-1:-1;;;;;1265:20:0;;:::o;4173:54::-;;;;:::o;4248:58::-;;;;:::o;7970:122::-;1785:5;;-1:-1:-1;;;;;1785:5:0;1771:10;:19;1763:55;;;;;-1:-1:-1;;;;;1763:55:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1763:55:0;;;;;;;;;;;;;;;8051:27;:33;7970:122::o;4545:49::-;;;;;;;;;;;;;:::o;7534:180::-;7584:4;1785:5;;-1:-1:-1;;;;;1785:5:0;1771:10;:19;1763:55;;;;;-1:-1:-1;;;;;1763:55:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1763:55:0;;;;;;;;;;;;;;;7609:13;;;;:22;7601:52;;;;;-1:-1:-1;;;;;7601:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7664:13:0;:20;;-1:-1:-1;;7664:20:0;7680:4;7664:20;;;;;;7534:180;:::o;4841:37::-;;;;:::o;4885:25::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4885:25:0;;-1:-1:-1;4885:25:0;:::o;13675:1189::-;13748:15;;13722:4;;13748:15;;;;;13747:16;13739:49;;;;;-1:-1:-1;;;;;13739:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13807:13;;;;:22;13799:49;;;;;-1:-1:-1;;;;;13799:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13867:14;;;;;;;:23;13859:51;;;;;-1:-1:-1;;;;;13859:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13947:11;;13929:15;:29;13921:59;;;;;-1:-1:-1;;;;;13921:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14008:1;13999:10;;13991:37;;;;;-1:-1:-1;;;;;13991:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14089:23;;14073:10;14058:26;;;;:14;:26;;;;;;14047:38;;:6;;:38;:10;:38;:::i;:::-;:65;;14039:123;;;;;-1:-1:-1;;;;;14039:123:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14219:27;;14192:22;;14181:34;;:6;;:34;:10;:34;:::i;:::-;:65;;14173:127;;;;;-1:-1:-1;;;;;14173:127:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14321:15;:22;;-1:-1:-1;;14321:22:0;;;;;14339:4;14362:5;:53;;;;;;14381:10;14362:53;;;;14401:4;14362:53;;;;;;;;;;;;-1:-1:-1;;;;;14362:5:0;;;;:18;;:53;;;;;;;;;;;;;;;14321:22;14362:5;:53;;;5:2:-1;;;;30:1;27;20:12;5:2;14362:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14362:53:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14362:53:0;14354:85;;;;;;;-1:-1:-1;;;;;14354:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14457:22;14468:10;14457;:22::i;:::-;14456:23;14452:75;;;14496:19;14504:10;14496:7;:19::i;:::-;14547:43;14554:10;14566:6;14574:15;14547:6;:43::i;:::-;14645:10;14630:26;;;;:14;:26;;;;;;:38;;14661:6;14630:38;:30;:38;:::i;:::-;14616:10;14601:26;;;;:14;:26;;;;;:67;14704:22;;:34;;14731:6;14704:34;:26;:34;:::i;:::-;14679:22;:59;14749:15;:23;;-1:-1:-1;;14749:23:0;;;14790:42;;;14796:10;14790:42;;;;;;;;14816:15;14790:42;;;;;;;;;;;;;;;-1:-1:-1;14852:4:0;13675:1189;;;:::o;4420:33::-;;;;;;:::o;4501:35::-;;;;;;;;;:::o;7722:114::-;1785:5;;-1:-1:-1;;;;;1785:5:0;1771:10;:19;1763:55;;;;;-1:-1:-1;;;;;1763:55:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1763:55:0;;;;;;;;;;;;;;;7799:23;:29;7722:114::o;6025:300::-;6097:7;6106;6214:21;;:::i;:::-;6139:23;6157:4;6139:17;:23::i;:::-;6130:32;;6126:78;;6187:1;;-1:-1:-1;6187:1:0;;-1:-1:-1;6179:13:0;;6126:78;-1:-1:-1;;;;;6238:18:0;;;;;;:12;:18;;;;;:25;;:32;;6264:5;;6238:32;;;;;;;;;;;;;;;6214:56;;;;;;;;;6238:32;;;;;6214:56;;;;;;;;;;;;;;;;;-1:-1:-1;6214:56:0;;-1:-1:-1;6214:56:0;-1:-1:-1;6025:300:0;;;;;;;:::o;4349:39::-;4381:7;4349:39;:::o;2015:224::-;1785:5;;-1:-1:-1;;;;;1785:5:0;1771:10;:19;1763:55;;;;;-1:-1:-1;;;;;1763:55:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1763:55:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;2096:22:0;;;;2088:63;;;;;-1:-1:-1;;;;;2088:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2188:5;;;2167:37;;-1:-1:-1;;;;;2167:37:0;;;;2188:5;;;2167:37;;;2215:5;:16;;-1:-1:-1;;2215:16:0;-1:-1:-1;;;;;2215:16:0;;;;;;;;;;2015:224::o;4460:34::-;;;;;;;;;:::o;3920:18::-;;;-1:-1:-1;;;;;3920:18:0;;:::o;3581:141::-;3665:5;;;3688:6;;;;3681:14;;;11366:137;11416:8;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;11416:19:0;;;;;;;;;-1:-1:-1;;11416:19:0;-1:-1:-1;;;;;11416:19:0;;;;;11473:15;;:22;;:19;:22::i;:::-;-1:-1:-1;;;;;11446:18:0;;;;;;;:12;:18;;;;;:49;11366:137::o;3383:123::-;3441:7;3468:6;;;;3461:14;;;;-1:-1:-1;3493:5:0;;;3383:123::o;2963:295::-;3021:7;3249:1;3245;:5;;;;;;;;;2963:295;-1:-1:-1;;;2963:295:0:o;2666:202::-;2724:9;2750:6;;2746:47;;;-1:-1:-1;2780:1:0;2773:8;;2746:47;-1:-1:-1;2807:5:0;;;2811:1;2807;:5;2830;;;;;;;;:10;2823:18;;;14872:488;14950:15;;14921:7;;;;14950:15;;;;;14949:16;14941:49;;;;;-1:-1:-1;;;;;14941:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15001:15;:22;;-1:-1:-1;;15001:22:0;;;;;15051:47;15076:4;15082:15;15051:24;:47::i;:::-;15034:64;;15126:1;15117:6;:10;:49;;;;;15141:25;;15131:6;:35;;15117:49;15109:86;;;;;;;-1:-1:-1;;;;;15109:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15206:21;15222:4;15206:15;:21::i;:::-;15246:5;;:28;;;;;;-1:-1:-1;;;;;15246:28:0;;;;;;;;;;;;;;;:5;;;;;:14;;:28;;;;;;;;;;;;;;:5;;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;15246:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15246:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15246:28:0;15238:56;;;;;;;-1:-1:-1;;;;;15238:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15305:15;:23;;-1:-1:-1;;15305:23:0;;;15346:6;14872:488;-1:-1:-1;;14872:488:0:o;12253:152::-;-1:-1:-1;;;;;12337:18:0;;;;;;;:12;:18;;;;;;;;12368:28;;;;;;;;;;;;;;;;;12337:25;;;;27:10:-1;;23:18;;;45:23;;12337:60:0;;;;;;;;;;;;;;;;;;;;;;;;12253:152::o;11611:364::-;-1:-1:-1;;;;;11809:18:0;;11844:1;11809:18;;;:12;:18;;;;;:36;;:25;;11844:1;11809:36;:::i;:::-;-1:-1:-1;;;;;;11908:20:0;;;;;;:14;:20;;;;;;11881:22;;:48;;;:26;:48;:::i;:::-;11856:22;:73;-1:-1:-1;;;;;11947:20:0;;;;;:14;:20;;;;;11940:27;11611:364::o;3849:11902::-;;;;;;;;;;-1:-1:-1;3849:11902:0;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://d19182511b2dd316ed8419252abaf3f58e5008699c552b143e78b1070f777c40
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.009223 | 2,995,414.9695 | $27,625.81 |
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.