Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 4 from a total of 4 transactions
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Community
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-10-02 */ pragma solidity ^0.4.24; // File: contracts/interfaces/IOwned.sol /* Owned Contract Interface */ contract IOwned { function transferOwnership(address _newOwner) public; function acceptOwnership() public; function transferOwnershipNow(address newContractOwner) public; } // File: contracts/utility/Owned.sol /* This is the "owned" utility contract used by bancor with one additional function - transferOwnershipNow() The original unmodified version can be found here: https://github.com/bancorprotocol/contracts/commit/63480ca28534830f184d3c4bf799c1f90d113846 Provides support and utilities for contract ownership */ contract Owned is IOwned { address public owner; address public newOwner; event OwnerUpdate(address indexed _prevOwner, address indexed _newOwner); /** @dev constructor */ constructor() public { owner = msg.sender; } // allows execution by the owner only modifier ownerOnly { require(msg.sender == owner); _; } /** @dev allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner @param _newOwner new contract owner */ function transferOwnership(address _newOwner) public ownerOnly { require(_newOwner != owner); newOwner = _newOwner; } /** @dev used by a new owner to accept an ownership transfer */ function acceptOwnership() public { require(msg.sender == newOwner); emit OwnerUpdate(owner, newOwner); owner = newOwner; newOwner = address(0); } /** @dev transfers the contract ownership without needing the new owner to accept ownership @param newContractOwner new contract owner */ function transferOwnershipNow(address newContractOwner) ownerOnly public { require(newContractOwner != owner); emit OwnerUpdate(owner, newContractOwner); owner = newContractOwner; } } // File: contracts/interfaces/ILogger.sol /* Logger Contract Interface */ contract ILogger { function addNewLoggerPermission(address addressToPermission) public; function emitTaskCreated(uint uuid, uint amount) public; function emitProjectCreated(uint uuid, uint amount, address rewardAddress) public; function emitNewSmartToken(address token) public; function emitIssuance(uint256 amount) public; function emitDestruction(uint256 amount) public; function emitTransfer(address from, address to, uint256 value) public; function emitApproval(address owner, address spender, uint256 value) public; function emitGenericLog(string messageType, string message) public; } // File: contracts/Logger.sol /* Centralized logger allows backend to easily watch all events on all communities without needing to watch each community individually */ contract Logger is Owned, ILogger { // Community event TaskCreated(address msgSender, uint _uuid, uint _amount); event ProjectCreated(address msgSender, uint _uuid, uint _amount, address _address); // SmartToken // triggered when a smart token is deployed - the _token address is defined for forward compatibility // in case we want to trigger the event from a factory event NewSmartToken(address msgSender, address _token); // triggered when the total supply is increased event Issuance(address msgSender, uint256 _amount); // triggered when the total supply is decreased event Destruction(address msgSender, uint256 _amount); // erc20 event Transfer(address msgSender, address indexed _from, address indexed _to, uint256 _value); event Approval(address msgSender, address indexed _owner, address indexed _spender, uint256 _value); // Logger event NewCommunityAddress(address msgSender, address _newAddress); event GenericLog(address msgSender, string messageType, string message); mapping (address => bool) public permissionedAddresses; modifier hasLoggerPermissions(address _address) { require(permissionedAddresses[_address] == true); _; } function addNewLoggerPermission(address addressToPermission) ownerOnly public { permissionedAddresses[addressToPermission] = true; } function emitTaskCreated(uint uuid, uint amount) public hasLoggerPermissions(msg.sender) { emit TaskCreated(msg.sender, uuid, amount); } function emitProjectCreated(uint uuid, uint amount, address rewardAddress) public hasLoggerPermissions(msg.sender) { emit ProjectCreated(msg.sender, uuid, amount, rewardAddress); } function emitNewSmartToken(address token) public hasLoggerPermissions(msg.sender) { emit NewSmartToken(msg.sender, token); } function emitIssuance(uint256 amount) public hasLoggerPermissions(msg.sender) { emit Issuance(msg.sender, amount); } function emitDestruction(uint256 amount) public hasLoggerPermissions(msg.sender) { emit Destruction(msg.sender, amount); } function emitTransfer(address from, address to, uint256 value) public hasLoggerPermissions(msg.sender) { emit Transfer(msg.sender, from, to, value); } function emitApproval(address owner, address spender, uint256 value) public hasLoggerPermissions(msg.sender) { emit Approval(msg.sender, owner, spender, value); } function emitGenericLog(string messageType, string message) public hasLoggerPermissions(msg.sender) { emit GenericLog(msg.sender, messageType, message); } } // File: contracts/interfaces/IERC20.sol /* Smart Token Interface */ contract IERC20 { function balanceOf(address tokenOwner) public constant returns (uint balance); function allowance(address tokenOwner, address spender) public constant returns (uint remaining); function transfer(address to, uint tokens) public returns (bool success); function approve(address spender, uint tokens) public returns (bool success); function transferFrom(address from, address to, uint tokens) public returns (bool success); event Transfer(address indexed from, address indexed to, uint tokens); event Approval(address indexed tokenOwner, address indexed spender, uint tokens); } // File: contracts/interfaces/ICommunityAccount.sol /* Community Account Interface */ contract ICommunityAccount is IOwned { function setStakedBalances(uint _amount, address msgSender) public; function setTotalStaked(uint _totalStaked) public; function setTimeStaked(uint _timeStaked, address msgSender) public; function setEscrowedTaskBalances(uint uuid, uint balance) public; function setEscrowedProjectBalances(uint uuid, uint balance) public; function setEscrowedProjectPayees(uint uuid, address payeeAddress) public; function setTotalTaskEscrow(uint balance) public; function setTotalProjectEscrow(uint balance) public; } // File: contracts/CommunityAccount.sol /** @title Tribe Account @notice This contract is used as a community's data store. @notice Advantages: @notice 1) Decouple logic contract from data contract @notice 2) Safely upgrade logic contract without compromising stored data */ contract CommunityAccount is Owned, ICommunityAccount { // Staking Variables. In community token mapping (address => uint256) public stakedBalances; mapping (address => uint256) public timeStaked; uint public totalStaked; // Escrow variables. In native token uint public totalTaskEscrow; uint public totalProjectEscrow; mapping (uint256 => uint256) public escrowedTaskBalances; mapping (uint256 => uint256) public escrowedProjectBalances; mapping (uint256 => address) public escrowedProjectPayees; /** @notice This function allows the community to transfer tokens out of the contract. @param tokenContractAddress Address of community contract @param destination Destination address of user looking to remove tokens from contract @param amount Amount to transfer out of community */ function transferTokensOut(address tokenContractAddress, address destination, uint amount) public ownerOnly returns(bool result) { IERC20 token = IERC20(tokenContractAddress); return token.transfer(destination, amount); } /** @notice This is the community staking method @param _amount Amount to be staked @param msgSender Address of the staker */ function setStakedBalances(uint _amount, address msgSender) public ownerOnly { stakedBalances[msgSender] = _amount; } /** @param _totalStaked Set total amount staked in community */ function setTotalStaked(uint _totalStaked) public ownerOnly { totalStaked = _totalStaked; } /** @param _timeStaked Time of user staking into community @param msgSender Staker address */ function setTimeStaked(uint _timeStaked, address msgSender) public ownerOnly { timeStaked[msgSender] = _timeStaked; } /** @param uuid id of escrowed task @param balance Balance to be set of escrowed task */ function setEscrowedTaskBalances(uint uuid, uint balance) public ownerOnly { escrowedTaskBalances[uuid] = balance; } /** @param uuid id of escrowed project @param balance Balance to be set of escrowed project */ function setEscrowedProjectBalances(uint uuid, uint balance) public ownerOnly { escrowedProjectBalances[uuid] = balance; } /** @param uuid id of escrowed project @param payeeAddress Address funds will go to once project completed */ function setEscrowedProjectPayees(uint uuid, address payeeAddress) public ownerOnly { escrowedProjectPayees[uuid] = payeeAddress; } /** @param balance Balance which to set total task escrow to */ function setTotalTaskEscrow(uint balance) public ownerOnly { totalTaskEscrow = balance; } /** @param balance Balance which to set total project to */ function setTotalProjectEscrow(uint balance) public ownerOnly { totalProjectEscrow = balance; } } // File: contracts/interfaces/ISmartToken.sol /** @notice Smart Token Interface */ contract ISmartToken is IOwned, IERC20 { function disableTransfers(bool _disable) public; function issue(address _to, uint256 _amount) public; function destroy(address _from, uint256 _amount) public; } // File: contracts/interfaces/ICommunity.sol /* Community Interface */ contract ICommunity { function transferCurator(address _curator) public; function transferVoteController(address _voteController) public; function setMinimumStakingRequirement(uint _minimumStakingRequirement) public; function setLockupPeriodSeconds(uint _lockupPeriodSeconds) public; function setLogger(address newLoggerAddress) public; function setTokenAddresses(address newNativeTokenAddress, address newCommunityTokenAddress) public; function setCommunityAccount(address newCommunityAccountAddress) public; function setCommunityAccountOwner(address newOwner) public; function getAvailableDevFund() public view returns (uint); function getLockedDevFundAmount() public view returns (uint); function createNewTask(uint uuid, uint amount) public; function cancelTask(uint uuid) public; function rewardTaskCompletion(uint uuid, address user) public; function createNewProject(uint uuid, uint amount, address projectPayee) public; function cancelProject(uint uuid) public; function rewardProjectCompletion(uint uuid) public; function stakeCommunityTokens() public; function unstakeCommunityTokens() public; function isMember(address memberAddress)public view returns (bool); } // File: contracts/utility/SafeMath.sol /** * @title SafeMath * @dev Math operations with safety checks that revert on error * From https://github.com/OpenZeppelin/openzeppelin-solidity/commit/a2e710386933d3002062888b35aae8ac0401a7b3 */ library SafeMath { /** * @dev Multiplies two numbers, reverts on overflow. */ function mul(uint256 _a, uint256 _b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (_a == 0) { return 0; } uint256 c = _a * _b; require(c / _a == _b); return c; } /** * @dev Integer division of two numbers truncating the quotient, reverts on division by zero. */ function div(uint256 _a, uint256 _b) internal pure returns (uint256) { require(_b > 0); // Solidity only automatically asserts 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; } /** * @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 _a, uint256 _b) internal pure returns (uint256) { require(_b <= _a); uint256 c = _a - _b; return c; } /** * @dev Adds two numbers, reverts on overflow. */ function add(uint256 _a, uint256 _b) internal pure returns (uint256) { uint256 c = _a + _b; require(c >= _a); return c; } } // File: contracts/Community.sol /** @notice Main community logic contract. @notice functionality: @notice 1) Stake / Unstake community tokens. This is how user joins or leaves community. @notice 2) Create Projects and Tasks by escrowing NTV token until curator or voteController determines task complete @notice 3) Log all events to singleton Logger contract @notice 4) Own communityAccount contract which holds all staking- and escrow-related funds and variables @notice --- This abstraction of funds allows for easy upgrade process; launch new community -> transfer ownership of the existing communityAccount @notice --- View test/integration-test-upgrades.js to demonstrate this process */ contract Community is ICommunity { address public curator; address public voteController; uint public minimumStakingRequirement; uint public lockupPeriodSeconds; ISmartToken public nativeTokenInstance; ISmartToken public communityTokenInstance; Logger public logger; CommunityAccount public communityAccount; modifier onlyCurator { require(msg.sender == curator); _; } modifier onlyVoteController { require(msg.sender == voteController); _; } modifier sufficientDevFundBalance (uint amount) { require(amount <= getAvailableDevFund()); _; } /** @param _minimumStakingRequirement Minimum stake amount to join community @param _lockupPeriodSeconds Required minimum holding time, in seconds, after joining for staker to leave @param _curator Address of community curator @param _communityTokenContractAddress Address of community token contract @param _nativeTokenContractAddress Address of ontract @param _voteController Address of vote controller @param _loggerContractAddress Address of logger contract @param _communityAccountContractAddress Address of community account */ constructor(uint _minimumStakingRequirement, uint _lockupPeriodSeconds, address _curator, address _communityTokenContractAddress, address _nativeTokenContractAddress, address _voteController, address _loggerContractAddress, address _communityAccountContractAddress) public { communityAccount = CommunityAccount(_communityAccountContractAddress); curator = _curator; minimumStakingRequirement = _minimumStakingRequirement; lockupPeriodSeconds = _lockupPeriodSeconds; logger = Logger(_loggerContractAddress); voteController = _voteController; nativeTokenInstance = ISmartToken(_nativeTokenContractAddress); communityTokenInstance = ISmartToken(_communityTokenContractAddress); } // TODO add events to each of these /** @notice Sets curator to input curator address @param _curator Address of new community curator */ function transferCurator(address _curator) public onlyCurator { curator = _curator; logger.emitGenericLog("transferCurator", ""); } /** @notice Sets vote controller to input vote controller address @param _voteController Address of new vote controller */ function transferVoteController(address _voteController) public onlyCurator { voteController = _voteController; logger.emitGenericLog("transferVoteController", ""); } /** @notice Sets the minimum community staking requirement @param _minimumStakingRequirement Minimum community staking requirement to be set */ function setMinimumStakingRequirement(uint _minimumStakingRequirement) public onlyCurator { minimumStakingRequirement = _minimumStakingRequirement; logger.emitGenericLog("setMinimumStakingRequirement", ""); } /** @notice Sets lockup period for community staking @param _lockupPeriodSeconds Community staking lockup period, in seconds */ function setLockupPeriodSeconds(uint _lockupPeriodSeconds) public onlyCurator { lockupPeriodSeconds = _lockupPeriodSeconds; logger.emitGenericLog("setLockupPeriodSeconds", ""); } /** @notice Updates Logger contract address to be used @param newLoggerAddress Address of new Logger contract */ function setLogger(address newLoggerAddress) public onlyCurator { logger = Logger(newLoggerAddress); logger.emitGenericLog("setLogger", ""); } /** @param newNativeTokenAddress New Native token address @param newCommunityTokenAddress New community token address */ function setTokenAddresses(address newNativeTokenAddress, address newCommunityTokenAddress) public onlyCurator { nativeTokenInstance = ISmartToken(newNativeTokenAddress); communityTokenInstance = ISmartToken(newCommunityTokenAddress); logger.emitGenericLog("setTokenAddresses", ""); } /** @param newCommunityAccountAddress Address of new community account */ function setCommunityAccount(address newCommunityAccountAddress) public onlyCurator { communityAccount = CommunityAccount(newCommunityAccountAddress); logger.emitGenericLog("setCommunityAccount", ""); } /** @param newOwner New community account owner address */ function setCommunityAccountOwner(address newOwner) public onlyCurator { communityAccount.transferOwnershipNow(newOwner); logger.emitGenericLog("setCommunityAccountOwner", ""); } /// @return Amount in the dev fund not locked up by project or task stake function getAvailableDevFund() public view returns (uint) { uint devFundBalance = nativeTokenInstance.balanceOf(address(communityAccount)); return SafeMath.sub(devFundBalance, getLockedDevFundAmount()); } /// @return Amount locked up in escrow function getLockedDevFundAmount() public view returns (uint) { return SafeMath.add(communityAccount.totalTaskEscrow(), communityAccount.totalProjectEscrow()); } /* Task escrow code below (in community tokens) */ /// @notice Updates the escrow values for a new task function createNewTask(uint uuid, uint amount) public onlyCurator sufficientDevFundBalance (amount) { communityAccount.setEscrowedTaskBalances(uuid, amount); communityAccount.setTotalTaskEscrow(SafeMath.add(communityAccount.totalTaskEscrow(), amount)); logger.emitTaskCreated(uuid, amount); logger.emitGenericLog("createNewTask", ""); } /// @notice Subtracts the tasks escrow and sets tasks escrow balance to 0 function cancelTask(uint uuid) public onlyCurator { communityAccount.setTotalTaskEscrow(SafeMath.sub(communityAccount.totalTaskEscrow(), communityAccount.escrowedTaskBalances(uuid))); communityAccount.setEscrowedTaskBalances(uuid, 0); logger.emitGenericLog("cancelTask", ""); } /// @notice Pays task completer and updates escrow balances function rewardTaskCompletion(uint uuid, address user) public onlyVoteController { communityAccount.transferTokensOut(address(nativeTokenInstance), user, communityAccount.escrowedTaskBalances(uuid)); communityAccount.setTotalTaskEscrow(SafeMath.sub(communityAccount.totalTaskEscrow(), communityAccount.escrowedTaskBalances(uuid))); communityAccount.setEscrowedTaskBalances(uuid, 0); logger.emitGenericLog("rewardTaskCompletion", ""); } /* Project escrow code below (in community tokens) */ /// @notice updates the escrow values along with the project payee for a new project function createNewProject(uint uuid, uint amount, address projectPayee) public onlyCurator sufficientDevFundBalance (amount) { communityAccount.setEscrowedProjectBalances(uuid, amount); communityAccount.setEscrowedProjectPayees(uuid, projectPayee); communityAccount.setTotalProjectEscrow(SafeMath.add(communityAccount.totalProjectEscrow(), amount)); logger.emitProjectCreated(uuid, amount, projectPayee); logger.emitGenericLog("createNewProject", ""); } /// @notice Subtracts tasks escrow and sets tasks escrow balance to 0 function cancelProject(uint uuid) public onlyCurator { communityAccount.setTotalProjectEscrow(SafeMath.sub(communityAccount.totalProjectEscrow(), communityAccount.escrowedProjectBalances(uuid))); communityAccount.setEscrowedProjectBalances(uuid, 0); logger.emitGenericLog("cancelProject", ""); } /// @notice Pays out upon project completion /// @notice Updates escrow balances function rewardProjectCompletion(uint uuid) public onlyVoteController { communityAccount.transferTokensOut( address(nativeTokenInstance), communityAccount.escrowedProjectPayees(uuid), communityAccount.escrowedProjectBalances(uuid)); communityAccount.setTotalProjectEscrow(SafeMath.sub(communityAccount.totalProjectEscrow(), communityAccount.escrowedProjectBalances(uuid))); communityAccount.setEscrowedProjectBalances(uuid, 0); logger.emitGenericLog("rewardProjectCompletion", ""); } /// @notice Stake code (in community tokens) function stakeCommunityTokens() public { require(minimumStakingRequirement >= communityAccount.stakedBalances(msg.sender)); uint amount = minimumStakingRequirement - communityAccount.stakedBalances(msg.sender); require(amount > 0); require(communityTokenInstance.transferFrom(msg.sender, address(communityAccount), amount)); communityAccount.setStakedBalances(SafeMath.add(communityAccount.stakedBalances(msg.sender), amount), msg.sender); communityAccount.setTotalStaked(SafeMath.add(communityAccount.totalStaked(), amount)); communityAccount.setTimeStaked(now, msg.sender); logger.emitGenericLog("stakeCommunityTokens", ""); } /// @notice Unstakes user from community and sends funds back to user /// @notice Checks lockup period and balance before unstaking function unstakeCommunityTokens() public { uint amount = communityAccount.stakedBalances(msg.sender); require(now - communityAccount.timeStaked(msg.sender) >= lockupPeriodSeconds); communityAccount.setStakedBalances(0, msg.sender); communityAccount.setTotalStaked(SafeMath.sub(communityAccount.totalStaked(), amount)); require(communityAccount.transferTokensOut(address(communityTokenInstance), msg.sender, amount)); logger.emitGenericLog("unstakeCommunityTokens", ""); } /// @notice Checks that the user is fully staked function isMember(address memberAddress) public view returns (bool) { return (communityAccount.stakedBalances(memberAddress) >= minimumStakingRequirement); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[{"name":"_curator","type":"address"}],"name":"transferCurator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nativeTokenInstance","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"uuid","type":"uint256"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"stakeCommunityTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_lockupPeriodSeconds","type":"uint256"}],"name":"setLockupPeriodSeconds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_voteController","type":"address"}],"name":"transferVoteController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"uuid","type":"uint256"},{"name":"amount","type":"uint256"}],"name":"createNewTask","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setCommunityAccountOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newLoggerAddress","type":"address"}],"name":"setLogger","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"uuid","type":"uint256"}],"name":"rewardProjectCompletion","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"uuid","type":"uint256"},{"name":"amount","type":"uint256"},{"name":"projectPayee","type":"address"}],"name":"createNewProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"communityTokenInstance","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_minimumStakingRequirement","type":"uint256"}],"name":"setMinimumStakingRequirement","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"uuid","type":"uint256"}],"name":"cancelTask","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unstakeCommunityTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"lockupPeriodSeconds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"voteController","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"memberAddress","type":"address"}],"name":"isMember","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"communityAccount","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newNativeTokenAddress","type":"address"},{"name":"newCommunityTokenAddress","type":"address"}],"name":"setTokenAddresses","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newCommunityAccountAddress","type":"address"}],"name":"setCommunityAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getAvailableDevFund","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getLockedDevFundAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"curator","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"uuid","type":"uint256"},{"name":"user","type":"address"}],"name":"rewardTaskCompletion","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minimumStakingRequirement","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"logger","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_minimumStakingRequirement","type":"uint256"},{"name":"_lockupPeriodSeconds","type":"uint256"},{"name":"_curator","type":"address"},{"name":"_communityTokenContractAddress","type":"address"},{"name":"_nativeTokenContractAddress","type":"address"},{"name":"_voteController","type":"address"},{"name":"_loggerContractAddress","type":"address"},{"name":"_communityAccountContractAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405161010080614ae7833981018060405281019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550856000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550876002819055508660038190555081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050506148c3806102246000396000f30060806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806316c5792d146101645780631cb6ee36146101a757806324941147146101fe578063259fddaf1461022b57806328de442614610242578063433c39ff1461026f5780634a1a3ded146102b25780634b689cf0146102e95780635722e24a1461032c57806363569ca81461036f57806371fa7f371461039c57806377cc7705146103f35780637a3629dc1461044a5780637eec20a81461047757806383405ddb146104a457806389cc0f90146104bb578063977b22da146104e6578063a230c5241461053d578063a4e53e0f14610598578063a89c8c5e146105ef578063bb44978214610652578063c7cf807514610695578063ce42bb11146106c0578063e66f53b7146106eb578063eb06ec3214610742578063f1f454bb1461078f578063f24ccbfe146107ba575b600080fd5b34801561017057600080fd5b506101a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610811565b005b3480156101b357600080fd5b506101bc61099d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020a57600080fd5b50610229600480360381019080803590602001909291905050506109c3565b005b34801561023757600080fd5b50610240610dfe565b005b34801561024e57600080fd5b5061026d60048036038101908080359060200190929190505050611693565b005b34801561027b57600080fd5b506102b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117e6565b005b3480156102be57600080fd5b506102e76004803603810190808035906020019092919080359060200190929190505050611973565b005b3480156102f557600080fd5b5061032a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dac565b005b34801561033857600080fd5b5061036d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fcd565b005b34801561037b57600080fd5b5061039a6004803603810190808035906020019092919050505061215a565b005b3480156103a857600080fd5b506103f16004803603810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612883565b005b3480156103ff57600080fd5b50610408612dce565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561045657600080fd5b5061047560048036038101908080359060200190929190505050612df4565b005b34801561048357600080fd5b506104a260048036038101908080359060200190929190505050612f47565b005b3480156104b057600080fd5b506104b9613382565b005b3480156104c757600080fd5b506104d0613a2a565b6040518082815260200191505060405180910390f35b3480156104f257600080fd5b506104fb613a30565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561054957600080fd5b5061057e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613a56565b604051808215151515815260200191505060405180910390f35b3480156105a457600080fd5b506105ad613b5c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105fb57600080fd5b50610650600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613b82565b005b34801561065e57600080fd5b50610693600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613d51565b005b3480156106a157600080fd5b506106aa613ede565b6040518082815260200191505060405180910390f35b3480156106cc57600080fd5b506106d5614014565b6040518082815260200191505060405180910390f35b3480156106f757600080fd5b506107006141a5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561074e57600080fd5b5061078d60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506141ca565b005b34801561079b57600080fd5b506107a4614829565b6040518082815260200191505060405180910390f35b3480156107c657600080fd5b506107cf61482f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561086c57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600f8152602001807f7472616e7366657243757261746f72000000000000000000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b15801561098257600080fd5b505af1158015610996573d6000803e3d6000fd5b5050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a1e57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633b41b5f2610bf1600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639f205f686040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610ae557600080fd5b505af1158015610af9573d6000803e3d6000fd5b505050506040513d6020811015610b0f57600080fd5b8101908080519060200190929190505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663db661100866040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b158015610bb157600080fd5b505af1158015610bc5573d6000803e3d6000fd5b505050506040513d6020811015610bdb57600080fd5b8101908080519060200190929190505050614855565b6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015610c4357600080fd5b505af1158015610c57573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cb0d31338260006040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182815260200192505050600060405180830381600087803b158015610cf557600080fd5b505af1158015610d09573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600d8152602001807f63616e63656c50726f6a6563740000000000000000000000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b158015610de357600080fd5b505af1158015610df7573d6000803e3d6000fd5b5050505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631460fa87336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610ebd57600080fd5b505af1158015610ed1573d6000803e3d6000fd5b505050506040513d6020811015610ee757600080fd5b810190808051906020019092919050505060025410151515610f0857600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631460fa87336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610fc557600080fd5b505af1158015610fd9573d6000803e3d6000fd5b505050506040513d6020811015610fef57600080fd5b810190808051906020019092919050505060025403905060008111151561101557600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561113057600080fd5b505af1158015611144573d6000803e3d6000fd5b505050506040513d602081101561115a57600080fd5b8101908080519060200190929190505050151561117657600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638826fa2e6112b5600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631460fa87336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561127457600080fd5b505af1158015611288573d6000803e3d6000fd5b505050506040513d602081101561129e57600080fd5b810190808051906020019092919050505084614876565b336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561133b57600080fd5b505af115801561134f573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e17e7a2061145b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663817b1cd26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561141a57600080fd5b505af115801561142e573d6000803e3d6000fd5b505050506040513d602081101561144457600080fd5b810190808051906020019092919050505084614876565b6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1580156114ad57600080fd5b505af11580156114c1573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fd9e5fbf42336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561158a57600080fd5b505af115801561159e573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260148152602001807f7374616b65436f6d6d756e697479546f6b656e7300000000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b15801561167857600080fd5b505af115801561168c573d6000803e3d6000fd5b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116ee57600080fd5b80600381905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260168152602001807f7365744c6f636b7570506572696f645365636f6e64730000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b1580156117cb57600080fd5b505af11580156117df573d6000803e3d6000fd5b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561184157600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260168152602001807f7472616e73666572566f7465436f6e74726f6c6c65720000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b15801561195857600080fd5b505af115801561196c573d6000803e3d6000fd5b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119ce57600080fd5b806119d7613ede565b81111515156119e557600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637174ac9e84846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182815260200192505050600060405180830381600087803b158015611a7e57600080fd5b505af1158015611a92573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d3ff09a5611b9e600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630a6d96a56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611b5d57600080fd5b505af1158015611b71573d6000803e3d6000fd5b505050506040513d6020811015611b8757600080fd5b810190808051906020019092919050505085614876565b6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015611bf057600080fd5b505af1158015611c04573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e7a17d8384846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182815260200192505050600060405180830381600087803b158015611ca157600080fd5b505af1158015611cb5573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600d8152602001807f6372656174654e65775461736b0000000000000000000000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b158015611d8f57600080fd5b505af1158015611da3573d6000803e3d6000fd5b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e0757600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638692ac86826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015611ec457600080fd5b505af1158015611ed8573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260188152602001807f736574436f6d6d756e6974794163636f756e744f776e6572000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b158015611fb257600080fd5b505af1158015611fc6573d6000803e3d6000fd5b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561202857600080fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260098152602001807f7365744c6f67676572000000000000000000000000000000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b15801561213f57600080fd5b505af1158015612153573d6000803e3d6000fd5b5050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121b657600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663193c114b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663418ac0d6856040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1580156122a857600080fd5b505af11580156122bc573d6000803e3d6000fd5b505050506040513d60208110156122d257600080fd5b8101908080519060200190929190505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663db661100866040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15801561237457600080fd5b505af1158015612388573d6000803e3d6000fd5b505050506040513d602081101561239e57600080fd5b81019080805190602001909291905050506040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561246757600080fd5b505af115801561247b573d6000803e3d6000fd5b505050506040513d602081101561249157600080fd5b810190808051906020019092919050505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633b41b5f2612676600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639f205f686040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561256a57600080fd5b505af115801561257e573d6000803e3d6000fd5b505050506040513d602081101561259457600080fd5b8101908080519060200190929190505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663db661100866040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15801561263657600080fd5b505af115801561264a573d6000803e3d6000fd5b505050506040513d602081101561266057600080fd5b8101908080519060200190929190505050614855565b6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1580156126c857600080fd5b505af11580156126dc573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cb0d31338260006040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182815260200192505050600060405180830381600087803b15801561277a57600080fd5b505af115801561278e573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260178152602001807f72657761726450726f6a656374436f6d706c6574696f6e00000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b15801561286857600080fd5b505af115801561287c573d6000803e3d6000fd5b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128de57600080fd5b816128e7613ede565b81111515156128f557600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cb0d313385856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182815260200192505050600060405180830381600087803b15801561298e57600080fd5b505af11580156129a2573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637e54981485846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015612a6b57600080fd5b505af1158015612a7f573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633b41b5f2612b8b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639f205f686040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612b4a57600080fd5b505af1158015612b5e573d6000803e3d6000fd5b505050506040513d6020811015612b7457600080fd5b810190808051906020019092919050505086614876565b6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015612bdd57600080fd5b505af1158015612bf1573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a967f3e78585856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b158015612cc257600080fd5b505af1158015612cd6573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260108152602001807f6372656174654e657750726f6a6563740000000000000000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b158015612db057600080fd5b505af1158015612dc4573d6000803e3d6000fd5b5050505050505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612e4f57600080fd5b80600281905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352601c8152602001807f7365744d696e696d756d5374616b696e67526571756972656d656e740000000081525060200183810382526000815260200160200192505050600060405180830381600087803b158015612f2c57600080fd5b505af1158015612f40573d6000803e3d6000fd5b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612fa257600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d3ff09a5613175600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630a6d96a56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561306957600080fd5b505af115801561307d573d6000803e3d6000fd5b505050506040513d602081101561309357600080fd5b8101908080519060200190929190505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9307358866040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15801561313557600080fd5b505af1158015613149573d6000803e3d6000fd5b505050506040513d602081101561315f57600080fd5b8101908080519060200190929190505050614855565b6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1580156131c757600080fd5b505af11580156131db573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637174ac9e8260006040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182815260200192505050600060405180830381600087803b15801561327957600080fd5b505af115801561328d573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600a8152602001807f63616e63656c5461736b0000000000000000000000000000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b15801561336757600080fd5b505af115801561337b573d6000803e3d6000fd5b5050505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631460fa87336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561344157600080fd5b505af1158015613455573d6000803e3d6000fd5b505050506040513d602081101561346b57600080fd5b81019080805190602001909291905050509050600354600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663778f8cb0336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561353e57600080fd5b505af1158015613552573d6000803e3d6000fd5b505050506040513d602081101561356857600080fd5b810190808051906020019092919050505042031015151561358857600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638826fa2e6000336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561364e57600080fd5b505af1158015613662573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e17e7a2061376e600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663817b1cd26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561372d57600080fd5b505af1158015613741573d6000803e3d6000fd5b505050506040513d602081101561375757600080fd5b810190808051906020019092919050505084614855565b6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1580156137c057600080fd5b505af11580156137d4573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663193c114b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156138f357600080fd5b505af1158015613907573d6000803e3d6000fd5b505050506040513d602081101561391d57600080fd5b8101908080519060200190929190505050151561393957600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260168152602001807f756e7374616b65436f6d6d756e697479546f6b656e730000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b158015613a0f57600080fd5b505af1158015613a23573d6000803e3d6000fd5b5050505050565b60035481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631460fa87846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015613b1857600080fd5b505af1158015613b2c573d6000803e3d6000fd5b505050506040513d6020811015613b4257600080fd5b810190808051906020019092919050505010159050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613bdd57600080fd5b81600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260118152602001807f736574546f6b656e41646472657373657300000000000000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b158015613d3557600080fd5b505af1158015613d49573d6000803e3d6000fd5b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613dac57600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260138152602001807f736574436f6d6d756e6974794163636f756e740000000000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b158015613ec357600080fd5b505af1158015613ed7573d6000803e3d6000fd5b5050505050565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015613fc057600080fd5b505af1158015613fd4573d6000803e3d6000fd5b505050506040513d6020811015613fea57600080fd5b8101908080519060200190929190505050905061400e81614009614014565b614855565b91505090565b60006141a0600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630a6d96a56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561409f57600080fd5b505af11580156140b3573d6000803e3d6000fd5b505050506040513d60208110156140c957600080fd5b8101908080519060200190929190505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639f205f686040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561416057600080fd5b505af1158015614174573d6000803e3d6000fd5b505050506040513d602081101561418a57600080fd5b8101908080519060200190929190505050614876565b905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561422657600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663193c114b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9307358876040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15801561431957600080fd5b505af115801561432d573d6000803e3d6000fd5b505050506040513d602081101561434357600080fd5b81019080805190602001909291905050506040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561440c57600080fd5b505af1158015614420573d6000803e3d6000fd5b505050506040513d602081101561443657600080fd5b810190808051906020019092919050505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d3ff09a561461b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630a6d96a56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561450f57600080fd5b505af1158015614523573d6000803e3d6000fd5b505050506040513d602081101561453957600080fd5b8101908080519060200190929190505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9307358876040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1580156145db57600080fd5b505af11580156145ef573d6000803e3d6000fd5b505050506040513d602081101561460557600080fd5b8101908080519060200190929190505050614855565b6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561466d57600080fd5b505af1158015614681573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637174ac9e8360006040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182815260200192505050600060405180830381600087803b15801561471f57600080fd5b505af1158015614733573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260148152602001807f7265776172645461736b436f6d706c6574696f6e00000000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b15801561480d57600080fd5b505af1158015614821573d6000803e3d6000fd5b505050505050565b60025481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008083831115151561486757600080fd5b82840390508091505092915050565b600080828401905083811015151561488d57600080fd5b80915050929150505600a165627a7a72305820ccce86f7b26ec5483d59848e335f7925b8501d1d39cb31fefc4c6d98b3e5af3400290000000000000000000000000000000000000000000000052663ccab1e1c0000000000000000000000000000000000000000000000000000000000000076a7000000000000000000000000003cadf160a9d2e66e69bbdab63219dde2f1c07a17000000000000000000000000901eeac0eef1f956d3f628ba02e47b9f6518695500000000000000000000000000000000000000000000000000000000000000000000000000000000000000003cadf160a9d2e66e69bbdab63219dde2f1c07a170000000000000000000000002d8232aa33f3321d54c9339734de7749452bc1240000000000000000000000004aa68d7a31617fa2b64045fdbe50eb2fbaf3e9b5
Deployed Bytecode
0x60806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806316c5792d146101645780631cb6ee36146101a757806324941147146101fe578063259fddaf1461022b57806328de442614610242578063433c39ff1461026f5780634a1a3ded146102b25780634b689cf0146102e95780635722e24a1461032c57806363569ca81461036f57806371fa7f371461039c57806377cc7705146103f35780637a3629dc1461044a5780637eec20a81461047757806383405ddb146104a457806389cc0f90146104bb578063977b22da146104e6578063a230c5241461053d578063a4e53e0f14610598578063a89c8c5e146105ef578063bb44978214610652578063c7cf807514610695578063ce42bb11146106c0578063e66f53b7146106eb578063eb06ec3214610742578063f1f454bb1461078f578063f24ccbfe146107ba575b600080fd5b34801561017057600080fd5b506101a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610811565b005b3480156101b357600080fd5b506101bc61099d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020a57600080fd5b50610229600480360381019080803590602001909291905050506109c3565b005b34801561023757600080fd5b50610240610dfe565b005b34801561024e57600080fd5b5061026d60048036038101908080359060200190929190505050611693565b005b34801561027b57600080fd5b506102b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117e6565b005b3480156102be57600080fd5b506102e76004803603810190808035906020019092919080359060200190929190505050611973565b005b3480156102f557600080fd5b5061032a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dac565b005b34801561033857600080fd5b5061036d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fcd565b005b34801561037b57600080fd5b5061039a6004803603810190808035906020019092919050505061215a565b005b3480156103a857600080fd5b506103f16004803603810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612883565b005b3480156103ff57600080fd5b50610408612dce565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561045657600080fd5b5061047560048036038101908080359060200190929190505050612df4565b005b34801561048357600080fd5b506104a260048036038101908080359060200190929190505050612f47565b005b3480156104b057600080fd5b506104b9613382565b005b3480156104c757600080fd5b506104d0613a2a565b6040518082815260200191505060405180910390f35b3480156104f257600080fd5b506104fb613a30565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561054957600080fd5b5061057e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613a56565b604051808215151515815260200191505060405180910390f35b3480156105a457600080fd5b506105ad613b5c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105fb57600080fd5b50610650600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613b82565b005b34801561065e57600080fd5b50610693600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613d51565b005b3480156106a157600080fd5b506106aa613ede565b6040518082815260200191505060405180910390f35b3480156106cc57600080fd5b506106d5614014565b6040518082815260200191505060405180910390f35b3480156106f757600080fd5b506107006141a5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561074e57600080fd5b5061078d60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506141ca565b005b34801561079b57600080fd5b506107a4614829565b6040518082815260200191505060405180910390f35b3480156107c657600080fd5b506107cf61482f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561086c57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600f8152602001807f7472616e7366657243757261746f72000000000000000000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b15801561098257600080fd5b505af1158015610996573d6000803e3d6000fd5b5050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a1e57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633b41b5f2610bf1600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639f205f686040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610ae557600080fd5b505af1158015610af9573d6000803e3d6000fd5b505050506040513d6020811015610b0f57600080fd5b8101908080519060200190929190505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663db661100866040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b158015610bb157600080fd5b505af1158015610bc5573d6000803e3d6000fd5b505050506040513d6020811015610bdb57600080fd5b8101908080519060200190929190505050614855565b6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015610c4357600080fd5b505af1158015610c57573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cb0d31338260006040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182815260200192505050600060405180830381600087803b158015610cf557600080fd5b505af1158015610d09573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600d8152602001807f63616e63656c50726f6a6563740000000000000000000000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b158015610de357600080fd5b505af1158015610df7573d6000803e3d6000fd5b5050505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631460fa87336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610ebd57600080fd5b505af1158015610ed1573d6000803e3d6000fd5b505050506040513d6020811015610ee757600080fd5b810190808051906020019092919050505060025410151515610f0857600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631460fa87336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610fc557600080fd5b505af1158015610fd9573d6000803e3d6000fd5b505050506040513d6020811015610fef57600080fd5b810190808051906020019092919050505060025403905060008111151561101557600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561113057600080fd5b505af1158015611144573d6000803e3d6000fd5b505050506040513d602081101561115a57600080fd5b8101908080519060200190929190505050151561117657600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638826fa2e6112b5600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631460fa87336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561127457600080fd5b505af1158015611288573d6000803e3d6000fd5b505050506040513d602081101561129e57600080fd5b810190808051906020019092919050505084614876565b336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561133b57600080fd5b505af115801561134f573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e17e7a2061145b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663817b1cd26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561141a57600080fd5b505af115801561142e573d6000803e3d6000fd5b505050506040513d602081101561144457600080fd5b810190808051906020019092919050505084614876565b6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1580156114ad57600080fd5b505af11580156114c1573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fd9e5fbf42336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561158a57600080fd5b505af115801561159e573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260148152602001807f7374616b65436f6d6d756e697479546f6b656e7300000000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b15801561167857600080fd5b505af115801561168c573d6000803e3d6000fd5b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116ee57600080fd5b80600381905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260168152602001807f7365744c6f636b7570506572696f645365636f6e64730000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b1580156117cb57600080fd5b505af11580156117df573d6000803e3d6000fd5b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561184157600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260168152602001807f7472616e73666572566f7465436f6e74726f6c6c65720000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b15801561195857600080fd5b505af115801561196c573d6000803e3d6000fd5b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119ce57600080fd5b806119d7613ede565b81111515156119e557600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637174ac9e84846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182815260200192505050600060405180830381600087803b158015611a7e57600080fd5b505af1158015611a92573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d3ff09a5611b9e600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630a6d96a56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611b5d57600080fd5b505af1158015611b71573d6000803e3d6000fd5b505050506040513d6020811015611b8757600080fd5b810190808051906020019092919050505085614876565b6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015611bf057600080fd5b505af1158015611c04573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e7a17d8384846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182815260200192505050600060405180830381600087803b158015611ca157600080fd5b505af1158015611cb5573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600d8152602001807f6372656174654e65775461736b0000000000000000000000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b158015611d8f57600080fd5b505af1158015611da3573d6000803e3d6000fd5b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e0757600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638692ac86826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015611ec457600080fd5b505af1158015611ed8573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260188152602001807f736574436f6d6d756e6974794163636f756e744f776e6572000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b158015611fb257600080fd5b505af1158015611fc6573d6000803e3d6000fd5b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561202857600080fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260098152602001807f7365744c6f67676572000000000000000000000000000000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b15801561213f57600080fd5b505af1158015612153573d6000803e3d6000fd5b5050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121b657600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663193c114b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663418ac0d6856040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1580156122a857600080fd5b505af11580156122bc573d6000803e3d6000fd5b505050506040513d60208110156122d257600080fd5b8101908080519060200190929190505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663db661100866040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15801561237457600080fd5b505af1158015612388573d6000803e3d6000fd5b505050506040513d602081101561239e57600080fd5b81019080805190602001909291905050506040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561246757600080fd5b505af115801561247b573d6000803e3d6000fd5b505050506040513d602081101561249157600080fd5b810190808051906020019092919050505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633b41b5f2612676600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639f205f686040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561256a57600080fd5b505af115801561257e573d6000803e3d6000fd5b505050506040513d602081101561259457600080fd5b8101908080519060200190929190505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663db661100866040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15801561263657600080fd5b505af115801561264a573d6000803e3d6000fd5b505050506040513d602081101561266057600080fd5b8101908080519060200190929190505050614855565b6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1580156126c857600080fd5b505af11580156126dc573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cb0d31338260006040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182815260200192505050600060405180830381600087803b15801561277a57600080fd5b505af115801561278e573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260178152602001807f72657761726450726f6a656374436f6d706c6574696f6e00000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b15801561286857600080fd5b505af115801561287c573d6000803e3d6000fd5b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128de57600080fd5b816128e7613ede565b81111515156128f557600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cb0d313385856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182815260200192505050600060405180830381600087803b15801561298e57600080fd5b505af11580156129a2573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637e54981485846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015612a6b57600080fd5b505af1158015612a7f573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633b41b5f2612b8b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639f205f686040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612b4a57600080fd5b505af1158015612b5e573d6000803e3d6000fd5b505050506040513d6020811015612b7457600080fd5b810190808051906020019092919050505086614876565b6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015612bdd57600080fd5b505af1158015612bf1573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a967f3e78585856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b158015612cc257600080fd5b505af1158015612cd6573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260108152602001807f6372656174654e657750726f6a6563740000000000000000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b158015612db057600080fd5b505af1158015612dc4573d6000803e3d6000fd5b5050505050505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612e4f57600080fd5b80600281905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352601c8152602001807f7365744d696e696d756d5374616b696e67526571756972656d656e740000000081525060200183810382526000815260200160200192505050600060405180830381600087803b158015612f2c57600080fd5b505af1158015612f40573d6000803e3d6000fd5b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612fa257600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d3ff09a5613175600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630a6d96a56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561306957600080fd5b505af115801561307d573d6000803e3d6000fd5b505050506040513d602081101561309357600080fd5b8101908080519060200190929190505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9307358866040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15801561313557600080fd5b505af1158015613149573d6000803e3d6000fd5b505050506040513d602081101561315f57600080fd5b8101908080519060200190929190505050614855565b6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1580156131c757600080fd5b505af11580156131db573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637174ac9e8260006040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182815260200192505050600060405180830381600087803b15801561327957600080fd5b505af115801561328d573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600a8152602001807f63616e63656c5461736b0000000000000000000000000000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b15801561336757600080fd5b505af115801561337b573d6000803e3d6000fd5b5050505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631460fa87336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561344157600080fd5b505af1158015613455573d6000803e3d6000fd5b505050506040513d602081101561346b57600080fd5b81019080805190602001909291905050509050600354600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663778f8cb0336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561353e57600080fd5b505af1158015613552573d6000803e3d6000fd5b505050506040513d602081101561356857600080fd5b810190808051906020019092919050505042031015151561358857600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638826fa2e6000336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561364e57600080fd5b505af1158015613662573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e17e7a2061376e600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663817b1cd26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561372d57600080fd5b505af1158015613741573d6000803e3d6000fd5b505050506040513d602081101561375757600080fd5b810190808051906020019092919050505084614855565b6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1580156137c057600080fd5b505af11580156137d4573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663193c114b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156138f357600080fd5b505af1158015613907573d6000803e3d6000fd5b505050506040513d602081101561391d57600080fd5b8101908080519060200190929190505050151561393957600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260168152602001807f756e7374616b65436f6d6d756e697479546f6b656e730000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b158015613a0f57600080fd5b505af1158015613a23573d6000803e3d6000fd5b5050505050565b60035481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631460fa87846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015613b1857600080fd5b505af1158015613b2c573d6000803e3d6000fd5b505050506040513d6020811015613b4257600080fd5b810190808051906020019092919050505010159050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613bdd57600080fd5b81600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260118152602001807f736574546f6b656e41646472657373657300000000000000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b158015613d3557600080fd5b505af1158015613d49573d6000803e3d6000fd5b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613dac57600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260138152602001807f736574436f6d6d756e6974794163636f756e740000000000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b158015613ec357600080fd5b505af1158015613ed7573d6000803e3d6000fd5b5050505050565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015613fc057600080fd5b505af1158015613fd4573d6000803e3d6000fd5b505050506040513d6020811015613fea57600080fd5b8101908080519060200190929190505050905061400e81614009614014565b614855565b91505090565b60006141a0600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630a6d96a56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561409f57600080fd5b505af11580156140b3573d6000803e3d6000fd5b505050506040513d60208110156140c957600080fd5b8101908080519060200190929190505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639f205f686040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561416057600080fd5b505af1158015614174573d6000803e3d6000fd5b505050506040513d602081101561418a57600080fd5b8101908080519060200190929190505050614876565b905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561422657600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663193c114b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9307358876040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15801561431957600080fd5b505af115801561432d573d6000803e3d6000fd5b505050506040513d602081101561434357600080fd5b81019080805190602001909291905050506040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561440c57600080fd5b505af1158015614420573d6000803e3d6000fd5b505050506040513d602081101561443657600080fd5b810190808051906020019092919050505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d3ff09a561461b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630a6d96a56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561450f57600080fd5b505af1158015614523573d6000803e3d6000fd5b505050506040513d602081101561453957600080fd5b8101908080519060200190929190505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9307358876040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1580156145db57600080fd5b505af11580156145ef573d6000803e3d6000fd5b505050506040513d602081101561460557600080fd5b8101908080519060200190929190505050614855565b6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561466d57600080fd5b505af1158015614681573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637174ac9e8360006040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182815260200192505050600060405180830381600087803b15801561471f57600080fd5b505af1158015614733573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331b7a1966040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260148152602001807f7265776172645461736b436f6d706c6574696f6e00000000000000000000000081525060200183810382526000815260200160200192505050600060405180830381600087803b15801561480d57600080fd5b505af1158015614821573d6000803e3d6000fd5b505050505050565b60025481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008083831115151561486757600080fd5b82840390508091505092915050565b600080828401905083811015151561488d57600080fd5b80915050929150505600a165627a7a72305820ccce86f7b26ec5483d59848e335f7925b8501d1d39cb31fefc4c6d98b3e5af340029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000052663ccab1e1c0000000000000000000000000000000000000000000000000000000000000076a7000000000000000000000000003cadf160a9d2e66e69bbdab63219dde2f1c07a17000000000000000000000000901eeac0eef1f956d3f628ba02e47b9f6518695500000000000000000000000000000000000000000000000000000000000000000000000000000000000000003cadf160a9d2e66e69bbdab63219dde2f1c07a170000000000000000000000002d8232aa33f3321d54c9339734de7749452bc1240000000000000000000000004aa68d7a31617fa2b64045fdbe50eb2fbaf3e9b5
-----Decoded View---------------
Arg [0] : _minimumStakingRequirement (uint256): 95000000000000000000
Arg [1] : _lockupPeriodSeconds (uint256): 7776000
Arg [2] : _curator (address): 0x3cAdf160a9d2e66e69bbDAB63219Dde2F1c07a17
Arg [3] : _communityTokenContractAddress (address): 0x901EeAc0eeF1f956D3f628Ba02E47b9F65186955
Arg [4] : _nativeTokenContractAddress (address): 0x0000000000000000000000000000000000000000
Arg [5] : _voteController (address): 0x3cAdf160a9d2e66e69bbDAB63219Dde2F1c07a17
Arg [6] : _loggerContractAddress (address): 0x2d8232aa33F3321D54C9339734de7749452Bc124
Arg [7] : _communityAccountContractAddress (address): 0x4AA68D7a31617Fa2b64045FDbe50Eb2Fbaf3e9b5
-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000052663ccab1e1c0000
Arg [1] : 000000000000000000000000000000000000000000000000000000000076a700
Arg [2] : 0000000000000000000000003cadf160a9d2e66e69bbdab63219dde2f1c07a17
Arg [3] : 000000000000000000000000901eeac0eef1f956d3f628ba02e47b9f65186955
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000003cadf160a9d2e66e69bbdab63219dde2f1c07a17
Arg [6] : 0000000000000000000000002d8232aa33f3321d54c9339734de7749452bc124
Arg [7] : 0000000000000000000000004aa68d7a31617fa2b64045fdbe50eb2fbaf3e9b5
Swarm Source
bzzr://ccce86f7b26ec5483d59848e335f7925b8501d1d39cb31fefc4c6d98b3e5af34
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.