<!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 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&rsquo;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>