<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
   PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "xhtml1-strict.dtd">
<html xmlns='http://www.w3.org/1999/xhtml'>
  <head>
    <title>W3C IPR SOFTWARE NOTICE</title>
  </head>
  <body>
    <h1>
      W3C IPR SOFTWARE NOTICE
    </h1>
    <h3>
      Copyright &#xA9; 2002-2005 <a href="http://www.w3.org/">World Wide Web
      Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
      Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
      National de Recherche en Informatique et en Automatique</a>, <a
      href="http://www.keio.ac.jp/">Keio University</a>). All Rights
      Reserved.
    </h3>
    <p>
      The DOM Conformance Test Suite for Level 1 core is published under
      the W3C Software Copyright Notice and License. The software
      license requires "Notice of any changes or modifications to the
      W3C files, including the date changes were made."  Consequently,
      modified versions of the DOM ECMAScript or Java tests must
      document that they do not conform to the DOM Conformance Test
      Suites; in the case of the Java language binding, the package
      names can no longer be in the 'org.w3c' package.
    </p>
    <p>
      <b>Note:</b> The original version of the W3C Software Copyright Notice
      and License could be found at <a
      href='http://www.w3.org/Consortium/Legal/copyright-software-19980720'>http://www.w3.org/Consortium/Legal/copyright-software-19980720</a>
    </p>
    <h3>
      Copyright &#xA9; 1994-2005 <a href="http://www.w3.org/">World Wide Web
      Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
      Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
      National de Recherche en Informatique et en Automatique</a>, <a
      href="http://www.keio.ac.jp/">Keio University</a>). All Rights
      Reserved. http://www.w3.org/Consortium/Legal/
    </h3>
    <p>
      This W3C work (including software, documents, or other related items) is
      being provided by the copyright holders under the following license. By
      obtaining, using and/or copying this work, you (the licensee) agree that
      you have read, understood, and will comply with the following terms and
      conditions:
    </p>
    <p>
      Permission to use, copy, and modify this software and its documentation,
      with or without modification,&#xA0; for any purpose and without fee or
      royalty is hereby granted, provided that you include the following on ALL
      copies of the software and documentation or portions thereof, including
      modifications, that you make:
    </p>
    <ol>
      <li>
	The full text of this NOTICE in a location viewable to users of the
	redistributed or derivative work.
      </li>
      <li>
	Any pre-existing intellectual property disclaimers, notices, or terms
	and conditions. If none exist, a short notice of the following form
	(hypertext is preferred, text is permitted) should be used within the
	body of any redistributed or derivative code: "Copyright &#xA9;
	[$date-of-software] <a href="http://www.w3.org/">World Wide Web
	Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
	Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
	National de Recherche en Informatique et en Automatique</a>, <a
	href="http://www.keio.ac.jp/">Keio University</a>).  All Rights
	Reserved. http://www.w3.org/Consortium/Legal/"
      </li>
      <li>
	Notice of any changes or modifications to the W3C files, including the
	date changes were made. (We recommend you provide URIs to the location
	from which the code is derived.)
      </li>
    </ol>
    <p>
      THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT
      HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED,
      INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS
      FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR
      DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
      TRADEMARKS OR OTHER RIGHTS.
    </p>
    <p>
      COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
      CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
      DOCUMENTATION.
    </p>
    <p>
      The name and trademarks of copyright holders may NOT be used in
      advertising or publicity pertaining to the software without specific,
      written prior permission. Title to copyright in this software and any
      associated documentation will at all times remain with copyright
      holders.
    </p>
  </body>
</html>
