A timelock for releasing tokens over a continuous linear schedule. There is an appointed beneficiary who controls the tokens when vested. The beneficiary can set a new one if needed using the offer-accept pattern.
Uses Timed to have a fixed period d of release. The elapsed time t is on the range [0,d].
The contract maintains the following:
T - a total token amount which includes any already released and locked tokens. It can increase if new tokens enter the timelock but it cannot decrease.
C - the current held tokens in the contract
The portion of T available for release is T*t/d.
The already released amount is T - C.
The net amount available for release is the total available minus already released. The beneficiary can claim these at any time, and distribute to any address.