distributed.net does not condone the unauthorized use of its software on any computer system. 
You may not run any distributed.net software on a system unless you own the system or have 
received permission from the owner to run distributed.net software. Running the client on 
a machine without authorization will result in your removal from the project and will 
disqualify you from winning.

By running a client and submitting blocks credited to your email address, you give 
distributed.net the right to post your email address on its statistics pages. 
distributed.net will never intentionally release email addresses in any other 
fashion without the address owner's consent. 
