// Contract: GearReserveVault
// Target function: function startUnlock(address recipient) external
/**

 * GearProtocol's Reserve Vault
 
 * Smart contract to lockup GEAR Reserve fund indefinitely.

 * Official Website: 
https://GearProtocol.com
 
 */




pragma solidity ^0.6.0;


library SafeMath 
{
    function mul(uint256 a, uint256 b) internal pure returns (uint256) 
    {
        if (a == 0) 
        {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }
    
    function div(uint256 a, uint256 b) internal pure returns (uint256) 
    {
        uint256 c = a / b;
        return c;
    }
    
    function sub(uint256 a, uint256 b) internal pure returns (uint256) 
    {
        assert(b <= a);
        return a - b;
    }
    
    function add(uint256 a, uint256 b) internal pure returns (uint256) 
    {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
    
    function ceil(uint256 a, uint256 m) internal pure returns (uint256) 
    {
        uint256 c = add(a,m);
        uint256 d = sub(c,1);
        return mul(div(d,m),m);
    }
}

contract GearReserveVault {
   
    using SafeMath for uint256;
    
    ERC20 constant GearToken = ERC20(0xBD753A8D3bE45F4772145D75E28014a333B705Fb);
    
    address owner = msg.sender;
    
     
    uint256 public LockPeriod;
    address public UnlockRecipient;