We’ve had that question quite a bit and I tracked down all the necessary bits and pieces once:
@stgraber also posted here: