interface IMasterGardener {
event Deposit(address indexed user, uint256 indexed pid, uint256 amount);
event EmergencyWithdraw(address indexed user, uint256 indexed pid, uint256 amount);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
event SendGovernanceTokenReward(address indexed user, uint256 indexed pid, uint256 amount, uint256 lockAmount);
event Withdraw(address indexed user, uint256 indexed pid, uint256 amount);
function FINISH_BONUS_AT_TIMESTAMP() view returns (uint256);
function HALVING_AT_TIMESTAMP(uint256) view returns (uint256);
function PERCENT_FOR_COM() view returns (uint256);
function PERCENT_FOR_DEV() view returns (uint256);
function PERCENT_FOR_FOUNDERS() view returns (uint256);
function PERCENT_FOR_LP() view returns (uint256);
function PERCENT_LOCK_BONUS_REWARD(uint256) view returns (uint256);
function REWARD_MULTIPLIER(uint256) view returns (uint256);
function REWARD_PER_SECOND() view returns (uint256);
function START_TIMESTAMP() view returns (uint256);
function add(uint256 _allocPoint, address _lpToken, bool _withUpdate);
function addAuthorized(address _toAdd);
function authorized(address) view returns (bool);
function bonusFinishUpdate(uint256 _newFinish);
function claimReward(uint256 _pid);
function claimRewards(uint256[] _pids);
function comUpdate(address _newCom);
function comfundaddr() view returns (address);
function deposit(uint256 _pid, uint256 _amount);
function dev(address _devaddr);
function devFeeStage(uint256) view returns (uint256);
function devaddr() view returns (address);
function emergencyWithdraw(uint256 _pid);
function founderUpdate(address _newFounder);
function founderaddr() view returns (address);
function getLockPercentage(uint256 _from, uint256 _to) view returns (uint256);
function getMultiplier(uint256 _from, uint256 _to) view returns (uint256);
function getNewRewardPerSecond(uint256 pid1) view returns (uint256);
function getPoolReward(uint256 _from, uint256 _to, uint256 _allocPoint) view returns (uint256 forDev, uint256 forFarmer, uint256 forLP, uint256 forCom, uint256 forFounders);
function govToken() view returns (address);
function halvingUpdate(uint256[] _newHalving);
function liquidityaddr() view returns (address);
function lockUpdate(uint256[] _newlock);
function lockcomUpdate(uint256 _newcomlock);
function lockdevUpdate(uint256 _newdevlock);
function lockfounderUpdate(uint256 _newfounderlock);
function locklpUpdate(uint256 _newlplock);
function lpUpdate(address _newLP);
function massUpdatePools();
function owner() view returns (address);
function pendingReward(uint256 _pid, address _user) view returns (uint256);
function poolExistence(address) view returns (bool);
function poolId1(address) view returns (uint256);
function poolInfo(uint256) view returns (address lpToken, uint256 allocPoint, uint256 lastRewardTimestamp, uint256 accGovTokenPerShare);
function poolLength() view returns (uint256);
function reclaimTokenOwnership(address _newOwner);
function removeAuthorized(address _toRemove);
function renounceOwnership();
function rewardMulUpdate(uint256[] _newMulReward);
function rewardUpdate(uint256 _newReward);
function set(uint256 _pid, uint256 _allocPoint, bool _withUpdate);
function setDevFeeStage(uint256[] _devFees);
function setStageEnds(uint256[] _timeEnds);
function setStageStarts(uint256[] _timeStarts);
function setUserFeeStage(uint256[] _userFees);
function startTimestampUpdate(uint256 _newstarttimestamp);
function timeDeltaEndStage(uint256) view returns (uint256);
function timeDeltaStartStage(uint256) view returns (uint256);
function totalAllocPoint() view returns (uint256);
function transferOwnership(address newOwner);
function updatePool(uint256 _pid);
function usdOracle() view returns (address);
function userDelta(uint256 _pid) view returns (uint256);
function userFeeStage(uint256) view returns (uint256);
function userInfo(uint256, address) view returns (uint256 amount, uint256 rewardDebt, uint256 rewardDebtAtTimestamp, uint256 lastWithdrawTimestamp, uint256 firstDepositTimestamp, uint256 timeDelta, uint256 lastDepositTimestamp);
function withdraw(uint256 _pid, uint256 _amount)
}
interface IMasterGardenerHarmony {
event Deposit(address indexed user, uint256 indexed pid, uint256 amount);
event EmergencyWithdraw(address indexed user, uint256 indexed pid, uint256 amount);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
event SendGovernanceTokenReward(address indexed user, uint256 indexed pid, uint256 amount, uint256 lockAmount);
event Withdraw(address indexed user, uint256 indexed pid, uint256 amount);
function FINISH_BONUS_AT_BLOCK() view returns (uint256);
function HALVING_AT_BLOCK(uint256) view returns (uint256);
function PERCENT_FOR_COM() view returns (uint256);
function PERCENT_FOR_DEV() view returns (uint256);
function PERCENT_FOR_FOUNDERS() view returns (uint256);
function PERCENT_FOR_LP() view returns (uint256);
function PERCENT_LOCK_BONUS_REWARD(uint256) view returns (uint256);
function REWARD_MULTIPLIER(uint256) view returns (uint256);
function REWARD_PER_BLOCK() view returns (uint256);
function START_BLOCK() view returns (uint256);
function add(uint256 _allocPoint, address _lpToken, bool _withUpdate);
function addAuthorized(address _toAdd);
function authorized(address) view returns (bool);
function blockDeltaEndStage(uint256) view returns (uint256);
function blockDeltaStartStage(uint256) view returns (uint256);
function bonusFinishUpdate(uint256 _newFinish);
function claimReward(uint256 _pid);
function claimRewards(uint256[] _pids);
function comUpdate(address _newCom);
function comfundaddr() view returns (address);
function deposit(uint256 _pid, uint256 _amount, address _ref);
function dev(address _devaddr);
function devDepFee() view returns (uint256);
function devFeeStage(uint256) view returns (uint256);
function devaddr() view returns (address);
function emergencyWithdraw(uint256 _pid);
function founderUpdate(address _newFounder);
function founderaddr() view returns (address);
function getGlobalAmount(address _user) view returns (uint256);
function getGlobalRefAmount(address _user) view returns (uint256);
function getLockPercentage(uint256 _from, uint256 _to) view returns (uint256);
function getMultiplier(uint256 _from, uint256 _to) view returns (uint256);
function getNewRewardPerBlock(uint256 pid1) view returns (uint256);
function getPoolReward(uint256 _from, uint256 _to, uint256 _allocPoint) view returns (uint256 forDev, uint256 forFarmer, uint256 forLP, uint256 forCom, uint256 forFounders);
function getRefValueOf(address _user, address _user2) view returns (uint256);
function getTotalRefs(address _user) view returns (uint256);
function govToken() view returns (address);
function halvingUpdate(uint256[] _newHalving);
function liquidityaddr() view returns (address);
function lockUpdate(uint256[] _newlock);
function lockcomUpdate(uint256 _newcomlock);
function lockdevUpdate(uint256 _newdevlock);
function lockfounderUpdate(uint256 _newfounderlock);
function locklpUpdate(uint256 _newlplock);
function lpUpdate(address _newLP);
function massUpdatePools();
function owner() view returns (address);
function pendingReward(uint256 _pid, address _user) view returns (uint256);
function poolExistence(address) view returns (bool);
function poolId1(address) view returns (uint256);
function poolInfo(uint256) view returns (address lpToken, uint256 allocPoint, uint256 lastRewardBlock, uint256 accGovTokenPerShare);
function poolLength() view returns (uint256);
function reclaimTokenOwnership(address _newOwner);
function removeAuthorized(address _toRemove);
function renounceOwnership();
function reviseDeposit(uint256 _pid, address _user, uint256 _block);
function reviseWithdraw(uint256 _pid, address _user, uint256 _block);
function rewardMulUpdate(uint256[] _newMulReward);
function rewardUpdate(uint256 _newReward);
function set(uint256 _pid, uint256 _allocPoint, bool _withUpdate);
function setDevDepFee(uint256 _devDepFees);
function setDevFeeStage(uint256[] _devFees);
function setStageEnds(uint256[] _blockEnds);
function setStageStarts(uint256[] _blockStarts);
function setUserDepFee(uint256 _usrDepFees);
function setUserFeeStage(uint256[] _userFees);
function starblockUpdate(uint256 _newstarblock);
function totalAllocPoint() view returns (uint256);
function transferOwnership(address newOwner);
function updatePool(uint256 _pid);
function usdOracle() view returns (address);
function userDelta(uint256 _pid) view returns (uint256);
function userDepFee() view returns (uint256);
function userFeeStage(uint256) view returns (uint256);
function userGlobalInfo(address) view returns (uint256 globalAmount, uint256 totalReferals, uint256 globalRefAmount);
function userInfo(uint256, address) view returns (uint256 amount, uint256 rewardDebt, uint256 rewardDebtAtBlock, uint256 lastWithdrawBlock, uint256 firstDepositBlock, uint256 blockdelta, uint256 lastDepositBlock);
function withdraw(uint256 _pid, uint256 _amount, address _ref);
}