Source: https://www.itercad.org/Interfaces/Interfaces68.pdf