The contents of these file are subject to the Mozilla Public License Version 1.0 (the "License"); 
you may not use these files except in compliance with the License. You may obtain a copy of the 
License at http://www.mozilla.org/MPL/

Software distributed under the License is distributed on an "AS IS" basis, 
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the 
specific language governing rights and limitations under the License.

The Original Code is all Saxon modules labelled with a notice referring to this license.

The Initial Developer of the Original Code is Michael Kay, except where otherwise specified in an individual module.

Portions created by other named contributors are copyright as identified in the relevant module. All Rights Reserved.

Contributor(s) are listed in the documentation: see notices/contributors. 