This product includes software developed by
The Apache Software Foundation (http://www.apache.org/).

This product additionally includes script code developed by the Dojo Foundation under
the BSD or Academic Free License v2.1 licenses. (http://opensource.org/licenses/bsd-license.php or http://opensource.org/licenses/afl-2.1.php).

The Scriptaculous javascript library is also included in Tapestry - which is licensed with the MIT License. (http://www.opensource.org/licenses/mit-license.php)

This product makes use of the Javassist library, distributed under the terms of the
Mozilla Public License version 1.1.
http://www.jboss.com/products/javassist
