<!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 v2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</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>