KInterbasDB Python Database Module - LICENSE

The following contributors hold Copyright (C) over their respective
portions of code and documentation:

[Author of original version; maintained through version 2.0:]
  1998-2001 [alex]  Alexander Kuznetsov   <alexan@users.sourceforge.net>

[Author of ~90% of current code and 100% of current documentation:]
  2002-2004 [dsr]   David Rushby          <woodsplitter@rocketmail.com>

[Significant Contributors:]
  2001-2002 [maz]   Marek Isalski         <kinterbasdb@maz.nu>
    Marek made important first steps in removing the limitations of
    version 2.0 in preparation for version 3.0.

  2001      [eac]   Evgeny A. Cherkashin  <eugeneai@icc.ru>
    Evgeny wrote the first version of the distutils build script,
    which was included in a 2.x point release.

  2001-2002 [janez] Janez Jere            <janez.jere@void.si>
    Janez contributed several bugfixes, including fixes for the date
    and time parameter conversion code in preparation for version 3.0.


Permission to use, copy, modify, and distribute this software and
its documentation for any purpose and without fee or royalty
is hereby granted, provided that the above copyright notice appears
in all copies and that both the copyright notice and this
permission notice appear in supporting documentation or portions
thereof, including modifications, that you make.

The authors disclaim all warranties with regard to this software,
including all implied warranties of merchantability and fitness.
In no event shall any author be liable for any special, indirect
or consequential damages or any damages whatsoever resulting
from loss of use, data or profits, whether in an action of
contract, negligence or other tortious action, arising out of or
in connection with the use or performance of this software.
