Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Added embedded-examples.

  • Loading branch information...
commit dcb5bf9d6714a9af7ecd823fc996a98443f71fb3 2 parents f062b6f + ee7b76f
Anders Nawroth nawroth authored

Showing 52 changed files with 11,036 additions and 0 deletions. Show diff stats Hide diff stats

  1. +114 0 embedded-examples/CHANGES.txt
  2. +182 0 embedded-examples/LICENSE.txt
  3. +917 0 embedded-examples/LICENSES.txt
  4. +34 0 embedded-examples/NOTICE.txt
  5. +29 0 embedded-examples/README.txt
  6. +330 0 embedded-examples/pom.xml
  7. +81 0 embedded-examples/src/main/assembly/download-assembly.xml
  8. +40 0 embedded-examples/src/main/assembly/site-assembly.xml
  9. +140 0 embedded-examples/src/main/java/org/neo4j/examples/CalculateShortestPath.java
  10. +101 0 embedded-examples/src/main/java/org/neo4j/examples/EmbeddedNeo4j.java
  11. +138 0 embedded-examples/src/main/java/org/neo4j/examples/EmbeddedNeo4jWithIndexing.java
  12. +218 0 embedded-examples/src/main/java/org/neo4j/examples/Neo4jShell.java
  13. +142 0 embedded-examples/src/main/java/org/neo4j/examples/UsingIntegratedIndex.java
  14. +89 0 embedded-examples/src/main/java/org/neo4j/examples/socnet/FriendsStatusUpdateIterator.java
  15. +366 0 embedded-examples/src/main/java/org/neo4j/examples/socnet/Person.java
  16. +154 0 embedded-examples/src/main/java/org/neo4j/examples/socnet/PersonRepository.java
  17. +32 0 embedded-examples/src/main/java/org/neo4j/examples/socnet/RelTypes.java
  18. +81 0 embedded-examples/src/main/java/org/neo4j/examples/socnet/StatusUpdate.java
  19. +3 0  embedded-examples/src/main/resources/META-INF/services/org.neo4j.server.plugins.ServerPlugin
  20. +21 0 embedded-examples/src/site/apt/base-test.apt
  21. +36 0 embedded-examples/src/site/apt/basic-index.apt
  22. +35 0 embedded-examples/src/site/apt/basic.apt
  23. +21 0 embedded-examples/src/site/apt/entities.apt
  24. +12 0 embedded-examples/src/site/apt/graphalgo.apt
  25. +29 0 embedded-examples/src/site/apt/index.apt
  26. +21 0 embedded-examples/src/site/apt/integrated-index.apt
  27. +18 0 embedded-examples/src/site/apt/management.apt
  28. +7 0 embedded-examples/src/site/apt/matrix.apt
  29. +13 0 embedded-examples/src/site/apt/ordered-path.apt
  30. +63 0 embedded-examples/src/site/apt/social-network.apt
  31. +71 0 embedded-examples/src/site/apt/traversal.apt
  32. BIN  embedded-examples/src/site/resources/docs/Activity Stream.odp
  33. +5,945 0 embedded-examples/src/site/resources/docs/social_model.graffle
  34. BIN  embedded-examples/src/site/resources/docs/socnet-model.dia
  35. BIN  embedded-examples/src/site/resources/images/friend_statuses.png
  36. BIN  embedded-examples/src/site/resources/images/hello-world.png
  37. BIN  embedded-examples/src/site/resources/images/matrix.png
  38. BIN  embedded-examples/src/site/resources/images/roles.png
  39. BIN  embedded-examples/src/site/resources/images/social-network.png
  40. BIN  embedded-examples/src/site/resources/images/social_friends.png
  41. BIN  embedded-examples/src/site/resources/images/social_status.png
  42. BIN  embedded-examples/src/site/resources/images/social_uml.png
  43. BIN  embedded-examples/src/site/resources/images/socnet-model.png
  44. BIN  embedded-examples/src/site/resources/images/users.png
  45. +70 0 embedded-examples/src/site/site.xml
  46. +55 0 embedded-examples/src/test/java/org/neo4j/examples/JmxTest.java
  47. +213 0 embedded-examples/src/test/java/org/neo4j/examples/MatrixTest.java
  48. +124 0 embedded-examples/src/test/java/org/neo4j/examples/Neo4jBasicTest.java
  49. +323 0 embedded-examples/src/test/java/org/neo4j/examples/RolesOldTest.java
  50. +323 0 embedded-examples/src/test/java/org/neo4j/examples/RolesTest.java
  51. +116 0 embedded-examples/src/test/java/org/neo4j/examples/orderedpath/OrderedPathTest.java
  52. +329 0 embedded-examples/src/test/java/org/neo4j/examples/socnet/SocnetTest.java
114 embedded-examples/CHANGES.txt
... ... @@ -0,0 +1,114 @@
  1 +1.3.M03 (2011-02-25)
  2 +--------------------
  3 +
  4 +o Refactored out server example to a separate project.
  5 +
  6 +1.3-1.3.M01 (2011-01-27)
  7 +------------------------
  8 +
  9 +o Added an example of an ordered traversal.
  10 +
  11 +1.2-1.2.M06 (2010-12-21)
  12 +--------------------
  13 +
  14 +- Kernel
  15 +o Fixed an issues with PruneEvaluators getting invoked with the start node as argument.
  16 +PruneEvaluators was never invoked with the start node before the arrival of Evaluator interface.
  17 +o Added logging of recovery completion.
  18 +o Added TransactionData#isDeleted(Node) and #isDeleted(Relationship) and also made
  19 +the collection to hold these a HashSet instead of ArrayList. This allows fast
  20 +lookups for asking if a node/relationship is deleted in a transaction.
  21 +o More flexible caching (can instantiate an arbitrary Cache object).
  22 +
  23 +- Shell
  24 +o Fixed a problem where ShellServerExtension assumed the shell was enabled during shutdown, which could result in NPE.
  25 +
  26 +- Lucene-index
  27 +o More flexible caching (can instantiate an arbitrary Cache object).
  28 +o Merged the fast-writes branch. Basically it makes committing changes to lucene indexes
  29 + faster and more throughput-friendly for multiple threads. The performance improvement
  30 + for committing lucene transactions shows best for small transactions, but will improve
  31 + all modifying operations to lucene indexes.
  32 +o Fixed bug which could close an IndexSearcher before it was supposed to when
  33 + there was exactly one item in the result set, two or more threads did this at
  34 + the same time as there was another thread doing an update... AND the reading
  35 + threads all called IndexHits#getSingle() on the result.
  36 +
  37 +- HA
  38 +o When a new master is chosen, slaves throws away the id allocations they got from the previous master. This fixes a problem where occupied ids where reused.
  39 +o Enabled (and fixed problem with) thread on master which checks for dead slave connections and rolls back those transactions, so that their locks are released.
  40 + This fixes a problem where an HA cluster would seem to freeze up and become unresponsive to write requests.
  41 +o Adding Log4j and Netty license information.
  42 +o Also closes the executor containing the connections.
  43 +o Changed dependency scopes.
  44 +o Shuts down databases after verifying them.
  45 +
  46 +1.2.M05 (2010-12-02)
  47 +--------------------
  48 +
  49 +o made examples easier to read (selfcontained, explicit)
  50 +
  51 +1.2.M04 (2010-11-18)
  52 +--------------------
  53 +o added example to via REST connect to neo4j server from Java
  54 +o added more configuration options to neo4j-lucene-index
  55 +o generating javadocs for all components automatically to components.neo4j.org/{component-name}
  56 +o Added ImpermanentGraphDatabase to aid in testing
  57 +
  58 +1.2.M03 (2010-11-04)
  59 +--------------------
  60 +- New components
  61 +o Neo4j Management, making the use of JMX and other
  62 + management features easier
  63 +
  64 +- Important changes
  65 +o Included code examples properly licensed under Apache license version 2
  66 +o Added ability to get the name and configuration of existing integrated indexes.
  67 +
  68 +1.2.M02 (2010-10-21)
  69 +--------------------
  70 +
  71 +-New components
  72 +o Lucene index, an implementation of the integrated index framework
  73 + using lucene as backend. Planned to replace current index service.
  74 +
  75 +-Important changes
  76 +o Fixed shutdown issue regarding UDC leaving a thread running.
  77 +o A new index framework integrated into the kernel API.
  78 +o Getting relationships is faster due to less cache lookups.
  79 +
  80 +1.2.M01 (2010-10-08)
  81 +--------------------
  82 +
  83 +-New components
  84 +o Udc
  85 +
  86 +-Important changes
  87 +o Index:
  88 + - Lucene version upgraded to 3.0.1
  89 +o Shell:
  90 + - Apps discoverable with service locator
  91 + - Added read-only mode on server
  92 + - 'host' and 'config' options
  93 +o Graph-algo:
  94 + - Find paths of certain length
  95 +o Kernel:
  96 + - Lower memory footprint
  97 + - Higher throughput/concurrency for reads
  98 + - Common interface for loading kernel extensions (f.ex. shell)
  99 +
  100 +1.1 (2010-07-29)
  101 +----------------
  102 +
  103 +-New components
  104 +o Graph-algo
  105 +o Online-backup
  106 +
  107 +1.0 (2010-02-16)
  108 +----------------
  109 +
  110 +-Initial components
  111 +o Kernel
  112 +o Index
  113 +o Remote-graphdb
  114 +o Shell
182 embedded-examples/LICENSE.txt
... ... @@ -0,0 +1,182 @@
  1 +NOTICE
  2 +This package contains software licensed under different
  3 +licenses, please refer to the NOTICE.txt file for further
  4 +information and LICENSES.txt for full license texts.
  5 +
  6 +
  7 + Apache License
  8 + Version 2.0, January 2004
  9 + http://www.apache.org/licenses/
  10 +
  11 + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
  12 +
  13 + 1. Definitions.
  14 +
  15 + "License" shall mean the terms and conditions for use, reproduction,
  16 + and distribution as defined by Sections 1 through 9 of this document.
  17 +
  18 + "Licensor" shall mean the copyright owner or entity authorized by
  19 + the copyright owner that is granting the License.
  20 +
  21 + "Legal Entity" shall mean the union of the acting entity and all
  22 + other entities that control, are controlled by, or are under common
  23 + control with that entity. For the purposes of this definition,
  24 + "control" means (i) the power, direct or indirect, to cause the
  25 + direction or management of such entity, whether by contract or
  26 + otherwise, or (ii) ownership of fifty percent (50%) or more of the
  27 + outstanding shares, or (iii) beneficial ownership of such entity.
  28 +
  29 + "You" (or "Your") shall mean an individual or Legal Entity
  30 + exercising permissions granted by this License.
  31 +
  32 + "Source" form shall mean the preferred form for making modifications,
  33 + including but not limited to software source code, documentation
  34 + source, and configuration files.
  35 +
  36 + "Object" form shall mean any form resulting from mechanical
  37 + transformation or translation of a Source form, including but
  38 + not limited to compiled object code, generated documentation,
  39 + and conversions to other media types.
  40 +
  41 + "Work" shall mean the work of authorship, whether in Source or
  42 + Object form, made available under the License, as indicated by a
  43 + copyright notice that is included in or attached to the work
  44 + (an example is provided in the Appendix below).
  45 +
  46 + "Derivative Works" shall mean any work, whether in Source or Object
  47 + form, that is based on (or derived from) the Work and for which the
  48 + editorial revisions, annotations, elaborations, or other modifications
  49 + represent, as a whole, an original work of authorship. For the purposes
  50 + of this License, Derivative Works shall not include works that remain
  51 + separable from, or merely link (or bind by name) to the interfaces of,
  52 + the Work and Derivative Works thereof.
  53 +
  54 + "Contribution" shall mean any work of authorship, including
  55 + the original version of the Work and any modifications or additions
  56 + to that Work or Derivative Works thereof, that is intentionally
  57 + submitted to Licensor for inclusion in the Work by the copyright owner
  58 + or by an individual or Legal Entity authorized to submit on behalf of
  59 + the copyright owner. For the purposes of this definition, "submitted"
  60 + means any form of electronic, verbal, or written communication sent
  61 + to the Licensor or its representatives, including but not limited to
  62 + communication on electronic mailing lists, source code control systems,
  63 + and issue tracking systems that are managed by, or on behalf of, the
  64 + Licensor for the purpose of discussing and improving the Work, but
  65 + excluding communication that is conspicuously marked or otherwise
  66 + designated in writing by the copyright owner as "Not a Contribution."
  67 +
  68 + "Contributor" shall mean Licensor and any individual or Legal Entity
  69 + on behalf of whom a Contribution has been received by Licensor and
  70 + subsequently incorporated within the Work.
  71 +
  72 + 2. Grant of Copyright License. Subject to the terms and conditions of
  73 + this License, each Contributor hereby grants to You a perpetual,
  74 + worldwide, non-exclusive, no-charge, royalty-free, irrevocable
  75 + copyright license to reproduce, prepare Derivative Works of,
  76 + publicly display, publicly perform, sublicense, and distribute the
  77 + Work and such Derivative Works in Source or Object form.
  78 +
  79 + 3. Grant of Patent License. Subject to the terms and conditions of
  80 + this License, each Contributor hereby grants to You a perpetual,
  81 + worldwide, non-exclusive, no-charge, royalty-free, irrevocable
  82 + (except as stated in this section) patent license to make, have made,
  83 + use, offer to sell, sell, import, and otherwise transfer the Work,
  84 + where such license applies only to those patent claims licensable
  85 + by such Contributor that are necessarily infringed by their
  86 + Contribution(s) alone or by combination of their Contribution(s)
  87 + with the Work to which such Contribution(s) was submitted. If You
  88 + institute patent litigation against any entity (including a
  89 + cross-claim or counterclaim in a lawsuit) alleging that the Work
  90 + or a Contribution incorporated within the Work constitutes direct
  91 + or contributory patent infringement, then any patent licenses
  92 + granted to You under this License for that Work shall terminate
  93 + as of the date such litigation is filed.
  94 +
  95 + 4. Redistribution. You may reproduce and distribute copies of the
  96 + Work or Derivative Works thereof in any medium, with or without
  97 + modifications, and in Source or Object form, provided that You
  98 + meet the following conditions:
  99 +
  100 + (a) You must give any other recipients of the Work or
  101 + Derivative Works a copy of this License; and
  102 +
  103 + (b) You must cause any modified files to carry prominent notices
  104 + stating that You changed the files; and
  105 +
  106 + (c) You must retain, in the Source form of any Derivative Works
  107 + that You distribute, all copyright, patent, trademark, and
  108 + attribution notices from the Source form of the Work,
  109 + excluding those notices that do not pertain to any part of
  110 + the Derivative Works; and
  111 +
  112 + (d) If the Work includes a "NOTICE" text file as part of its
  113 + distribution, then any Derivative Works that You distribute must
  114 + include a readable copy of the attribution notices contained
  115 + within such NOTICE file, excluding those notices that do not
  116 + pertain to any part of the Derivative Works, in at least one
  117 + of the following places: within a NOTICE text file distributed
  118 + as part of the Derivative Works; within the Source form or
  119 + documentation, if provided along with the Derivative Works; or,
  120 + within a display generated by the Derivative Works, if and
  121 + wherever such third-party notices normally appear. The contents
  122 + of the NOTICE file are for informational purposes only and
  123 + do not modify the License. You may add Your own attribution
  124 + notices within Derivative Works that You distribute, alongside
  125 + or as an addendum to the NOTICE text from the Work, provided
  126 + that such additional attribution notices cannot be construed
  127 + as modifying the License.
  128 +
  129 + You may add Your own copyright statement to Your modifications and
  130 + may provide additional or different license terms and conditions
  131 + for use, reproduction, or distribution of Your modifications, or
  132 + for any such Derivative Works as a whole, provided Your use,
  133 + reproduction, and distribution of the Work otherwise complies with
  134 + the conditions stated in this License.
  135 +
  136 + 5. Submission of Contributions. Unless You explicitly state otherwise,
  137 + any Contribution intentionally submitted for inclusion in the Work
  138 + by You to the Licensor shall be under the terms and conditions of
  139 + this License, without any additional terms or conditions.
  140 + Notwithstanding the above, nothing herein shall supersede or modify
  141 + the terms of any separate license agreement you may have executed
  142 + with Licensor regarding such Contributions.
  143 +
  144 + 6. Trademarks. This License does not grant permission to use the trade
  145 + names, trademarks, service marks, or product names of the Licensor,
  146 + except as required for reasonable and customary use in describing the
  147 + origin of the Work and reproducing the content of the NOTICE file.
  148 +
  149 + 7. Disclaimer of Warranty. Unless required by applicable law or
  150 + agreed to in writing, Licensor provides the Work (and each
  151 + Contributor provides its Contributions) on an "AS IS" BASIS,
  152 + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
  153 + implied, including, without limitation, any warranties or conditions
  154 + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
  155 + PARTICULAR PURPOSE. You are solely responsible for determining the
  156 + appropriateness of using or redistributing the Work and assume any
  157 + risks associated with Your exercise of permissions under this License.
  158 +
  159 + 8. Limitation of Liability. In no event and under no legal theory,
  160 + whether in tort (including negligence), contract, or otherwise,
  161 + unless required by applicable law (such as deliberate and grossly
  162 + negligent acts) or agreed to in writing, shall any Contributor be
  163 + liable to You for damages, including any direct, indirect, special,
  164 + incidental, or consequential damages of any character arising as a
  165 + result of this License or out of the use or inability to use the
  166 + Work (including but not limited to damages for loss of goodwill,
  167 + work stoppage, computer failure or malfunction, or any and all
  168 + other commercial damages or losses), even if such Contributor
  169 + has been advised of the possibility of such damages.
  170 +
  171 + 9. Accepting Warranty or Additional Liability. While redistributing
  172 + the Work or Derivative Works thereof, You may choose to offer,
  173 + and charge a fee for, acceptance of support, warranty, indemnity,
  174 + or other liability obligations and/or rights consistent with this
  175 + License. However, in accepting such obligations, You may act only
  176 + on Your own behalf and on Your sole responsibility, not on behalf
  177 + of any other Contributor, and only if You agree to indemnify,
  178 + defend, and hold each Contributor harmless for any liability
  179 + incurred by, or claims asserted against, such Contributor by reason
  180 + of your accepting any such warranty or additional liability.
  181 +
  182 + END OF TERMS AND CONDITIONS
917 embedded-examples/LICENSES.txt
... ... @@ -0,0 +1,917 @@
  1 +This file contains the full license text of the
  2 +included libraries. For an overview of the licenses
  3 +see the NOTICE.txt file.
  4 +
  5 +
  6 +----------------------------------------
  7 +License for the included Neo4j libraries
  8 +----------------------------------------
  9 +
  10 + GNU AFFERO GENERAL PUBLIC LICENSE
  11 + Version 3, 19 November 2007
  12 +
  13 + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
  14 + Everyone is permitted to copy and distribute verbatim copies
  15 + of this license document, but changing it is not allowed.
  16 +
  17 + Preamble
  18 +
  19 + The GNU Affero General Public License is a free, copyleft license
  20 +for software and other kinds of works, specifically designed to ensure
  21 +cooperation with the community in the case of network server software.
  22 +
  23 + The licenses for most software and other practical works are
  24 +designed to take away your freedom to share and change the works. By
  25 +contrast, our General Public Licenses are intended to guarantee your
  26 +freedom to share and change all versions of a program--to make sure it
  27 +remains free software for all its users.
  28 +
  29 + When we speak of free software, we are referring to freedom, not
  30 +price. Our General Public Licenses are designed to make sure that you
  31 +have the freedom to distribute copies of free software (and charge for
  32 +them if you wish), that you receive source code or can get it if you
  33 +want it, that you can change the software or use pieces of it in new
  34 +free programs, and that you know you can do these things.
  35 +
  36 + Developers that use our General Public Licenses protect your rights
  37 +with two steps: (1) assert copyright on the software, and (2) offer
  38 +you this License which gives you legal permission to copy, distribute
  39 +and/or modify the software.
  40 +
  41 + A secondary benefit of defending all users' freedom is that
  42 +improvements made in alternate versions of the program, if they
  43 +receive widespread use, become available for other developers to
  44 +incorporate. Many developers of free software are heartened and
  45 +encouraged by the resulting cooperation. However, in the case of
  46 +software used on network servers, this result may fail to come about.
  47 +The GNU General Public License permits making a modified version and
  48 +letting the public access it on a server without ever releasing its
  49 +source code to the public.
  50 +
  51 + The GNU Affero General Public License is designed specifically to
  52 +ensure that, in such cases, the modified source code becomes available
  53 +to the community. It requires the operator of a network server to
  54 +provide the source code of the modified version running there to the
  55 +users of that server. Therefore, public use of a modified version, on
  56 +a publicly accessible server, gives the public access to the source
  57 +code of the modified version.
  58 +
  59 + An older license, called the Affero General Public License and
  60 +published by Affero, was designed to accomplish similar goals. This is
  61 +a different license, not a version of the Affero GPL, but Affero has
  62 +released a new version of the Affero GPL which permits relicensing under
  63 +this license.
  64 +
  65 + The precise terms and conditions for copying, distribution and
  66 +modification follow.
  67 +
  68 + TERMS AND CONDITIONS
  69 +
  70 + 0. Definitions.
  71 +
  72 + "This License" refers to version 3 of the GNU Affero General Public
  73 +License.
  74 +
  75 + "Copyright" also means copyright-like laws that apply to other kinds
  76 +of works, such as semiconductor masks.
  77 +
  78 + "The Program" refers to any copyrightable work licensed under this
  79 +License. Each licensee is addressed as "you". "Licensees" and
  80 +"recipients" may be individuals or organizations.
  81 +
  82 + To "modify" a work means to copy from or adapt all or part of the work
  83 +in a fashion requiring copyright permission, other than the making of an
  84 +exact copy. The resulting work is called a "modified version" of the
  85 +earlier work or a work "based on" the earlier work.
  86 +
  87 + A "covered work" means either the unmodified Program or a work based
  88 +on the Program.
  89 +
  90 + To "propagate" a work means to do anything with it that, without
  91 +permission, would make you directly or secondarily liable for
  92 +infringement under applicable copyright law, except executing it on a
  93 +computer or modifying a private copy. Propagation includes copying,
  94 +distribution (with or without modification), making available to the
  95 +public, and in some countries other activities as well.
  96 +
  97 + To "convey" a work means any kind of propagation that enables other
  98 +parties to make or receive copies. Mere interaction with a user through
  99 +a computer network, with no transfer of a copy, is not conveying.
  100 +
  101 + An interactive user interface displays "Appropriate Legal Notices"
  102 +to the extent that it includes a convenient and prominently visible
  103 +feature that (1) displays an appropriate copyright notice, and (2)
  104 +tells the user that there is no warranty for the work (except to the
  105 +extent that warranties are provided), that licensees may convey the
  106 +work under this License, and how to view a copy of this License. If
  107 +the interface presents a list of user commands or options, such as a
  108 +menu, a prominent item in the list meets this criterion.
  109 +
  110 + 1. Source Code.
  111 +
  112 + The "source code" for a work means the preferred form of the work
  113 +for making modifications to it. "Object code" means any non-source
  114 +form of a work.
  115 +
  116 + A "Standard Interface" means an interface that either is an official
  117 +standard defined by a recognized standards body, or, in the case of
  118 +interfaces specified for a particular programming language, one that
  119 +is widely used among developers working in that language.
  120 +
  121 + The "System Libraries" of an executable work include anything, other
  122 +than the work as a whole, that (a) is included in the normal form of
  123 +packaging a Major Component, but which is not part of that Major
  124 +Component, and (b) serves only to enable use of the work with that
  125 +Major Component, or to implement a Standard Interface for which an
  126 +implementation is available to the public in source code form. A
  127 +"Major Component", in this context, means a major essential component
  128 +(kernel, window system, and so on) of the specific operating system
  129 +(if any) on which the executable work runs, or a compiler used to
  130 +produce the work, or an object code interpreter used to run it.
  131 +
  132 + The "Corresponding Source" for a work in object code form means all
  133 +the source code needed to generate, install, and (for an executable
  134 +work) run the object code and to modify the work, including scripts to
  135 +control those activities. However, it does not include the work's
  136 +System Libraries, or general-purpose tools or generally available free
  137 +programs which are used unmodified in performing those activities but
  138 +which are not part of the work. For example, Corresponding Source
  139 +includes interface definition files associated with source files for
  140 +the work, and the source code for shared libraries and dynamically
  141 +linked subprograms that the work is specifically designed to require,
  142 +such as by intimate data communication or control flow between those
  143 +subprograms and other parts of the work.
  144 +
  145 + The Corresponding Source need not include anything that users
  146 +can regenerate automatically from other parts of the Corresponding
  147 +Source.
  148 +
  149 + The Corresponding Source for a work in source code form is that
  150 +same work.
  151 +
  152 + 2. Basic Permissions.
  153 +
  154 + All rights granted under this License are granted for the term of
  155 +copyright on the Program, and are irrevocable provided the stated
  156 +conditions are met. This License explicitly affirms your unlimited
  157 +permission to run the unmodified Program. The output from running a
  158 +covered work is covered by this License only if the output, given its
  159 +content, constitutes a covered work. This License acknowledges your
  160 +rights of fair use or other equivalent, as provided by copyright law.
  161 +
  162 + You may make, run and propagate covered works that you do not
  163 +convey, without conditions so long as your license otherwise remains
  164 +in force. You may convey covered works to others for the sole purpose
  165 +of having them make modifications exclusively for you, or provide you
  166 +with facilities for running those works, provided that you comply with
  167 +the terms of this License in conveying all material for which you do
  168 +not control copyright. Those thus making or running the covered works
  169 +for you must do so exclusively on your behalf, under your direction
  170 +and control, on terms that prohibit them from making any copies of
  171 +your copyrighted material outside their relationship with you.
  172 +
  173 + Conveying under any other circumstances is permitted solely under
  174 +the conditions stated below. Sublicensing is not allowed; section 10
  175 +makes it unnecessary.
  176 +
  177 + 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
  178 +
  179 + No covered work shall be deemed part of an effective technological
  180 +measure under any applicable law fulfilling obligations under article
  181 +11 of the WIPO copyright treaty adopted on 20 December 1996, or
  182 +similar laws prohibiting or restricting circumvention of such
  183 +measures.
  184 +
  185 + When you convey a covered work, you waive any legal power to forbid
  186 +circumvention of technological measures to the extent such circumvention
  187 +is effected by exercising rights under this License with respect to
  188 +the covered work, and you disclaim any intention to limit operation or
  189 +modification of the work as a means of enforcing, against the work's
  190 +users, your or third parties' legal rights to forbid circumvention of
  191 +technological measures.
  192 +
  193 + 4. Conveying Verbatim Copies.
  194 +
  195 + You may convey verbatim copies of the Program's source code as you
  196 +receive it, in any medium, provided that you conspicuously and
  197 +appropriately publish on each copy an appropriate copyright notice;
  198 +keep intact all notices stating that this License and any
  199 +non-permissive terms added in accord with section 7 apply to the code;
  200 +keep intact all notices of the absence of any warranty; and give all
  201 +recipients a copy of this License along with the Program.
  202 +
  203 + You may charge any price or no price for each copy that you convey,
  204 +and you may offer support or warranty protection for a fee.
  205 +
  206 + 5. Conveying Modified Source Versions.
  207 +
  208 + You may convey a work based on the Program, or the modifications to
  209 +produce it from the Program, in the form of source code under the
  210 +terms of section 4, provided that you also meet all of these conditions:
  211 +
  212 + a) The work must carry prominent notices stating that you modified
  213 + it, and giving a relevant date.
  214 +
  215 + b) The work must carry prominent notices stating that it is
  216 + released under this License and any conditions added under section
  217 + 7. This requirement modifies the requirement in section 4 to
  218 + "keep intact all notices".
  219 +
  220 + c) You must license the entire work, as a whole, under this
  221 + License to anyone who comes into possession of a copy. This
  222 + License will therefore apply, along with any applicable section 7
  223 + additional terms, to the whole of the work, and all its parts,
  224 + regardless of how they are packaged. This License gives no
  225 + permission to license the work in any other way, but it does not
  226 + invalidate such permission if you have separately received it.
  227 +
  228 + d) If the work has interactive user interfaces, each must display
  229 + Appropriate Legal Notices; however, if the Program has interactive
  230 + interfaces that do not display Appropriate Legal Notices, your
  231 + work need not make them do so.
  232 +
  233 + A compilation of a covered work with other separate and independent
  234 +works, which are not by their nature extensions of the covered work,
  235 +and which are not combined with it such as to form a larger program,
  236 +in or on a volume of a storage or distribution medium, is called an
  237 +"aggregate" if the compilation and its resulting copyright are not
  238 +used to limit the access or legal rights of the compilation's users
  239 +beyond what the individual works permit. Inclusion of a covered work
  240 +in an aggregate does not cause this License to apply to the other
  241 +parts of the aggregate.
  242 +
  243 + 6. Conveying Non-Source Forms.
  244 +
  245 + You may convey a covered work in object code form under the terms
  246 +of sections 4 and 5, provided that you also convey the
  247 +machine-readable Corresponding Source under the terms of this License,
  248 +in one of these ways:
  249 +
  250 + a) Convey the object code in, or embodied in, a physical product
  251 + (including a physical distribution medium), accompanied by the
  252 + Corresponding Source fixed on a durable physical medium
  253 + customarily used for software interchange.
  254 +
  255 + b) Convey the object code in, or embodied in, a physical product
  256 + (including a physical distribution medium), accompanied by a
  257 + written offer, valid for at least three years and valid for as
  258 + long as you offer spare parts or customer support for that product
  259 + model, to give anyone who possesses the object code either (1) a
  260 + copy of the Corresponding Source for all the software in the
  261 + product that is covered by this License, on a durable physical
  262 + medium customarily used for software interchange, for a price no
  263 + more than your reasonable cost of physically performing this
  264 + conveying of source, or (2) access to copy the
  265 + Corresponding Source from a network server at no charge.
  266 +
  267 + c) Convey individual copies of the object code with a copy of the
  268 + written offer to provide the Corresponding Source. This
  269 + alternative is allowed only occasionally and noncommercially, and
  270 + only if you received the object code with such an offer, in accord
  271 + with subsection 6b.
  272 +
  273 + d) Convey the object code by offering access from a designated
  274 + place (gratis or for a charge), and offer equivalent access to the
  275 + Corresponding Source in the same way through the same place at no
  276 + further charge. You need not require recipients to copy the
  277 + Corresponding Source along with the object code. If the place to
  278 + copy the object code is a network server, the Corresponding Source
  279 + may be on a different server (operated by you or a third party)
  280 + that supports equivalent copying facilities, provided you maintain
  281 + clear directions next to the object code saying where to find the
  282 + Corresponding Source. Regardless of what server hosts the
  283 + Corresponding Source, you remain obligated to ensure that it is
  284 + available for as long as needed to satisfy these requirements.
  285 +
  286 + e) Convey the object code using peer-to-peer transmission, provided
  287 + you inform other peers where the object code and Corresponding
  288 + Source of the work are being offered to the general public at no
  289 + charge under subsection 6d.
  290 +
  291 + A separable portion of the object code, whose source code is excluded
  292 +from the Corresponding Source as a System Library, need not be
  293 +included in conveying the object code work.
  294 +
  295 + A "User Product" is either (1) a "consumer product", which means any
  296 +tangible personal property which is normally used for personal, family,
  297 +or household purposes, or (2) anything designed or sold for incorporation
  298 +into a dwelling. In determining whether a product is a consumer product,
  299 +doubtful cases shall be resolved in favor of coverage. For a particular
  300 +product received by a particular user, "normally used" refers to a
  301 +typical or common use of that class of product, regardless of the status
  302 +of the particular user or of the way in which the particular user
  303 +actually uses, or expects or is expected to use, the product. A product
  304 +is a consumer product regardless of whether the product has substantial
  305 +commercial, industrial or non-consumer uses, unless such uses represent
  306 +the only significant mode of use of the product.
  307 +
  308 + "Installation Information" for a User Product means any methods,
  309 +procedures, authorization keys, or other information required to install
  310 +and execute modified versions of a covered work in that User Product from
  311 +a modified version of its Corresponding Source. The information must
  312 +suffice to ensure that the continued functioning of the modified object
  313 +code is in no case prevented or interfered with solely because
  314 +modification has been made.
  315 +
  316 + If you convey an object code work under this section in, or with, or
  317 +specifically for use in, a User Product, and the conveying occurs as
  318 +part of a transaction in which the right of possession and use of the
  319 +User Product is transferred to the recipient in perpetuity or for a
  320 +fixed term (regardless of how the transaction is characterized), the
  321 +Corresponding Source conveyed under this section must be accompanied
  322 +by the Installation Information. But this requirement does not apply
  323 +if neither you nor any third party retains the ability to install
  324 +modified object code on the User Product (for example, the work has
  325 +been installed in ROM).
  326 +
  327 + The requirement to provide Installation Information does not include a
  328 +requirement to continue to provide support service, warranty, or updates
  329 +for a work that has been modified or installed by the recipient, or for
  330 +the User Product in which it has been modified or installed. Access to a
  331 +network may be denied when the modification itself materially and
  332 +adversely affects the operation of the network or violates the rules and
  333 +protocols for communication across the network.
  334 +
  335 + Corresponding Source conveyed, and Installation Information provided,
  336 +in accord with this section must be in a format that is publicly
  337 +documented (and with an implementation available to the public in
  338 +source code form), and must require no special password or key for
  339 +unpacking, reading or copying.
  340 +
  341 + 7. Additional Terms.
  342 +
  343 + "Additional permissions" are terms that supplement the terms of this
  344 +License by making exceptions from one or more of its conditions.
  345 +Additional permissions that are applicable to the entire Program shall
  346 +be treated as though they were included in this License, to the extent
  347 +that they are valid under applicable law. If additional permissions
  348 +apply only to part of the Program, that part may be used separately
  349 +under those permissions, but the entire Program remains governed by
  350 +this License without regard to the additional permissions.
  351 +
  352 + When you convey a copy of a covered work, you may at your option
  353 +remove any additional permissions from that copy, or from any part of
  354 +it. (Additional permissions may be written to require their own
  355 +removal in certain cases when you modify the work.) You may place
  356 +additional permissions on material, added by you to a covered work,
  357 +for which you have or can give appropriate copyright permission.
  358 +
  359 + Notwithstanding any other provision of this License, for material you
  360 +add to a covered work, you may (if authorized by the copyright holders of
  361 +that material) supplement the terms of this License with terms:
  362 +
  363 + a) Disclaiming warranty or limiting liability differently from the
  364 + terms of sections 15 and 16 of this License; or
  365 +
  366 + b) Requiring preservation of specified reasonable legal notices or
  367 + author attributions in that material or in the Appropriate Legal
  368 + Notices displayed by works containing it; or
  369 +
  370 + c) Prohibiting misrepresentation of the origin of that material, or
  371 + requiring that modified versions of such material be marked in
  372 + reasonable ways as different from the original version; or
  373 +
  374 + d) Limiting the use for publicity purposes of names of licensors or
  375 + authors of the material; or
  376 +
  377 + e) Declining to grant rights under trademark law for use of some
  378 + trade names, trademarks, or service marks; or
  379 +
  380 + f) Requiring indemnification of licensors and authors of that
  381 + material by anyone who conveys the material (or modified versions of
  382 + it) with contractual assumptions of liability to the recipient, for
  383 + any liability that these contractual assumptions directly impose on
  384 + those licensors and authors.
  385 +
  386 + All other non-permissive additional terms are considered "further
  387 +restrictions" within the meaning of section 10. If the Program as you
  388 +received it, or any part of it, contains a notice stating that it is
  389 +governed by this License along with a term that is a further restriction,
  390 +you may remove that term. If a license document contains a further
  391 +restriction but permits relicensing or conveying under this License, you
  392 +may add to a covered work material governed by the terms of that license
  393 +document, provided that the further restriction does not survive such
  394 +relicensing or conveying.
  395 +
  396 + If you add terms to a covered work in accord with this section, you
  397 +must place, in the relevant source files, a statement of the
  398 +additional terms that apply to those files, or a notice indicating
  399 +where to find the applicable terms.
  400 +
  401 + Additional terms, permissive or non-permissive, may be stated in the
  402 +form of a separately written license, or stated as exceptions;
  403 +the above requirements apply either way.
  404 +
  405 + 8. Termination.
  406 +
  407 + You may not propagate or modify a covered work except as expressly
  408 +provided under this License. Any attempt otherwise to propagate or
  409 +modify it is void, and will automatically terminate your rights under
  410 +this License (including any patent licenses granted under the third
  411 +paragraph of section 11).
  412 +
  413 + However, if you cease all violation of this License, then your
  414 +license from a particular copyright holder is reinstated (a)
  415 +provisionally, unless and until the copyright holder explicitly and
  416 +finally terminates your license, and (b) permanently, if the copyright
  417 +holder fails to notify you of the violation by some reasonable means
  418 +prior to 60 days after the cessation.
  419 +
  420 + Moreover, your license from a particular copyright holder is
  421 +reinstated permanently if the copyright holder notifies you of the
  422 +violation by some reasonable means, this is the first time you have
  423 +received notice of violation of this License (for any work) from that
  424 +copyright holder, and you cure the violation prior to 30 days after
  425 +your receipt of the notice.
  426 +
  427 + Termination of your rights under this section does not terminate the
  428 +licenses of parties who have received copies or rights from you under
  429 +this License. If your rights have been terminated and not permanently
  430 +reinstated, you do not qualify to receive new licenses for the same
  431 +material under section 10.
  432 +
  433 + 9. Acceptance Not Required for Having Copies.
  434 +
  435 + You are not required to accept this License in order to receive or
  436 +run a copy of the Program. Ancillary propagation of a covered work
  437 +occurring solely as a consequence of using peer-to-peer transmission
  438 +to receive a copy likewise does not require acceptance. However,
  439 +nothing other than this License grants you permission to propagate or
  440 +modify any covered work. These actions infringe copyright if you do
  441 +not accept this License. Therefore, by modifying or propagating a
  442 +covered work, you indicate your acceptance of this License to do so.
  443 +
  444 + 10. Automatic Licensing of Downstream Recipients.
  445 +
  446 + Each time you convey a covered work, the recipient automatically
  447 +receives a license from the original licensors, to run, modify and
  448 +propagate that work, subject to this License. You are not responsible
  449 +for enforcing compliance by third parties with this License.
  450 +
  451 + An "entity transaction" is a transaction transferring control of an
  452 +organization, or substantially all assets of one, or subdividing an
  453 +organization, or merging organizations. If propagation of a covered
  454 +work results from an entity transaction, each party to that
  455 +transaction who receives a copy of the work also receives whatever
  456 +licenses to the work the party's predecessor in interest had or could
  457 +give under the previous paragraph, plus a right to possession of the
  458 +Corresponding Source of the work from the predecessor in interest, if
  459 +the predecessor has it or can get it with reasonable efforts.
  460 +
  461 + You may not impose any further restrictions on the exercise of the
  462 +rights granted or affirmed under this License. For example, you may
  463 +not impose a license fee, royalty, or other charge for exercise of
  464 +rights granted under this License, and you may not initiate litigation
  465 +(including a cross-claim or counterclaim in a lawsuit) alleging that
  466 +any patent claim is infringed by making, using, selling, offering for
  467 +sale, or importing the Program or any portion of it.
  468 +
  469 + 11. Patents.
  470 +
  471 + A "contributor" is a copyright holder who authorizes use under this
  472 +License of the Program or a work on which the Program is based. The
  473 +work thus licensed is called the contributor's "contributor version".
  474 +
  475 + A contributor's "essential patent claims" are all patent claims
  476 +owned or controlled by the contributor, whether already acquired or
  477 +hereafter acquired, that would be infringed by some manner, permitted
  478 +by this License, of making, using, or selling its contributor version,
  479 +but do not include claims that would be infringed only as a
  480 +consequence of further modification of the contributor version. For
  481 +purposes of this definition, "control" includes the right to grant
  482 +patent sublicenses in a manner consistent with the requirements of
  483 +this License.
  484 +
  485 + Each contributor grants you a non-exclusive, worldwide, royalty-free
  486 +patent license under the contributor's essential patent claims, to
  487 +make, use, sell, offer for sale, import and otherwise run, modify and
  488 +propagate the contents of its contributor version.
  489 +
  490 + In the following three paragraphs, a "patent license" is any express
  491 +agreement or commitment, however denominated, not to enforce a patent
  492 +(such as an express permission to practice a patent or covenant not to
  493 +sue for patent infringement). To "grant" such a patent license to a
  494 +party means to make such an agreement or commitment not to enforce a
  495 +patent against the party.
  496 +
  497 + If you convey a covered work, knowingly relying on a patent license,
  498 +and the Corresponding Source of the work is not available for anyone
  499 +to copy, free of charge and under the terms of this License, through a
  500 +publicly available network server or other readily accessible means,
  501 +then you must either (1) cause the Corresponding Source to be so
  502 +available, or (2) arrange to deprive yourself of the benefit of the
  503 +patent license for this particular work, or (3) arrange, in a manner
  504 +consistent with the requirements of this License, to extend the patent
  505 +license to downstream recipients. "Knowingly relying" means you have
  506 +actual knowledge that, but for the patent license, your conveying the
  507 +covered work in a country, or your recipient's use of the covered work
  508 +in a country, would infringe one or more identifiable patents in that
  509 +country that you have reason to believe are valid.
  510 +
  511 + If, pursuant to or in connection with a single transaction or
  512 +arrangement, you convey, or propagate by procuring conveyance of, a
  513 +covered work, and grant a patent license to some of the parties
  514 +receiving the covered work authorizing them to use, propagate, modify
  515 +or convey a specific copy of the covered work, then the patent license
  516 +you grant is automatically extended to all recipients of the covered
  517 +work and works based on it.
  518 +
  519 + A patent license is "discriminatory" if it does not include within
  520 +the scope of its coverage, prohibits the exercise of, or is
  521 +conditioned on the non-exercise of one or more of the rights that are
  522 +specifically granted under this License. You may not convey a covered
  523 +work if you are a party to an arrangement with a third party that is
  524 +in the business of distributing software, under which you make payment
  525 +to the third party based on the extent of your activity of conveying
  526 +the work, and under which the third party grants, to any of the
  527 +parties who would receive the covered work from you, a discriminatory
  528 +patent license (a) in connection with copies of the covered work
  529 +conveyed by you (or copies made from those copies), or (b) primarily
  530 +for and in connection with specific products or compilations that
  531 +contain the covered work, unless you entered into that arrangement,
  532 +or that patent license was granted, prior to 28 March 2007.
  533 +
  534 + Nothing in this License shall be construed as excluding or limiting
  535 +any implied license or other defenses to infringement that may
  536 +otherwise be available to you under applicable patent law.
  537 +
  538 + 12. No Surrender of Others' Freedom.
  539 +
  540 + If conditions are imposed on you (whether by court order, agreement or
  541 +otherwise) that contradict the conditions of this License, they do not
  542 +excuse you from the conditions of this License. If you cannot convey a
  543 +covered work so as to satisfy simultaneously your obligations under this
  544 +License and any other pertinent obligations, then as a consequence you may
  545 +not convey it at all. For example, if you agree to terms that obligate you
  546 +to collect a royalty for further conveying from those to whom you convey
  547 +the Program, the only way you could satisfy both those terms and this
  548 +License would be to refrain entirely from conveying the Program.
  549 +
  550 + 13. Remote Network Interaction; Use with the GNU General Public License.
  551 +
  552 + Notwithstanding any other provision of this License, if you modify the
  553 +Program, your modified version must prominently offer all users
  554 +interacting with it remotely through a computer network (if your version
  555 +supports such interaction) an opportunity to receive the Corresponding
  556 +Source of your version by providing access to the Corresponding Source
  557 +from a network server at no charge, through some standard or customary
  558 +means of facilitating copying of software. This Corresponding Source
  559 +shall include the Corresponding Source for any work covered by version 3
  560 +of the GNU General Public License that is incorporated pursuant to the
  561 +following paragraph.
  562 +
  563 + Notwithstanding any other provision of this License, you have permission
  564 +to link or combine any covered work with a work licensed under version 3
  565 +of the GNU General Public License into a single combined work, and to
  566 +convey the resulting work. The terms of this License will continue to
  567 +apply to the part which is the covered work, but the work with which it is
  568 +combined will remain governed by version 3 of the GNU General Public
  569 +License.
  570 +
  571 + 14. Revised Versions of this License.
  572 +
  573 + The Free Software Foundation may publish revised and/or new versions of
  574 +the GNU Affero General Public License from time to time. Such new
  575 +versions will be similar in spirit to the present version, but may differ
  576 +in detail to address new problems or concerns.
  577 +
  578 + Each version is given a distinguishing version number. If the
  579 +Program specifies that a certain numbered version of the GNU Affero
  580 +General Public License "or any later version" applies to it, you have
  581 +the option of following the terms and conditions either of that
  582 +numbered version or of any later version published by the Free
  583 +Software Foundation. If the Program does not specify a version number
  584 +of the GNU Affero General Public License, you may choose any version
  585 +ever published by the Free Software Foundation.
  586 +
  587 + If the Program specifies that a proxy can decide which future
  588 +versions of the GNU Affero General Public License can be used, that
  589 +proxy's public statement of acceptance of a version permanently
  590 +authorizes you to choose that version for the Program.
  591 +
  592 + Later license versions may give you additional or different
  593 +permissions. However, no additional obligations are imposed on any
  594 +author or copyright holder as a result of your choosing to follow a
  595 +later version.
  596 +
  597 + 15. Disclaimer of Warranty.
  598 +
  599 + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
  600 +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
  601 +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
  602 +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
  603 +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  604 +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
  605 +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
  606 +ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
  607 +
  608 + 16. Limitation of Liability.
  609 +
  610 + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
  611 +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
  612 +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
  613 +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
  614 +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
  615 +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
  616 +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
  617 +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
  618 +SUCH DAMAGES.
  619 +
  620 + 17. Interpretation of Sections 15 and 16.
  621 +
  622 + If the disclaimer of warranty and limitation of liability provided
  623 +above cannot be given local legal effect according to their terms,
  624 +reviewing courts shall apply local law that most closely approximates
  625 +an absolute waiver of all civil liability in connection with the
  626 +Program, unless a warranty or assumption of liability accompanies a
  627 +copy of the Program in return for a fee.
  628 +
  629 + END OF TERMS AND CONDITIONS
  630 +
  631 + How to Apply These Terms to Your New Programs
  632 +
  633 + If you develop a new program, and you want it to be of the greatest
  634 +possible use to the public, the best way to achieve this is to make it
  635 +free software which everyone can redistribute and change under these terms.
  636 +
  637 + To do so, attach the following notices to the program. It is safest
  638 +to attach them to the start of each source file to most effectively
  639 +state the exclusion of warranty; and each file should have at least
  640 +the "copyright" line and a pointer to where the full notice is found.
  641 +
  642 + <one line to give the program's name and a brief idea of what it does.>
  643 + Copyright (C) <year> <name of author>
  644 +
  645 + This program is free software: you can redistribute it and/or modify
  646 + it under the terms of the GNU Affero General Public License as
  647 + published by the Free Software Foundation, either version 3 of the
  648 + License, or (at your option) any later version.
  649 +
  650 + This program is distributed in the hope that it will be useful,
  651 + but WITHOUT ANY WARRANTY; without even the implied warranty of
  652 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  653 + GNU Affero General Public License for more details.
  654 +
  655 + You should have received a copy of the GNU Affero General Public License
  656 + along with this program. If not, see <http://www.gnu.org/licenses/>.
  657 +
  658 +Also add information on how to contact you by electronic and paper mail.
  659 +
  660 + If your software can interact with users remotely through a computer
  661 +network, you should also make sure that it provides a way for users to
  662 +get its source. For example, if your program is a web application, its
  663 +interface could display a "Source" link that leads users to an archive
  664 +of the code. There are many ways you could offer source, and different
  665 +solutions will be better for different programs; see section 13 for the
  666 +specific requirements.
  667 +
  668 + You should also get your employer (if you work as a programmer) or school,
  669 +if any, to sign a "copyright disclaimer" for the program, if necessary.
  670 +For more information on this, and how to apply and follow the GNU AGPL, see
  671 +<http://www.gnu.org/licenses/>.
  672 +
  673 +
  674 +-----------------------------------------------
  675 +License for the Apache Geronimo JTA library and
  676 +the Lucene text search engine library
  677 +-----------------------------------------------
  678 +
  679 + Apache License
  680 + Version 2.0, January 2004
  681 + http://www.apache.org/licenses/
  682 +
  683 + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
  684 +
  685 + 1. Definitions.
  686 +
  687 + "License" shall mean the terms and conditions for use, reproduction,
  688 + and distribution as defined by Sections 1 through 9 of this document.
  689 +
  690 + "Licensor" shall mean the copyright owner or entity authorized by
  691 + the copyright owner that is granting the License.
  692 +
  693 + "Legal Entity" shall mean the union of the acting entity and all
  694 + other entities that control, are controlled by, or are under common
  695 + control with that entity. For the purposes of this definition,
  696 + "control" means (i) the power, direct or indirect, to cause the
  697 + direction or management of such entity, whether by contract or
  698 + otherwise, or (ii) ownership of fifty percent (50%) or more of the
  699 + outstanding shares, or (iii) beneficial ownership of such entity.
  700 +
  701 + "You" (or "Your") shall mean an individual or Legal Entity
  702 + exercising permissions granted by this License.
  703 +
  704 + "Source" form shall mean the preferred form for making modifications,
  705 + including but not limited to software source code, documentation
  706 + source, and configuration files.
  707 +
  708 + "Object" form shall mean any form resulting from mechanical
  709 + transformation or translation of a Source form, including but
  710 + not limited to compiled object code, generated documentation,
  711 + and conversions to other media types.
  712 +
  713 + "Work" shall mean the work of authorship, whether in Source or
  714 + Object form, made available under the License, as indicated by a
  715 + copyright notice that is included in or attached to the work
  716 + (an example is provided in the Appendix below).
  717 +
  718 + "Derivative Works" shall mean any work, whether in Source or Object
  719 + form, that is based on (or derived from) the Work and for which the
  720 + editorial revisions, annotations, elaborations, or other modifications
  721 + represent, as a whole, an original work of authorship. For the purposes
  722 + of this License, Derivative Works shall not include works that remain
  723 + separable from, or merely link (or bind by name) to the interfaces of,
  724 + the Work and Derivative Works thereof.
  725 +
  726 + "Contribution" shall mean any work of authorship, including
  727 + the original version of the Work and any modifications or additions
  728 + to that Work or Derivative Works thereof, that is intentionally
  729 + submitted to Licensor for inclusion in the Work by the copyright owner
  730 + or by an individual or Legal Entity authorized to submit on behalf of
  731 + the copyright owner. For the purposes of this definition, "submitted"
  732 + means any form of electronic, verbal, or written communication sent
  733 + to the Licensor or its representatives, including but not limited to
  734 + communication on electronic mailing lists, source code control systems,
  735 + and issue tracking systems that are managed by, or on behalf of, the
  736 + Licensor for the purpose of discussing and improving the Work, but
  737 + excluding communication that is conspicuously marked or otherwise
  738 + designated in writing by the copyright owner as "Not a Contribution."
  739 +
  740 + "Contributor" shall mean Licensor and any individual or Legal Entity
  741 + on behalf of whom a Contribution has been received by Licensor and
  742 + subsequently incorporated within the Work.
  743 +
  744 + 2. Grant of Copyright License. Subject to the terms and conditions of
  745 + this License, each Contributor hereby grants to You a perpetual,
  746 + worldwide, non-exclusive, no-charge, royalty-free, irrevocable
  747 + copyright license to reproduce, prepare Derivative Works of,
  748 + publicly display, publicly perform, sublicense, and distribute the
  749 + Work and such Derivative Works in Source or Object form.
  750 +
  751 + 3. Grant of Patent License. Subject to the terms and conditions of
  752 + this License, each Contributor hereby grants to You a perpetual,
  753 + worldwide, non-exclusive, no-charge, royalty-free, irrevocable
  754 + (except as stated in this section) patent license to make, have made,
  755 + use, offer to sell, sell, import, and otherwise transfer the Work,
  756 + where such license applies only to those patent claims licensable
  757 + by such Contributor that are necessarily infringed by their
  758 + Contribution(s) alone or by combination of their Contribution(s)
  759 + with the Work to which such Contribution(s) was submitted. If You
  760 + institute patent litigation against any entity (including a
  761 + cross-claim or counterclaim in a lawsuit) alleging that the Work
  762 + or a Contribution incorporated within the Work constitutes direct
  763 + or contributory patent infringement, then any patent licenses
  764 + granted to You under this License for that Work shall terminate
  765 + as of the date such litigation is filed.
  766 +
  767 + 4. Redistribution. You may reproduce and distribute copies of the
  768 + Work or Derivative Works thereof in any medium, with or without
  769 + modifications, and in Source or Object form, provided that You
  770 + meet the following conditions:
  771 +
  772 + (a) You must give any other recipients of the Work or
  773 + Derivative Works a copy of this License; and
  774 +
  775 + (b) You must cause any modified files to carry prominent notices
  776 + stating that You changed the files; and
  777 +
  778 + (c) You must retain, in the Source form of any Derivative Works
  779 + that You distribute, all copyright, patent, trademark, and
  780 + attribution notices from the Source form of the Work,
  781 + excluding those notices that do not pertain to any part of
  782 + the Derivative Works; and
  783 +
  784 + (d) If the Work includes a "NOTICE" text file as part of its
  785 + distribution, then any Derivative Works that You distribute must
  786 + include a readable copy of the attribution notices contained
  787 + within such NOTICE file, excluding those notices that do not
  788 + pertain to any part of the Derivative Works, in at least one
  789 + of the following places: within a NOTICE text file distributed
  790 + as part of the Derivative Works; within the Source form or
  791 + documentation, if provided along with the Derivative Works; or,
  792 + within a display generated by the Derivative Works, if and
  793 + wherever such third-party notices normally appear. The contents
  794 + of the NOTICE file are for informational purposes only and
  795 + do not modify the License. You may add Your own attribution
  796 + notices within Derivative Works that You distribute, alongside
  797 + or as an addendum to the NOTICE text from the Work, provided
  798 + that such additional attribution notices cannot be construed
  799 + as modifying the License.
  800 +
  801 + You may add Your own copyright statement to Your modifications and
  802 + may provide additional or different license terms and conditions
  803 + for use, reproduction, or distribution of Your modifications, or
  804 + for any such Derivative Works as a whole, provided Your use,
  805 + reproduction, and distribution of the Work otherwise complies with
  806 + the conditions stated in this License.
  807 +
  808 + 5. Submission of Contributions. Unless You explicitly state otherwise,
  809 + any Contribution intentionally submitted for inclusion in the Work
  810 + by You to the Licensor shall be under the terms and conditions of
  811 + this License, without any additional terms or conditions.
  812 + Notwithstanding the above, nothing herein shall supersede or modify
  813 + the terms of any separate license agreement you may have executed
  814 + with Licensor regarding such Contributions.
  815 +
  816 + 6. Trademarks. This License does not grant permission to use the trade
  817 + names, trademarks, service marks, or product names of the Licensor,
  818 + except as required for reasonable and cus