Add 'sdk/java-v2/' from commit '55f103e336ca9fb8bf1720d2ef4ee8dd4e221118'
authorPeter Amstutz <pamstutz@veritasgenetics.com>
Thu, 14 Mar 2019 14:11:26 +0000 (10:11 -0400)
committerPeter Amstutz <pamstutz@veritasgenetics.com>
Thu, 14 Mar 2019 14:13:05 +0000 (10:13 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz@veritasgenetics.com>

git-subtree-dir: sdk/java-v2
git-subtree-mainline: 89c5953f15ff025971e465c86eb6d129ff0a63f9
git-subtree-split: 55f103e336ca9fb8bf1720d2ef4ee8dd4e221118

112 files changed:
1  2 
sdk/java-v2/.gitignore
sdk/java-v2/.licenseignore
sdk/java-v2/COPYING
sdk/java-v2/README.md
sdk/java-v2/agpl-3.0.txt
sdk/java-v2/apache-2.0.txt
sdk/java-v2/build.gradle
sdk/java-v2/gradle/wrapper/gradle-wrapper.jar
sdk/java-v2/gradle/wrapper/gradle-wrapper.properties
sdk/java-v2/gradlew
sdk/java-v2/gradlew.bat
sdk/java-v2/settings.gradle
sdk/java-v2/src/main/java/org/arvados/client/api/client/BaseApiClient.java
sdk/java-v2/src/main/java/org/arvados/client/api/client/BaseStandardApiClient.java
sdk/java-v2/src/main/java/org/arvados/client/api/client/CollectionsApiClient.java
sdk/java-v2/src/main/java/org/arvados/client/api/client/CountingFileRequestBody.java
sdk/java-v2/src/main/java/org/arvados/client/api/client/GroupsApiClient.java
sdk/java-v2/src/main/java/org/arvados/client/api/client/KeepServerApiClient.java
sdk/java-v2/src/main/java/org/arvados/client/api/client/KeepServicesApiClient.java
sdk/java-v2/src/main/java/org/arvados/client/api/client/KeepWebApiClient.java
sdk/java-v2/src/main/java/org/arvados/client/api/client/ProgressListener.java
sdk/java-v2/src/main/java/org/arvados/client/api/client/UsersApiClient.java
sdk/java-v2/src/main/java/org/arvados/client/api/client/factory/OkHttpClientFactory.java
sdk/java-v2/src/main/java/org/arvados/client/api/model/ApiError.java
sdk/java-v2/src/main/java/org/arvados/client/api/model/Collection.java
sdk/java-v2/src/main/java/org/arvados/client/api/model/CollectionList.java
sdk/java-v2/src/main/java/org/arvados/client/api/model/Group.java
sdk/java-v2/src/main/java/org/arvados/client/api/model/GroupList.java
sdk/java-v2/src/main/java/org/arvados/client/api/model/Item.java
sdk/java-v2/src/main/java/org/arvados/client/api/model/ItemList.java
sdk/java-v2/src/main/java/org/arvados/client/api/model/KeepService.java
sdk/java-v2/src/main/java/org/arvados/client/api/model/KeepServiceList.java
sdk/java-v2/src/main/java/org/arvados/client/api/model/RuntimeConstraints.java
sdk/java-v2/src/main/java/org/arvados/client/api/model/User.java
sdk/java-v2/src/main/java/org/arvados/client/api/model/UserList.java
sdk/java-v2/src/main/java/org/arvados/client/api/model/argument/Argument.java
sdk/java-v2/src/main/java/org/arvados/client/api/model/argument/ContentsGroup.java
sdk/java-v2/src/main/java/org/arvados/client/api/model/argument/Filter.java
sdk/java-v2/src/main/java/org/arvados/client/api/model/argument/ListArgument.java
sdk/java-v2/src/main/java/org/arvados/client/api/model/argument/UntrashGroup.java
sdk/java-v2/src/main/java/org/arvados/client/common/Characters.java
sdk/java-v2/src/main/java/org/arvados/client/common/Headers.java
sdk/java-v2/src/main/java/org/arvados/client/common/Patterns.java
sdk/java-v2/src/main/java/org/arvados/client/config/ConfigProvider.java
sdk/java-v2/src/main/java/org/arvados/client/config/ExternalConfigProvider.java
sdk/java-v2/src/main/java/org/arvados/client/config/FileConfigProvider.java
sdk/java-v2/src/main/java/org/arvados/client/exception/ArvadosApiException.java
sdk/java-v2/src/main/java/org/arvados/client/exception/ArvadosClientException.java
sdk/java-v2/src/main/java/org/arvados/client/facade/ArvadosFacade.java
sdk/java-v2/src/main/java/org/arvados/client/logic/collection/CollectionFactory.java
sdk/java-v2/src/main/java/org/arvados/client/logic/collection/FileToken.java
sdk/java-v2/src/main/java/org/arvados/client/logic/collection/ManifestDecoder.java
sdk/java-v2/src/main/java/org/arvados/client/logic/collection/ManifestFactory.java
sdk/java-v2/src/main/java/org/arvados/client/logic/collection/ManifestStream.java
sdk/java-v2/src/main/java/org/arvados/client/logic/keep/FileDownloader.java
sdk/java-v2/src/main/java/org/arvados/client/logic/keep/FileTransferHandler.java
sdk/java-v2/src/main/java/org/arvados/client/logic/keep/FileUploader.java
sdk/java-v2/src/main/java/org/arvados/client/logic/keep/KeepClient.java
sdk/java-v2/src/main/java/org/arvados/client/logic/keep/KeepLocator.java
sdk/java-v2/src/main/java/org/arvados/client/logic/keep/exception/DownloadFolderAlreadyExistsException.java
sdk/java-v2/src/main/java/org/arvados/client/logic/keep/exception/FileAlreadyExistsException.java
sdk/java-v2/src/main/java/org/arvados/client/utils/FileMerge.java
sdk/java-v2/src/main/java/org/arvados/client/utils/FileSplit.java
sdk/java-v2/src/main/resources/reference.conf
sdk/java-v2/src/test/java/org/arvados/client/api/client/BaseStandardApiClientTest.java
sdk/java-v2/src/test/java/org/arvados/client/api/client/CollectionsApiClientTest.java
sdk/java-v2/src/test/java/org/arvados/client/api/client/GroupsApiClientTest.java
sdk/java-v2/src/test/java/org/arvados/client/api/client/KeepServerApiClientTest.java
sdk/java-v2/src/test/java/org/arvados/client/api/client/KeepServicesApiClientTest.java
sdk/java-v2/src/test/java/org/arvados/client/api/client/UsersApiClientTest.java
sdk/java-v2/src/test/java/org/arvados/client/api/client/factory/OkHttpClientFactoryTest.java
sdk/java-v2/src/test/java/org/arvados/client/facade/ArvadosFacadeIntegrationTest.java
sdk/java-v2/src/test/java/org/arvados/client/facade/ArvadosFacadeTest.java
sdk/java-v2/src/test/java/org/arvados/client/junit/categories/IntegrationTests.java
sdk/java-v2/src/test/java/org/arvados/client/logic/collection/FileTokenTest.java
sdk/java-v2/src/test/java/org/arvados/client/logic/collection/ManifestDecoderTest.java
sdk/java-v2/src/test/java/org/arvados/client/logic/collection/ManifestFactoryTest.java
sdk/java-v2/src/test/java/org/arvados/client/logic/collection/ManifestStreamTest.java
sdk/java-v2/src/test/java/org/arvados/client/logic/keep/FileDownloaderTest.java
sdk/java-v2/src/test/java/org/arvados/client/logic/keep/KeepClientTest.java
sdk/java-v2/src/test/java/org/arvados/client/logic/keep/KeepLocatorTest.java
sdk/java-v2/src/test/java/org/arvados/client/test/utils/ApiClientTestUtils.java
sdk/java-v2/src/test/java/org/arvados/client/test/utils/ArvadosClientIntegrationTest.java
sdk/java-v2/src/test/java/org/arvados/client/test/utils/ArvadosClientMockedWebServerTest.java
sdk/java-v2/src/test/java/org/arvados/client/test/utils/ArvadosClientUnitTest.java
sdk/java-v2/src/test/java/org/arvados/client/test/utils/FileTestUtils.java
sdk/java-v2/src/test/java/org/arvados/client/test/utils/RequestMethod.java
sdk/java-v2/src/test/java/org/arvados/client/utils/FileMergeTest.java
sdk/java-v2/src/test/java/org/arvados/client/utils/FileSplitTest.java
sdk/java-v2/src/test/resources/application.conf
sdk/java-v2/src/test/resources/integration-tests-application.conf
sdk/java-v2/src/test/resources/integration-tests-application.conf.example
sdk/java-v2/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
sdk/java-v2/src/test/resources/org/arvados/client/api/client/collections-create-manifest.json
sdk/java-v2/src/test/resources/org/arvados/client/api/client/collections-create-simple.json
sdk/java-v2/src/test/resources/org/arvados/client/api/client/collections-download-file.json
sdk/java-v2/src/test/resources/org/arvados/client/api/client/collections-get.json
sdk/java-v2/src/test/resources/org/arvados/client/api/client/collections-list.json
sdk/java-v2/src/test/resources/org/arvados/client/api/client/groups-get.json
sdk/java-v2/src/test/resources/org/arvados/client/api/client/groups-list.json
sdk/java-v2/src/test/resources/org/arvados/client/api/client/keep-client-test-file.txt
sdk/java-v2/src/test/resources/org/arvados/client/api/client/keep-services-accessible-disk-only.json
sdk/java-v2/src/test/resources/org/arvados/client/api/client/keep-services-accessible.json
sdk/java-v2/src/test/resources/org/arvados/client/api/client/keep-services-get.json
sdk/java-v2/src/test/resources/org/arvados/client/api/client/keep-services-list.json
sdk/java-v2/src/test/resources/org/arvados/client/api/client/keep-services-not-accessible.json
sdk/java-v2/src/test/resources/org/arvados/client/api/client/users-create.json
sdk/java-v2/src/test/resources/org/arvados/client/api/client/users-get.json
sdk/java-v2/src/test/resources/org/arvados/client/api/client/users-list.json
sdk/java-v2/src/test/resources/org/arvados/client/api/client/users-system.json
sdk/java-v2/src/test/resources/selfsigned.keystore.jks
sdk/java-v2/test-in-docker.sh

index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c928081f782ae33cf44829ecad7679d2aa617571
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,9 @@@
++/.gradle/
++/bin/
++/build/
++.project
++.classpath
++/.settings/
++.DS_Store
++/.idea/
++/out/
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ecee9c720a67c7a00bd5c58c07047e7e71e85194
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4 @@@
++.licenseignore
++agpl-3.0.txt
++apache-2.0.txt
++COPYING
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..27d8c813593c47b91e1d87df194fff3533bf1079
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,15 @@@
++Unless indicated otherwise in the header of the file, the files in this
++repository are dual-licensed AGPL-3.0 and Apache-2.0
++
++Individual files contain an SPDX tag that indicates the license for the file.
++dual-licensed files use the following tag:
++
++    SPDX-License-Identifier: AGPL-3.0 OR Apache-2.0
++
++This enables machine processing of license information based on the SPDX
++License Identifiers that are available here: http://spdx.org/licenses/
++
++The full license text for each license is available in this directory:
++
++  AGPL-3.0:     agpl-3.0.txt
++  Apache-2.0:   apache-2.0.txt
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ca5aef91c1a6c8a9f82995c9e8123e505b204994
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,115 @@@
++```
++Copyright (C) The Arvados Authors. All rights reserved.
++ 
++SPDX-License-Identifier: CC-BY-SA-3.0
++```
++
++# Arvados Java SDK
++
++##### About
++Arvados Java Client allows to access Arvados servers and uses two APIs:
++* lower level [Keep Server API](https://doc.arvados.org/api/index.html)
++* higher level [Keep-Web API](https://godoc.org/github.com/curoverse/arvados/services/keep-web) (when needed)
++
++##### Required Java version
++This SDK requires Java 8+
++
++##### Logging
++
++SLF4J is used for logging. Concrete logging framework and configuration must be provided by a client.
++
++##### Configuration
++
++[TypeSafe Configuration](https://github.com/lightbend/config) is used for configuring this library.
++
++Please, have a look at java/resources/reference.conf for default values provided with this library.
++
++* **keepweb-host** - change to host of your Keep-Web installation
++* **keepweb-port** - change to port of your Keep-Web installation
++* **host** - change to host of your Arvados installation
++* **port** - change to port of your Arvados installation
++* **token** - authenticates registered user, one must provide
++  [token obtained from Arvados Workbench](https://doc.arvados.org/user/reference/api-tokens.html)
++* **protocol** - don't change to unless really needed
++* **host-insecure** - insecure communication with Arvados (ignores SSL certificate verification), 
++  don't change to *true* unless really needed
++* **split-size** - size of chunk files in megabytes
++* **temp-dir** - temporary chunk files storage
++* **copies** - amount of chunk files duplicates per Keep server
++* **retries** - in case of chunk files send failure this should allow to repeat send 
++  (*NOTE*: this parameter is not used at the moment but was left for future improvements)
++
++In order to override default settings one can create application.conf file in an application.
++Example: src/test/resources/application.conf.
++
++Alternatively ExternalConfigProvider class can be used to pass configuration via code. 
++ExternalConfigProvider comes with a builder and all of the above values must be provided in order for it to work properly.
++
++ArvadosFacade has two constructors, one without arguments that uses values from reference.conf and second one 
++taking ExternalConfigProvider as an argument.
++
++##### API clients
++
++All API clients inherit from BaseStandardApiClient. This class contains implementation of all 
++common methods as described in http://doc.arvados.org/api/methods.html.
++
++Parameters provided to common or specific methods are String UUID or fields wrapped in Java objects. For example:
++
++```java
++String uuid = "ardev-4zz18-rxcql7qwyakg1r1";
++
++Collection actual = client.get(uuid);
++```
++
++```java
++ListArgument listArgument = ListArgument.builder()
++        .filters(Arrays.asList(
++                Filter.of("owner_uuid", Operator.LIKE, "ardev%"),
++                Filter.of("name", Operator.LIKE, "Super%"),
++                Filter.of("portable_data_hash", Operator.IN, Lists.newArrayList("54f6d9f59065d3c009d4306660989379+65")
++            )))
++        .build();
++
++CollectionList actual = client.list(listArgument);
++```
++
++Non-standard API clients must inherit from BaseApiClient. 
++For example: KeepServerApiClient communicates directly with Keep servers using exclusively non-common methods.
++
++##### Business logic
++
++More advanced API data handling could be implemented as *Facade* classes. 
++In current version functionalities provided by SDK are handled by *ArvadosFacade*.
++They include:
++* **downloading single file from collection** - using Keep-Web
++* **downloading whole collection** - using Keep-Web or Keep Server API
++* **listing file info from certain collection** - information is returned as list of *FileTokens* providing file details
++* **uploading single file** - to either new or existing collection
++* **uploading list of files** - to either new or existing collection
++* **creating an empty collection**
++* **getting current user info**
++* **listing current user's collections**
++* **creating new project**
++* **deleting certain collection**
++
++##### Note regarding Keep-Web
++
++Current version requires both Keep Web and standard Keep Server API configured in order to use Keep-Web functionalities.
++
++##### Integration tests
++
++In order to run integration tests all fields within following configuration file must be provided: 
++```java
++src/test/resources/integration-test-appliation.conf 
++```
++Parameter **integration-tests.project-uuid** should contain UUID of one project available to user,
++whose token was provided within configuration file. 
++
++Integration tests require connection to real Arvados server.
++
++##### Note regarding file naming
++
++While uploading via this SDK all uploaded files within single collection must have different names.
++This applies also to uploading files to already existing collection. 
++Renaming files with duplicate names is not implemented in current version.
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..dba13ed2ddf783ee8118c6a581dbf75305f816a3
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,661 @@@
++                    GNU AFFERO GENERAL PUBLIC LICENSE
++                       Version 3, 19 November 2007
++
++ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
++ Everyone is permitted to copy and distribute verbatim copies
++ of this license document, but changing it is not allowed.
++
++                            Preamble
++
++  The GNU Affero General Public License is a free, copyleft license for
++software and other kinds of works, specifically designed to ensure
++cooperation with the community in the case of network server software.
++
++  The licenses for most software and other practical works are designed
++to take away your freedom to share and change the works.  By contrast,
++our General Public Licenses are intended to guarantee your freedom to
++share and change all versions of a program--to make sure it remains free
++software for all its users.
++
++  When we speak of free software, we are referring to freedom, not
++price.  Our General Public Licenses are designed to make sure that you
++have the freedom to distribute copies of free software (and charge for
++them if you wish), that you receive source code or can get it if you
++want it, that you can change the software or use pieces of it in new
++free programs, and that you know you can do these things.
++
++  Developers that use our General Public Licenses protect your rights
++with two steps: (1) assert copyright on the software, and (2) offer
++you this License which gives you legal permission to copy, distribute
++and/or modify the software.
++
++  A secondary benefit of defending all users' freedom is that
++improvements made in alternate versions of the program, if they
++receive widespread use, become available for other developers to
++incorporate.  Many developers of free software are heartened and
++encouraged by the resulting cooperation.  However, in the case of
++software used on network servers, this result may fail to come about.
++The GNU General Public License permits making a modified version and
++letting the public access it on a server without ever releasing its
++source code to the public.
++
++  The GNU Affero General Public License is designed specifically to
++ensure that, in such cases, the modified source code becomes available
++to the community.  It requires the operator of a network server to
++provide the source code of the modified version running there to the
++users of that server.  Therefore, public use of a modified version, on
++a publicly accessible server, gives the public access to the source
++code of the modified version.
++
++  An older license, called the Affero General Public License and
++published by Affero, was designed to accomplish similar goals.  This is
++a different license, not a version of the Affero GPL, but Affero has
++released a new version of the Affero GPL which permits relicensing under
++this license.
++
++  The precise terms and conditions for copying, distribution and
++modification follow.
++
++                       TERMS AND CONDITIONS
++
++  0. Definitions.
++
++  "This License" refers to version 3 of the GNU Affero General Public License.
++
++  "Copyright" also means copyright-like laws that apply to other kinds of
++works, such as semiconductor masks.
++
++  "The Program" refers to any copyrightable work licensed under this
++License.  Each licensee is addressed as "you".  "Licensees" and
++"recipients" may be individuals or organizations.
++
++  To "modify" a work means to copy from or adapt all or part of the work
++in a fashion requiring copyright permission, other than the making of an
++exact copy.  The resulting work is called a "modified version" of the
++earlier work or a work "based on" the earlier work.
++
++  A "covered work" means either the unmodified Program or a work based
++on the Program.
++
++  To "propagate" a work means to do anything with it that, without
++permission, would make you directly or secondarily liable for
++infringement under applicable copyright law, except executing it on a
++computer or modifying a private copy.  Propagation includes copying,
++distribution (with or without modification), making available to the
++public, and in some countries other activities as well.
++
++  To "convey" a work means any kind of propagation that enables other
++parties to make or receive copies.  Mere interaction with a user through
++a computer network, with no transfer of a copy, is not conveying.
++
++  An interactive user interface displays "Appropriate Legal Notices"
++to the extent that it includes a convenient and prominently visible
++feature that (1) displays an appropriate copyright notice, and (2)
++tells the user that there is no warranty for the work (except to the
++extent that warranties are provided), that licensees may convey the
++work under this License, and how to view a copy of this License.  If
++the interface presents a list of user commands or options, such as a
++menu, a prominent item in the list meets this criterion.
++
++  1. Source Code.
++
++  The "source code" for a work means the preferred form of the work
++for making modifications to it.  "Object code" means any non-source
++form of a work.
++
++  A "Standard Interface" means an interface that either is an official
++standard defined by a recognized standards body, or, in the case of
++interfaces specified for a particular programming language, one that
++is widely used among developers working in that language.
++
++  The "System Libraries" of an executable work include anything, other
++than the work as a whole, that (a) is included in the normal form of
++packaging a Major Component, but which is not part of that Major
++Component, and (b) serves only to enable use of the work with that
++Major Component, or to implement a Standard Interface for which an
++implementation is available to the public in source code form.  A
++"Major Component", in this context, means a major essential component
++(kernel, window system, and so on) of the specific operating system
++(if any) on which the executable work runs, or a compiler used to
++produce the work, or an object code interpreter used to run it.
++
++  The "Corresponding Source" for a work in object code form means all
++the source code needed to generate, install, and (for an executable
++work) run the object code and to modify the work, including scripts to
++control those activities.  However, it does not include the work's
++System Libraries, or general-purpose tools or generally available free
++programs which are used unmodified in performing those activities but
++which are not part of the work.  For example, Corresponding Source
++includes interface definition files associated with source files for
++the work, and the source code for shared libraries and dynamically
++linked subprograms that the work is specifically designed to require,
++such as by intimate data communication or control flow between those
++subprograms and other parts of the work.
++
++  The Corresponding Source need not include anything that users
++can regenerate automatically from other parts of the Corresponding
++Source.
++
++  The Corresponding Source for a work in source code form is that
++same work.
++
++  2. Basic Permissions.
++
++  All rights granted under this License are granted for the term of
++copyright on the Program, and are irrevocable provided the stated
++conditions are met.  This License explicitly affirms your unlimited
++permission to run the unmodified Program.  The output from running a
++covered work is covered by this License only if the output, given its
++content, constitutes a covered work.  This License acknowledges your
++rights of fair use or other equivalent, as provided by copyright law.
++
++  You may make, run and propagate covered works that you do not
++convey, without conditions so long as your license otherwise remains
++in force.  You may convey covered works to others for the sole purpose
++of having them make modifications exclusively for you, or provide you
++with facilities for running those works, provided that you comply with
++the terms of this License in conveying all material for which you do
++not control copyright.  Those thus making or running the covered works
++for you must do so exclusively on your behalf, under your direction
++and control, on terms that prohibit them from making any copies of
++your copyrighted material outside their relationship with you.
++
++  Conveying under any other circumstances is permitted solely under
++the conditions stated below.  Sublicensing is not allowed; section 10
++makes it unnecessary.
++
++  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
++
++  No covered work shall be deemed part of an effective technological
++measure under any applicable law fulfilling obligations under article
++11 of the WIPO copyright treaty adopted on 20 December 1996, or
++similar laws prohibiting or restricting circumvention of such
++measures.
++
++  When you convey a covered work, you waive any legal power to forbid
++circumvention of technological measures to the extent such circumvention
++is effected by exercising rights under this License with respect to
++the covered work, and you disclaim any intention to limit operation or
++modification of the work as a means of enforcing, against the work's
++users, your or third parties' legal rights to forbid circumvention of
++technological measures.
++
++  4. Conveying Verbatim Copies.
++
++  You may convey verbatim copies of the Program's source code as you
++receive it, in any medium, provided that you conspicuously and
++appropriately publish on each copy an appropriate copyright notice;
++keep intact all notices stating that this License and any
++non-permissive terms added in accord with section 7 apply to the code;
++keep intact all notices of the absence of any warranty; and give all
++recipients a copy of this License along with the Program.
++
++  You may charge any price or no price for each copy that you convey,
++and you may offer support or warranty protection for a fee.
++
++  5. Conveying Modified Source Versions.
++
++  You may convey a work based on the Program, or the modifications to
++produce it from the Program, in the form of source code under the
++terms of section 4, provided that you also meet all of these conditions:
++
++    a) The work must carry prominent notices stating that you modified
++    it, and giving a relevant date.
++
++    b) The work must carry prominent notices stating that it is
++    released under this License and any conditions added under section
++    7.  This requirement modifies the requirement in section 4 to
++    "keep intact all notices".
++
++    c) You must license the entire work, as a whole, under this
++    License to anyone who comes into possession of a copy.  This
++    License will therefore apply, along with any applicable section 7
++    additional terms, to the whole of the work, and all its parts,
++    regardless of how they are packaged.  This License gives no
++    permission to license the work in any other way, but it does not
++    invalidate such permission if you have separately received it.
++
++    d) If the work has interactive user interfaces, each must display
++    Appropriate Legal Notices; however, if the Program has interactive
++    interfaces that do not display Appropriate Legal Notices, your
++    work need not make them do so.
++
++  A compilation of a covered work with other separate and independent
++works, which are not by their nature extensions of the covered work,
++and which are not combined with it such as to form a larger program,
++in or on a volume of a storage or distribution medium, is called an
++"aggregate" if the compilation and its resulting copyright are not
++used to limit the access or legal rights of the compilation's users
++beyond what the individual works permit.  Inclusion of a covered work
++in an aggregate does not cause this License to apply to the other
++parts of the aggregate.
++
++  6. Conveying Non-Source Forms.
++
++  You may convey a covered work in object code form under the terms
++of sections 4 and 5, provided that you also convey the
++machine-readable Corresponding Source under the terms of this License,
++in one of these ways:
++
++    a) Convey the object code in, or embodied in, a physical product
++    (including a physical distribution medium), accompanied by the
++    Corresponding Source fixed on a durable physical medium
++    customarily used for software interchange.
++
++    b) Convey the object code in, or embodied in, a physical product
++    (including a physical distribution medium), accompanied by a
++    written offer, valid for at least three years and valid for as
++    long as you offer spare parts or customer support for that product
++    model, to give anyone who possesses the object code either (1) a
++    copy of the Corresponding Source for all the software in the
++    product that is covered by this License, on a durable physical
++    medium customarily used for software interchange, for a price no
++    more than your reasonable cost of physically performing this
++    conveying of source, or (2) access to copy the
++    Corresponding Source from a network server at no charge.
++
++    c) Convey individual copies of the object code with a copy of the
++    written offer to provide the Corresponding Source.  This
++    alternative is allowed only occasionally and noncommercially, and
++    only if you received the object code with such an offer, in accord
++    with subsection 6b.
++
++    d) Convey the object code by offering access from a designated
++    place (gratis or for a charge), and offer equivalent access to the
++    Corresponding Source in the same way through the same place at no
++    further charge.  You need not require recipients to copy the
++    Corresponding Source along with the object code.  If the place to
++    copy the object code is a network server, the Corresponding Source
++    may be on a different server (operated by you or a third party)
++    that supports equivalent copying facilities, provided you maintain
++    clear directions next to the object code saying where to find the
++    Corresponding Source.  Regardless of what server hosts the
++    Corresponding Source, you remain obligated to ensure that it is
++    available for as long as needed to satisfy these requirements.
++
++    e) Convey the object code using peer-to-peer transmission, provided
++    you inform other peers where the object code and Corresponding
++    Source of the work are being offered to the general public at no
++    charge under subsection 6d.
++
++  A separable portion of the object code, whose source code is excluded
++from the Corresponding Source as a System Library, need not be
++included in conveying the object code work.
++
++  A "User Product" is either (1) a "consumer product", which means any
++tangible personal property which is normally used for personal, family,
++or household purposes, or (2) anything designed or sold for incorporation
++into a dwelling.  In determining whether a product is a consumer product,
++doubtful cases shall be resolved in favor of coverage.  For a particular
++product received by a particular user, "normally used" refers to a
++typical or common use of that class of product, regardless of the status
++of the particular user or of the way in which the particular user
++actually uses, or expects or is expected to use, the product.  A product
++is a consumer product regardless of whether the product has substantial
++commercial, industrial or non-consumer uses, unless such uses represent
++the only significant mode of use of the product.
++
++  "Installation Information" for a User Product means any methods,
++procedures, authorization keys, or other information required to install
++and execute modified versions of a covered work in that User Product from
++a modified version of its Corresponding Source.  The information must
++suffice to ensure that the continued functioning of the modified object
++code is in no case prevented or interfered with solely because
++modification has been made.
++
++  If you convey an object code work under this section in, or with, or
++specifically for use in, a User Product, and the conveying occurs as
++part of a transaction in which the right of possession and use of the
++User Product is transferred to the recipient in perpetuity or for a
++fixed term (regardless of how the transaction is characterized), the
++Corresponding Source conveyed under this section must be accompanied
++by the Installation Information.  But this requirement does not apply
++if neither you nor any third party retains the ability to install
++modified object code on the User Product (for example, the work has
++been installed in ROM).
++
++  The requirement to provide Installation Information does not include a
++requirement to continue to provide support service, warranty, or updates
++for a work that has been modified or installed by the recipient, or for
++the User Product in which it has been modified or installed.  Access to a
++network may be denied when the modification itself materially and
++adversely affects the operation of the network or violates the rules and
++protocols for communication across the network.
++
++  Corresponding Source conveyed, and Installation Information provided,
++in accord with this section must be in a format that is publicly
++documented (and with an implementation available to the public in
++source code form), and must require no special password or key for
++unpacking, reading or copying.
++
++  7. Additional Terms.
++
++  "Additional permissions" are terms that supplement the terms of this
++License by making exceptions from one or more of its conditions.
++Additional permissions that are applicable to the entire Program shall
++be treated as though they were included in this License, to the extent
++that they are valid under applicable law.  If additional permissions
++apply only to part of the Program, that part may be used separately
++under those permissions, but the entire Program remains governed by
++this License without regard to the additional permissions.
++
++  When you convey a copy of a covered work, you may at your option
++remove any additional permissions from that copy, or from any part of
++it.  (Additional permissions may be written to require their own
++removal in certain cases when you modify the work.)  You may place
++additional permissions on material, added by you to a covered work,
++for which you have or can give appropriate copyright permission.
++
++  Notwithstanding any other provision of this License, for material you
++add to a covered work, you may (if authorized by the copyright holders of
++that material) supplement the terms of this License with terms:
++
++    a) Disclaiming warranty or limiting liability differently from the
++    terms of sections 15 and 16 of this License; or
++
++    b) Requiring preservation of specified reasonable legal notices or
++    author attributions in that material or in the Appropriate Legal
++    Notices displayed by works containing it; or
++
++    c) Prohibiting misrepresentation of the origin of that material, or
++    requiring that modified versions of such material be marked in
++    reasonable ways as different from the original version; or
++
++    d) Limiting the use for publicity purposes of names of licensors or
++    authors of the material; or
++
++    e) Declining to grant rights under trademark law for use of some
++    trade names, trademarks, or service marks; or
++
++    f) Requiring indemnification of licensors and authors of that
++    material by anyone who conveys the material (or modified versions of
++    it) with contractual assumptions of liability to the recipient, for
++    any liability that these contractual assumptions directly impose on
++    those licensors and authors.
++
++  All other non-permissive additional terms are considered "further
++restrictions" within the meaning of section 10.  If the Program as you
++received it, or any part of it, contains a notice stating that it is
++governed by this License along with a term that is a further
++restriction, you may remove that term.  If a license document contains
++a further restriction but permits relicensing or conveying under this
++License, you may add to a covered work material governed by the terms
++of that license document, provided that the further restriction does
++not survive such relicensing or conveying.
++
++  If you add terms to a covered work in accord with this section, you
++must place, in the relevant source files, a statement of the
++additional terms that apply to those files, or a notice indicating
++where to find the applicable terms.
++
++  Additional terms, permissive or non-permissive, may be stated in the
++form of a separately written license, or stated as exceptions;
++the above requirements apply either way.
++
++  8. Termination.
++
++  You may not propagate or modify a covered work except as expressly
++provided under this License.  Any attempt otherwise to propagate or
++modify it is void, and will automatically terminate your rights under
++this License (including any patent licenses granted under the third
++paragraph of section 11).
++
++  However, if you cease all violation of this License, then your
++license from a particular copyright holder is reinstated (a)
++provisionally, unless and until the copyright holder explicitly and
++finally terminates your license, and (b) permanently, if the copyright
++holder fails to notify you of the violation by some reasonable means
++prior to 60 days after the cessation.
++
++  Moreover, your license from a particular copyright holder is
++reinstated permanently if the copyright holder notifies you of the
++violation by some reasonable means, this is the first time you have
++received notice of violation of this License (for any work) from that
++copyright holder, and you cure the violation prior to 30 days after
++your receipt of the notice.
++
++  Termination of your rights under this section does not terminate the
++licenses of parties who have received copies or rights from you under
++this License.  If your rights have been terminated and not permanently
++reinstated, you do not qualify to receive new licenses for the same
++material under section 10.
++
++  9. Acceptance Not Required for Having Copies.
++
++  You are not required to accept this License in order to receive or
++run a copy of the Program.  Ancillary propagation of a covered work
++occurring solely as a consequence of using peer-to-peer transmission
++to receive a copy likewise does not require acceptance.  However,
++nothing other than this License grants you permission to propagate or
++modify any covered work.  These actions infringe copyright if you do
++not accept this License.  Therefore, by modifying or propagating a
++covered work, you indicate your acceptance of this License to do so.
++
++  10. Automatic Licensing of Downstream Recipients.
++
++  Each time you convey a covered work, the recipient automatically
++receives a license from the original licensors, to run, modify and
++propagate that work, subject to this License.  You are not responsible
++for enforcing compliance by third parties with this License.
++
++  An "entity transaction" is a transaction transferring control of an
++organization, or substantially all assets of one, or subdividing an
++organization, or merging organizations.  If propagation of a covered
++work results from an entity transaction, each party to that
++transaction who receives a copy of the work also receives whatever
++licenses to the work the party's predecessor in interest had or could
++give under the previous paragraph, plus a right to possession of the
++Corresponding Source of the work from the predecessor in interest, if
++the predecessor has it or can get it with reasonable efforts.
++
++  You may not impose any further restrictions on the exercise of the
++rights granted or affirmed under this License.  For example, you may
++not impose a license fee, royalty, or other charge for exercise of
++rights granted under this License, and you may not initiate litigation
++(including a cross-claim or counterclaim in a lawsuit) alleging that
++any patent claim is infringed by making, using, selling, offering for
++sale, or importing the Program or any portion of it.
++
++  11. Patents.
++
++  A "contributor" is a copyright holder who authorizes use under this
++License of the Program or a work on which the Program is based.  The
++work thus licensed is called the contributor's "contributor version".
++
++  A contributor's "essential patent claims" are all patent claims
++owned or controlled by the contributor, whether already acquired or
++hereafter acquired, that would be infringed by some manner, permitted
++by this License, of making, using, or selling its contributor version,
++but do not include claims that would be infringed only as a
++consequence of further modification of the contributor version.  For
++purposes of this definition, "control" includes the right to grant
++patent sublicenses in a manner consistent with the requirements of
++this License.
++
++  Each contributor grants you a non-exclusive, worldwide, royalty-free
++patent license under the contributor's essential patent claims, to
++make, use, sell, offer for sale, import and otherwise run, modify and
++propagate the contents of its contributor version.
++
++  In the following three paragraphs, a "patent license" is any express
++agreement or commitment, however denominated, not to enforce a patent
++(such as an express permission to practice a patent or covenant not to
++sue for patent infringement).  To "grant" such a patent license to a
++party means to make such an agreement or commitment not to enforce a
++patent against the party.
++
++  If you convey a covered work, knowingly relying on a patent license,
++and the Corresponding Source of the work is not available for anyone
++to copy, free of charge and under the terms of this License, through a
++publicly available network server or other readily accessible means,
++then you must either (1) cause the Corresponding Source to be so
++available, or (2) arrange to deprive yourself of the benefit of the
++patent license for this particular work, or (3) arrange, in a manner
++consistent with the requirements of this License, to extend the patent
++license to downstream recipients.  "Knowingly relying" means you have
++actual knowledge that, but for the patent license, your conveying the
++covered work in a country, or your recipient's use of the covered work
++in a country, would infringe one or more identifiable patents in that
++country that you have reason to believe are valid.
++
++  If, pursuant to or in connection with a single transaction or
++arrangement, you convey, or propagate by procuring conveyance of, a
++covered work, and grant a patent license to some of the parties
++receiving the covered work authorizing them to use, propagate, modify
++or convey a specific copy of the covered work, then the patent license
++you grant is automatically extended to all recipients of the covered
++work and works based on it.
++
++  A patent license is "discriminatory" if it does not include within
++the scope of its coverage, prohibits the exercise of, or is
++conditioned on the non-exercise of one or more of the rights that are
++specifically granted under this License.  You may not convey a covered
++work if you are a party to an arrangement with a third party that is
++in the business of distributing software, under which you make payment
++to the third party based on the extent of your activity of conveying
++the work, and under which the third party grants, to any of the
++parties who would receive the covered work from you, a discriminatory
++patent license (a) in connection with copies of the covered work
++conveyed by you (or copies made from those copies), or (b) primarily
++for and in connection with specific products or compilations that
++contain the covered work, unless you entered into that arrangement,
++or that patent license was granted, prior to 28 March 2007.
++
++  Nothing in this License shall be construed as excluding or limiting
++any implied license or other defenses to infringement that may
++otherwise be available to you under applicable patent law.
++
++  12. No Surrender of Others' Freedom.
++
++  If conditions are imposed on you (whether by court order, agreement or
++otherwise) that contradict the conditions of this License, they do not
++excuse you from the conditions of this License.  If you cannot convey a
++covered work so as to satisfy simultaneously your obligations under this
++License and any other pertinent obligations, then as a consequence you may
++not convey it at all.  For example, if you agree to terms that obligate you
++to collect a royalty for further conveying from those to whom you convey
++the Program, the only way you could satisfy both those terms and this
++License would be to refrain entirely from conveying the Program.
++
++  13. Remote Network Interaction; Use with the GNU General Public License.
++
++  Notwithstanding any other provision of this License, if you modify the
++Program, your modified version must prominently offer all users
++interacting with it remotely through a computer network (if your version
++supports such interaction) an opportunity to receive the Corresponding
++Source of your version by providing access to the Corresponding Source
++from a network server at no charge, through some standard or customary
++means of facilitating copying of software.  This Corresponding Source
++shall include the Corresponding Source for any work covered by version 3
++of the GNU General Public License that is incorporated pursuant to the
++following paragraph.
++
++  Notwithstanding any other provision of this License, you have
++permission to link or combine any covered work with a work licensed
++under version 3 of the GNU General Public License into a single
++combined work, and to convey the resulting work.  The terms of this
++License will continue to apply to the part which is the covered work,
++but the work with which it is combined will remain governed by version
++3 of the GNU General Public License.
++
++  14. Revised Versions of this License.
++
++  The Free Software Foundation may publish revised and/or new versions of
++the GNU Affero General Public License from time to time.  Such new versions
++will be similar in spirit to the present version, but may differ in detail to
++address new problems or concerns.
++
++  Each version is given a distinguishing version number.  If the
++Program specifies that a certain numbered version of the GNU Affero General
++Public License "or any later version" applies to it, you have the
++option of following the terms and conditions either of that numbered
++version or of any later version published by the Free Software
++Foundation.  If the Program does not specify a version number of the
++GNU Affero General Public License, you may choose any version ever published
++by the Free Software Foundation.
++
++  If the Program specifies that a proxy can decide which future
++versions of the GNU Affero General Public License can be used, that proxy's
++public statement of acceptance of a version permanently authorizes you
++to choose that version for the Program.
++
++  Later license versions may give you additional or different
++permissions.  However, no additional obligations are imposed on any
++author or copyright holder as a result of your choosing to follow a
++later version.
++
++  15. Disclaimer of Warranty.
++
++  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
++APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
++HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
++OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
++THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
++PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
++IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
++ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
++
++  16. Limitation of Liability.
++
++  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
++WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
++THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
++GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
++USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
++DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
++PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
++EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
++SUCH DAMAGES.
++
++  17. Interpretation of Sections 15 and 16.
++
++  If the disclaimer of warranty and limitation of liability provided
++above cannot be given local legal effect according to their terms,
++reviewing courts shall apply local law that most closely approximates
++an absolute waiver of all civil liability in connection with the
++Program, unless a warranty or assumption of liability accompanies a
++copy of the Program in return for a fee.
++
++                     END OF TERMS AND CONDITIONS
++
++            How to Apply These Terms to Your New Programs
++
++  If you develop a new program, and you want it to be of the greatest
++possible use to the public, the best way to achieve this is to make it
++free software which everyone can redistribute and change under these terms.
++
++  To do so, attach the following notices to the program.  It is safest
++to attach them to the start of each source file to most effectively
++state the exclusion of warranty; and each file should have at least
++the "copyright" line and a pointer to where the full notice is found.
++
++    <one line to give the program's name and a brief idea of what it does.>
++    Copyright (C) <year>  <name of author>
++
++    This program is free software: you can redistribute it and/or modify
++    it under the terms of the GNU Affero General Public License as published by
++    the Free Software Foundation, either version 3 of the License, or
++    (at your option) any later version.
++
++    This program is distributed in the hope that it will be useful,
++    but WITHOUT ANY WARRANTY; without even the implied warranty of
++    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++    GNU Affero General Public License for more details.
++
++    You should have received a copy of the GNU Affero General Public License
++    along with this program.  If not, see <http://www.gnu.org/licenses/>.
++
++Also add information on how to contact you by electronic and paper mail.
++
++  If your software can interact with users remotely through a computer
++network, you should also make sure that it provides a way for users to
++get its source.  For example, if your program is a web application, its
++interface could display a "Source" link that leads users to an archive
++of the code.  There are many ways you could offer source, and different
++solutions will be better for different programs; see section 13 for the
++specific requirements.
++
++  You should also get your employer (if you work as a programmer) or school,
++if any, to sign a "copyright disclaimer" for the program, if necessary.
++For more information on this, and how to apply and follow the GNU AGPL, see
++<http://www.gnu.org/licenses/>.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d645695673349e3947e8e5ae42332d0ac3164cd7
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,202 @@@
++
++                                 Apache License
++                           Version 2.0, January 2004
++                        http://www.apache.org/licenses/
++
++   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
++
++   1. Definitions.
++
++      "License" shall mean the terms and conditions for use, reproduction,
++      and distribution as defined by Sections 1 through 9 of this document.
++
++      "Licensor" shall mean the copyright owner or entity authorized by
++      the copyright owner that is granting the License.
++
++      "Legal Entity" shall mean the union of the acting entity and all
++      other entities that control, are controlled by, or are under common
++      control with that entity. For the purposes of this definition,
++      "control" means (i) the power, direct or indirect, to cause the
++      direction or management of such entity, whether by contract or
++      otherwise, or (ii) ownership of fifty percent (50%) or more of the
++      outstanding shares, or (iii) beneficial ownership of such entity.
++
++      "You" (or "Your") shall mean an individual or Legal Entity
++      exercising permissions granted by this License.
++
++      "Source" form shall mean the preferred form for making modifications,
++      including but not limited to software source code, documentation
++      source, and configuration files.
++
++      "Object" form shall mean any form resulting from mechanical
++      transformation or translation of a Source form, including but
++      not limited to compiled object code, generated documentation,
++      and conversions to other media types.
++
++      "Work" shall mean the work of authorship, whether in Source or
++      Object form, made available under the License, as indicated by a
++      copyright notice that is included in or attached to the work
++      (an example is provided in the Appendix below).
++
++      "Derivative Works" shall mean any work, whether in Source or Object
++      form, that is based on (or derived from) the Work and for which the
++      editorial revisions, annotations, elaborations, or other modifications
++      represent, as a whole, an original work of authorship. For the purposes
++      of this License, Derivative Works shall not include works that remain
++      separable from, or merely link (or bind by name) to the interfaces of,
++      the Work and Derivative Works thereof.
++
++      "Contribution" shall mean any work of authorship, including
++      the original version of the Work and any modifications or additions
++      to that Work or Derivative Works thereof, that is intentionally
++      submitted to Licensor for inclusion in the Work by the copyright owner
++      or by an individual or Legal Entity authorized to submit on behalf of
++      the copyright owner. For the purposes of this definition, "submitted"
++      means any form of electronic, verbal, or written communication sent
++      to the Licensor or its representatives, including but not limited to
++      communication on electronic mailing lists, source code control systems,
++      and issue tracking systems that are managed by, or on behalf of, the
++      Licensor for the purpose of discussing and improving the Work, but
++      excluding communication that is conspicuously marked or otherwise
++      designated in writing by the copyright owner as "Not a Contribution."
++
++      "Contributor" shall mean Licensor and any individual or Legal Entity
++      on behalf of whom a Contribution has been received by Licensor and
++      subsequently incorporated within the Work.
++
++   2. Grant of Copyright License. Subject to the terms and conditions of
++      this License, each Contributor hereby grants to You a perpetual,
++      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
++      copyright license to reproduce, prepare Derivative Works of,
++      publicly display, publicly perform, sublicense, and distribute the
++      Work and such Derivative Works in Source or Object form.
++
++   3. Grant of Patent License. Subject to the terms and conditions of
++      this License, each Contributor hereby grants to You a perpetual,
++      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
++      (except as stated in this section) patent license to make, have made,
++      use, offer to sell, sell, import, and otherwise transfer the Work,
++      where such license applies only to those patent claims licensable
++      by such Contributor that are necessarily infringed by their
++      Contribution(s) alone or by combination of their Contribution(s)
++      with the Work to which such Contribution(s) was submitted. If You
++      institute patent litigation against any entity (including a
++      cross-claim or counterclaim in a lawsuit) alleging that the Work
++      or a Contribution incorporated within the Work constitutes direct
++      or contributory patent infringement, then any patent licenses
++      granted to You under this License for that Work shall terminate
++      as of the date such litigation is filed.
++
++   4. Redistribution. You may reproduce and distribute copies of the
++      Work or Derivative Works thereof in any medium, with or without
++      modifications, and in Source or Object form, provided that You
++      meet the following conditions:
++
++      (a) You must give any other recipients of the Work or
++          Derivative Works a copy of this License; and
++
++      (b) You must cause any modified files to carry prominent notices
++          stating that You changed the files; and
++
++      (c) You must retain, in the Source form of any Derivative Works
++          that You distribute, all copyright, patent, trademark, and
++          attribution notices from the Source form of the Work,
++          excluding those notices that do not pertain to any part of
++          the Derivative Works; and
++
++      (d) If the Work includes a "NOTICE" text file as part of its
++          distribution, then any Derivative Works that You distribute must
++          include a readable copy of the attribution notices contained
++          within such NOTICE file, excluding those notices that do not
++          pertain to any part of the Derivative Works, in at least one
++          of the following places: within a NOTICE text file distributed
++          as part of the Derivative Works; within the Source form or
++          documentation, if provided along with the Derivative Works; or,
++          within a display generated by the Derivative Works, if and
++          wherever such third-party notices normally appear. The contents
++          of the NOTICE file are for informational purposes only and
++          do not modify the License. You may add Your own attribution
++          notices within Derivative Works that You distribute, alongside
++          or as an addendum to the NOTICE text from the Work, provided
++          that such additional attribution notices cannot be construed
++          as modifying the License.
++
++      You may add Your own copyright statement to Your modifications and
++      may provide additional or different license terms and conditions
++      for use, reproduction, or distribution of Your modifications, or
++      for any such Derivative Works as a whole, provided Your use,
++      reproduction, and distribution of the Work otherwise complies with
++      the conditions stated in this License.
++
++   5. Submission of Contributions. Unless You explicitly state otherwise,
++      any Contribution intentionally submitted for inclusion in the Work
++      by You to the Licensor shall be under the terms and conditions of
++      this License, without any additional terms or conditions.
++      Notwithstanding the above, nothing herein shall supersede or modify
++      the terms of any separate license agreement you may have executed
++      with Licensor regarding such Contributions.
++
++   6. Trademarks. This License does not grant permission to use the trade
++      names, trademarks, service marks, or product names of the Licensor,
++      except as required for reasonable and customary use in describing the
++      origin of the Work and reproducing the content of the NOTICE file.
++
++   7. Disclaimer of Warranty. Unless required by applicable law or
++      agreed to in writing, Licensor provides the Work (and each
++      Contributor provides its Contributions) on an "AS IS" BASIS,
++      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
++      implied, including, without limitation, any warranties or conditions
++      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
++      PARTICULAR PURPOSE. You are solely responsible for determining the
++      appropriateness of using or redistributing the Work and assume any
++      risks associated with Your exercise of permissions under this License.
++
++   8. Limitation of Liability. In no event and under no legal theory,
++      whether in tort (including negligence), contract, or otherwise,
++      unless required by applicable law (such as deliberate and grossly
++      negligent acts) or agreed to in writing, shall any Contributor be
++      liable to You for damages, including any direct, indirect, special,
++      incidental, or consequential damages of any character arising as a
++      result of this License or out of the use or inability to use the
++      Work (including but not limited to damages for loss of goodwill,
++      work stoppage, computer failure or malfunction, or any and all
++      other commercial damages or losses), even if such Contributor
++      has been advised of the possibility of such damages.
++
++   9. Accepting Warranty or Additional Liability. While redistributing
++      the Work or Derivative Works thereof, You may choose to offer,
++      and charge a fee for, acceptance of support, warranty, indemnity,
++      or other liability obligations and/or rights consistent with this
++      License. However, in accepting such obligations, You may act only
++      on Your own behalf and on Your sole responsibility, not on behalf
++      of any other Contributor, and only if You agree to indemnify,
++      defend, and hold each Contributor harmless for any liability
++      incurred by, or claims asserted against, such Contributor by reason
++      of your accepting any such warranty or additional liability.
++
++   END OF TERMS AND CONDITIONS
++
++   APPENDIX: How to apply the Apache License to your work.
++
++      To apply the Apache License to your work, attach the following
++      boilerplate notice, with the fields enclosed by brackets "[]"
++      replaced with your own identifying information. (Don't include
++      the brackets!)  The text should be enclosed in the appropriate
++      comment syntax for the file format. We also recommend that a
++      file or class name and description of purpose be included on the
++      same "printed page" as the copyright notice for easier
++      identification within third-party archives.
++
++   Copyright [yyyy] [name of copyright owner]
++
++   Licensed under the Apache License, Version 2.0 (the "License");
++   you may not use this file except in compliance with the License.
++   You may obtain a copy of the License at
++
++       http://www.apache.org/licenses/LICENSE-2.0
++
++   Unless required by applicable law or agreed to in writing, software
++   distributed under the License is distributed on an "AS IS" BASIS,
++   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++   See the License for the specific language governing permissions and
++   limitations under the License.
index 0000000000000000000000000000000000000000,eeec33369b5df6b0ded4c35a8da7d419beed7bb5..eeec33369b5df6b0ded4c35a8da7d419beed7bb5
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,27768f1bbac3ce2d055b20d521f12da78d331e8e..27768f1bbac3ce2d055b20d521f12da78d331e8e
mode 000000,100644..100644
Binary files differ
index 0000000000000000000000000000000000000000,9d2dc020a22f263874d37146a44dbc80b3421296..9d2dc020a22f263874d37146a44dbc80b3421296
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,cccdd3d517fc5249beaefa600691cf150f2fa3e6..cccdd3d517fc5249beaefa600691cf150f2fa3e6
mode 000000,100755..100755
--- /dev/null
index 0000000000000000000000000000000000000000,f9553162f122c71b34635112e717c3e733b5b212..f9553162f122c71b34635112e717c3e733b5b212
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,be8ccc6ca44ebae508e2471744830896c80a0b25..be8ccc6ca44ebae508e2471744830896c80a0b25
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,7e8a2979befaee7af09007bd51e3d0fbc878d312..7e8a2979befaee7af09007bd51e3d0fbc878d312
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,ab03d34f19b1e0d1e8714edf3dfca186b2efbc12..ab03d34f19b1e0d1e8714edf3dfca186b2efbc12
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,141f02deba38e6227e0c6b24ef881fd5cdae422a..141f02deba38e6227e0c6b24ef881fd5cdae422a
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,43fcdba5c69a20a1817aa77400ca6cae95b0513d..43fcdba5c69a20a1817aa77400ca6cae95b0513d
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,75aa9ca309d81ce9047e630cc5700e32d406bb8e..75aa9ca309d81ce9047e630cc5700e32d406bb8e
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,a9306ca2ecf970591be242164d7135f5458f929a..a9306ca2ecf970591be242164d7135f5458f929a
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,81a9d6f5da2d5059ad7eb811a0881cd3683ce930..81a9d6f5da2d5059ad7eb811a0881cd3683ce930
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,4cd08b7832459dd21987fd797382824835c7c618..4cd08b7832459dd21987fd797382824835c7c618
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,8563adcc763bb0415ad6ccbee320d108448ec8d8..8563adcc763bb0415ad6ccbee320d108448ec8d8
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,5bf1d0745838fac8ae2974663a0ae5f81dae8dad..5bf1d0745838fac8ae2974663a0ae5f81dae8dad
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,0e95e661e7fccd1b24f433e2ace298effa9064c1..0e95e661e7fccd1b24f433e2ace298effa9064c1
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,1529f9c30cefeeee42cb52df9d7f97d298f2cf0c..1529f9c30cefeeee42cb52df9d7f97d298f2cf0c
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,b1652e2a3b7acef31ccd879fbd4a52bb16749cdd..b1652e2a3b7acef31ccd879fbd4a52bb16749cdd
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,4dae7f630c80c34bdf83c657e880873e53fcfc1b..4dae7f630c80c34bdf83c657e880873e53fcfc1b
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,e9fbdb744d95b9ff2ac17261caf6de8bbffbedfb..e9fbdb744d95b9ff2ac17261caf6de8bbffbedfb
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,c78d8ff145efa770e9a60862f493bc560f6f0e01..c78d8ff145efa770e9a60862f493bc560f6f0e01
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,be30e57843be6feff2c79c33c130f2ce78219085..be30e57843be6feff2c79c33c130f2ce78219085
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,b15a3628f28606da31836b8a76a8ba5f139b838d..b15a3628f28606da31836b8a76a8ba5f139b838d
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,c29b44cb676f1abfac9179d078c3c61c47e96530..c29b44cb676f1abfac9179d078c3c61c47e96530
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,bbc09dc289dd8f9e1275d4451d76a06ce57dcff2..bbc09dc289dd8f9e1275d4451d76a06ce57dcff2
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,a23cd98eb4870e5b1d506b78550012a8532470fa..a23cd98eb4870e5b1d506b78550012a8532470fa
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,5c86a07bdf372d62a09a07aeca63f6a409e59e16..5c86a07bdf372d62a09a07aeca63f6a409e59e16
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,e148e72662513d28b711f93c3c7b44ab2c02c14d..e148e72662513d28b711f93c3c7b44ab2c02c14d
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,6da44088c21e2513a40565aecfef932e07ab7003..6da44088c21e2513a40565aecfef932e07ab7003
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,16febf784ca172c757f4a1d849b445e8b8df225d..16febf784ca172c757f4a1d849b445e8b8df225d
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,ae16dec4ed323c4c5e1e5e6fee1d0577c0135f8d..ae16dec4ed323c4c5e1e5e6fee1d0577c0135f8d
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,70231e6766faf5fbd5d5fa0b50b8052ce00d9418..70231e6766faf5fbd5d5fa0b50b8052ce00d9418
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,027dbf7275055f3fc5934bdb4944e225ab1c9eba..027dbf7275055f3fc5934bdb4944e225ab1c9eba
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,1e49a71bcb5ef91615def7ef62e312f290b8c168..1e49a71bcb5ef91615def7ef62e312f290b8c168
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,4b43ed9bb123861ec65d3a087366dd6364af089e..4b43ed9bb123861ec65d3a087366dd6364af089e
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,c852cb070c92d149bb59bde68c0ff65265520eac..c852cb070c92d149bb59bde68c0ff65265520eac
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,c9a4109313fd70767df4a5b87bb32f45f540fb86..c9a4109313fd70767df4a5b87bb32f45f540fb86
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,17e06966fa80daf9713c03e026093f03550bf75e..17e06966fa80daf9713c03e026093f03550bf75e
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,589c3346b22ad904512ada67df03a15be5b1119c..589c3346b22ad904512ada67df03a15be5b1119c
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,51a99624875fa11d1eb8dee5aed84d487f96ab65..51a99624875fa11d1eb8dee5aed84d487f96ab65
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,e93028d75ccfaf8c05304270797381ae8717ef57..e93028d75ccfaf8c05304270797381ae8717ef57
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,b80b528fe5bbbb30825e34d90406f72b32e68443..b80b528fe5bbbb30825e34d90406f72b32e68443
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,25379f54b8b90fb2a3fe0dfaa7f03a25c179d7b0..25379f54b8b90fb2a3fe0dfaa7f03a25c179d7b0
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,b41ccd3cddcca658489ed4cf0a8319b99a4619f8..b41ccd3cddcca658489ed4cf0a8319b99a4619f8
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,6a76a4efbee43b031ad28663994731f925064a89..6a76a4efbee43b031ad28663994731f925064a89
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,96d605dd9544e98e8c1824174fe1d8a0933f1322..96d605dd9544e98e8c1824174fe1d8a0933f1322
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,30440300e41301b22d035b0cfd9fdb8cc8f230b4..30440300e41301b22d035b0cfd9fdb8cc8f230b4
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,1f694f25c2dc2bc7297f570dbfcde7653a9e7353..1f694f25c2dc2bc7297f570dbfcde7653a9e7353
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,c6a8ad36870b60ec50c3635c5a013ca5039faf6e..c6a8ad36870b60ec50c3635c5a013ca5039faf6e
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,52e0f66cafe07aff0a7ab03077ff47c4160b37c5..52e0f66cafe07aff0a7ab03077ff47c4160b37c5
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,9cc732d46df859320a2d080eddb24877b1d3fdda..9cc732d46df859320a2d080eddb24877b1d3fdda
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,4d3d42523cfaa23b92da77b3c601bee227f83586..4d3d42523cfaa23b92da77b3c601bee227f83586
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,ea02ffc84dbde2bedcaf535e895b533cdb35e7ee..ea02ffc84dbde2bedcaf535e895b533cdb35e7ee
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,eaabbaaad6f9a23fb8a56d78c836b2de9ce1d30a..eaabbaaad6f9a23fb8a56d78c836b2de9ce1d30a
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,e118edc026641211c330f5cbbaaed1d14b3bdf2f..e118edc026641211c330f5cbbaaed1d14b3bdf2f
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,3ff2bb0a987888d8d5600985776da6fec86db2c9..3ff2bb0a987888d8d5600985776da6fec86db2c9
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,73b559afd4240809ae6c43c9ebf0e23626899f57..73b559afd4240809ae6c43c9ebf0e23626899f57
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,8da3bfbf514b04c6f188bb0f5e1185d42c8002d9..8da3bfbf514b04c6f188bb0f5e1185d42c8002d9
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,6bb385a4ca09a5883f39274ed9f9bb096985229c..6bb385a4ca09a5883f39274ed9f9bb096985229c
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,50a9cc1a6dc5bd3c051a18c0ad97717256c34ac5..50a9cc1a6dc5bd3c051a18c0ad97717256c34ac5
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,015f8328d826e12c2b769d3a112cf88c9696acb6..015f8328d826e12c2b769d3a112cf88c9696acb6
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,40f7bac080bce8c1a6b022f60da206d3681aeb17..40f7bac080bce8c1a6b022f60da206d3681aeb17
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,f7e18132941715a4340684e23183054730f3646c..f7e18132941715a4340684e23183054730f3646c
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,07269f7e7d905dbb7283165ffcd330612ac4429c..07269f7e7d905dbb7283165ffcd330612ac4429c
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,a025011d794b20571697a57accbe5d6350690679..a025011d794b20571697a57accbe5d6350690679
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,6a0e78d6617ea9590914be7a51ec3426b833b5eb..6a0e78d6617ea9590914be7a51ec3426b833b5eb
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,13939852cbde5fa3313bf50053204d566d2201e8..13939852cbde5fa3313bf50053204d566d2201e8
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,c9464e03b630417c6f13c2047ac8201c8490b6b3..c9464e03b630417c6f13c2047ac8201c8490b6b3
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,06ed07d8ed352c7bb68ef1776939c1e943b555ff..06ed07d8ed352c7bb68ef1776939c1e943b555ff
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,bc36889f71966b8f01b6bdfd695c060b3efe8c56..bc36889f71966b8f01b6bdfd695c060b3efe8c56
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,0fb1f0206c5afad8aa6717e193568fc25a1453ea..0fb1f0206c5afad8aa6717e193568fc25a1453ea
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,e4e7bf2720a3b6ab1cb57bf51cee4a1d00529f57..e4e7bf2720a3b6ab1cb57bf51cee4a1d00529f57
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,c4c48da7c58b24bf5e5b597cdfedcb1fc91efd4f..c4c48da7c58b24bf5e5b597cdfedcb1fc91efd4f
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,ac7dd0279589d0102a88af011f2f6c0899858c3d..ac7dd0279589d0102a88af011f2f6c0899858c3d
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,59bd446934cba9a3dcaf88dce775346b2e23d077..59bd446934cba9a3dcaf88dce775346b2e23d077
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,74324b60fcfd6ace03d4f783b6ab3a6ce61439c5..74324b60fcfd6ace03d4f783b6ab3a6ce61439c5
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,67566b697b4da7e31b5ada9fe0ed7d1eb4a7c591..67566b697b4da7e31b5ada9fe0ed7d1eb4a7c591
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,295345093b6cd497aba32aa59a8a9e22d3f1e56a..295345093b6cd497aba32aa59a8a9e22d3f1e56a
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,53249c9884b3481f9e21a17be43e7cfae95878e3..53249c9884b3481f9e21a17be43e7cfae95878e3
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,00ca0b21bb3b0d8b303f449f75062e0fc8ec7115..00ca0b21bb3b0d8b303f449f75062e0fc8ec7115
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,4cc523ce4e1fa562daf19fc0eb425c452584353b..4cc523ce4e1fa562daf19fc0eb425c452584353b
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,f19f3dc9a885b9c15240a9bbbe480f516620537c..f19f3dc9a885b9c15240a9bbbe480f516620537c
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,2f934d4cdf40aaec2ccac813090c074ed1e96823..2f934d4cdf40aaec2ccac813090c074ed1e96823
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,e57991806a132a9c5e330ca6fb131cde65d8c61c..e57991806a132a9c5e330ca6fb131cde65d8c61c
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,ca6ee9cea8ec189a088d50559325d4e84ff8ad09..ca6ee9cea8ec189a088d50559325d4e84ff8ad09
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,68dce30206987d28f4c86957884f96714b5b3fc6..68dce30206987d28f4c86957884f96714b5b3fc6
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,57a2ee5a5bae96e8cab30215ea18a976152ead00..57a2ee5a5bae96e8cab30215ea18a976152ead00
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,1fed3832b00152413d1516f4abbd630e9a25480f..1fed3832b00152413d1516f4abbd630e9a25480f
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,e8fdd83e71ec56af6585fc419c001fd283a5bf98..e8fdd83e71ec56af6585fc419c001fd283a5bf98
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,86a3bdafbb877a10e5350a6475f82f20f3409149..86a3bdafbb877a10e5350a6475f82f20f3409149
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,f1834e749c3c5c6af55bd474a5c9446e62af2029..f1834e749c3c5c6af55bd474a5c9446e62af2029
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,fa74e1cb53508bd475c0c4318ae7b0487f3d7a39..fa74e1cb53508bd475c0c4318ae7b0487f3d7a39
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,5cbed85e5e3e8e3f395e0e584e7b9632084d20f1..5cbed85e5e3e8e3f395e0e584e7b9632084d20f1
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,d5bd0d83d10b2ca68563092f7df70743ceba095d..d5bd0d83d10b2ca68563092f7df70743ceba095d
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,3d95cf932f680bbe983277922878aeeca8dd8e5f..3d95cf932f680bbe983277922878aeeca8dd8e5f
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,f3c289497c825e8f2d4bafa1a1e454892e7334fb..f3c289497c825e8f2d4bafa1a1e454892e7334fb
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,90ba91631e78c740e196580b420f6eed7f42b85b..90ba91631e78c740e196580b420f6eed7f42b85b
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,c930ee2ce143eaa8ca4fc28dd75850dacf310bd5..c930ee2ce143eaa8ca4fc28dd75850dacf310bd5
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,87d09ab96125b392eccda31693439ca78f5c0d58..87d09ab96125b392eccda31693439ca78f5c0d58
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,87d09ab96125b392eccda31693439ca78f5c0d58..87d09ab96125b392eccda31693439ca78f5c0d58
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,2ff1ded00f8ac3e50bb08373a028ff88aee483d5..2ff1ded00f8ac3e50bb08373a028ff88aee483d5
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,38441c588d3b977a98cfeafc74b9e6c1b002ad06..38441c588d3b977a98cfeafc74b9e6c1b002ad06
mode 000000,100644..100644
--- /dev/null
index 0000000000000000000000000000000000000000,86b126af2e3b9d59f07200a20357aaf369f55533..86b126af2e3b9d59f07200a20357aaf369f55533
mode 000000,100644..100644
Binary files differ
index 0000000000000000000000000000000000000000,d74934b00ea78d1268cc3db0d23b481121e26611..d74934b00ea78d1268cc3db0d23b481121e26611
mode 000000,100755..100755
--- /dev/null