<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>About</title>
</head>
<body lang="EN-US">
<h2>About This Content</h2>
 
<p>June 22, 2011</p>
<h3>License</h3>

<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
indicated below, the Content is provided to you under the terms and conditions of the
Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>

<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
apply to your use of any object code in the Content.  Check the Redistributor's license that was 
provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
indicated below, the terms and conditions of the EPL still apply to any source code in the Content
and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>

<h3>Third Party Content</h3>
<p>The Content includes items that have been sourced from third parties as set out below. If you 
did not receive this Content directly from the Eclipse Foundation, the following is provided 
for informational purposes only, and you should look to the Redistributor's license for 
terms and conditions of use.</p>

<h4>Batik SVG Toolkit 1.6 (subset)</h4>

<p>The plug-in includes a subset of Batik SVG Toolkit 1.6 (&quot;Batik&quot;)
developed by the Apache Software Foundation as part of the XML Graphics project.
Your use of Batik is subject to the terms and conditions of the Apache License,
Version 2.0 (&quot;Apache License&quot;).
A copy of the Apache License can be found in
<a href="about_files/LICENSE-2.0.txt">about_files/LICENSE-2.0.txt</a>
and is also available at
<a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>.</p>

<p>The Apache attribution <a href="about_files/NOTICE">NOTICE</a> file is
included with the Content in accordance with 4d of the Apache License.</p>

<p>The code included in this plug-in incorporates only a small subset of the
original Batik distribution, used for parsing CSS.</p>

<p>Source code for Batik is available at
<a href="http://xmlgraphics.apache.org/batik/">http://xmlgraphics.apache.org/batik/</a>.</p>

<p>The names &quot;Batik&quot; and  &quot;Apache Software Foundation&quot; must
not be used to endorse or promote products derived from this software without
prior written permission.
For written permission, please contact
<a href="mailto:apache@apache.org">apache@apache.org</a>.</p>

<h4>CSS SAC 1.3 Java Binding</h4>

<p>The plug-in includes CSS SAC 1.3 Java Binding (&quot;CSS SAC&quot;) developed
by the World Wide Web Consortium (&quot;W3C&quot;).
Your use of CSS SAC is subject to the terms and conditions of the W3C software
license, dated December 31 2002 (&quot;W3C License&quot;).
A copy of the W3C License can be found in
<a href="about_files/LICENSE-W3C-20021231.html">about_files/LICENSE-W3C-20021231.html</a>
and is also available at
<a href="http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231">http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231</a>.</p>

<p>Source code for CSS SAC is available at
<a href="http://www.w3.org/Style/CSS/SAC/">http://www.w3.org/Style/CSS/SAC/</a>.</p>

<h4>Rhino 1.6.6</h4>

<p>This plug-in is accompanied by Rhino, developed by Mozilla and is subject to the terms and conditions 
of the Mozilla Public License version 1.1.  A copy of the license is contained in the file <a href="about_files/MPL-1.1.txt">MPL-1.1.txt</a> 
and is also available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>.</p>

<p>Note, the code distributed here is a subset of the original
because it excludes some binary files with proprietary licenses.</p>

<p>The source for the bundle is available on the Mozilla Rhino website at
 <a href="http://www.mozilla.org/rhino/">http://www.mozilla.org/rhino/</a>.</p>

<h4>YUI Compressor 2.4.2</h4>

<p>The plug-in includes parts of the YUI Compressor 2.4.2, developed by Yahoo! and contributors, and
published under a BSD license.  A copy of the YUI license is contained in the file
 <a href="about_files/LICENSE-YUI.html">LICENSE-YUI.html</a> and is also available at
 <a href="http://developer.yahoo.com/yui/license.html">http://developer.yahoo.com/yui/license.html</a>.</p>

</body>
</html>
