http://www.catb.org/esr/writings/taoup/html/ch05s02.html
