<!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>April 20, 2007</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&apos;s license for 
terms and conditions of use.</p>

<h4>Ispell 3.1.20</h4>

<p>The plug-in is accompanied by software developed by Geoff Kuenning.  The following files:</p>
<ul>
	<li>dictionaries/en_US.dictionary</li>
	<li>dictionaries/en_GB.dictionary</li>
</ul>

<p>are based on Ispell 3.1.20.  The home page for Ispell is located at <a href="http://lasr.cs.ucla.edu/geoff/ispell.html" target="_blank">http://lasr.cs.ucla.edu/geoff/ispell.html</a>.</p>

<p>Your use of Ispell 3.1.20 in the plug-in is subject to the terms and conditions of the Ispell license.  A copy of the Ispell license is included in
<a href="about_files/ispell-license.txt" target="_blank">about_files/ispell-license.txt</a> and is also reproduced below:</p>

<blockquote>
  Copyright 1993, Geoff Kuenning, Granada Hills, CA<br />
  All rights reserved.<br />
<br />
  Redistribution and use in source and binary forms, with or without<br />
  modification, are permitted provided that the following conditions<br />
  are met:<br />
<br />
  1. Redistributions of source code must retain the above copyright<br />
     notice, this list of conditions and the following disclaimer.<br />
  2. Redistributions in binary form must reproduce the above copyright<br />
     notice, this list of conditions and the following disclaimer in the<br />
     documentation and/or other materials provided with the distribution.<br />
  3. All modifications to the source code must be clearly marked as<br />
     such.  Binary redistributions based on modified source code<br />
     must be clearly marked as modified versions in the documentation<br />
     and/or other materials provided with the distribution.<br />
  4. All advertising materials mentioning features or use of this software<br />
     must display the following acknowledgment:<br />
     This product includes software developed by Geoff Kuenning and<br />
     other unpaid contributors.<br />
  5. The name of Geoff Kuenning may not be used to endorse or promote<br />
     products derived from this software without specific prior<br />
     written permission.<br />
<br />
  THIS SOFTWARE IS PROVIDED BY GEOFF KUENNING AND CONTRIBUTORS ``AS<br />
  IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT<br />
  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS<br />
  FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL GEOFF<br />
  KUENNING OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,<br />
  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,<br />
  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;<br />
  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER<br />
  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT<br />
  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN<br />
  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE<br />
  POSSIBILITY OF SUCH DAMAGE.<br />
</blockquote>

</body>
</html>