 Copyright (C) 1998-2001, Daniel Stenberg, <daniel@haxx.se>, et al.

 Everyone is permitted to copy and distribute verbatim copies of this license
 document, but changing it is not allowed.

 In order to be useful for every potential user, the curl and libcurl are
 dual-licensed under the MPL and the MIT/X-derivate licenses.

 You may opt to use, copy, modify, merge, publish, distribute and/or sell
 copies of the Software, and permit persons to whom the Software is furnished
 to do so, under the terms of the MPL or the MIT/X-derivate licenses. You may
 pick one of these licenses. The files MITX.txt and MPL-1.1.txt contain the
 license texts.

 As a courtesy to the open-source and free software community, we ask you to
 dual-license any modifications that you make as well, under the terms of this
 document.

 Please remember to always keep the licensing information included in
 individual source files up-to-date, so as to avoid misleading anyone as to
 the status of these files.

 I will use a submission policy according to which I will only enter
 contributions into the CVS tree if the contributor agrees to both licenses
 and this dual-license approach.
