Written by Andrew Shaw. See README for license information.
Copyright © 1999 Andrew Shaw, All rights reserved.