This is an automated email from the ASF dual-hosted git repository.

xuanwo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-opendal.git


The following commit(s) were added to refs/heads/main by this push:
     new a2375538c refactor(services/http): Migrate http task to new behavior 
test planner (#3362)
a2375538c is described below

commit a2375538cb197e5c593dc767b35449700f2ecae5
Author: Nadeshiko Manju <[email protected]>
AuthorDate: Mon Oct 23 16:56:19 2023 +0800

    refactor(services/http): Migrate http task to new behavior test planner 
(#3362)
    
    * refactor(services/http): Migrate http task to new behavior test planner
    
    Signed-off-by: Manjusaka <[email protected]>
    
    * remove file
    
    Signed-off-by: Manjusaka <[email protected]>
    
    * Update code
    
    Signed-off-by: Manjusaka <[email protected]>
    
    * Update licenserc.toml
    
    ---------
    
    Signed-off-by: Manjusaka <[email protected]>
---
 .../services/http/caddy/action.yml                 |   44 +-
 .../services/http/nginx/action.yml                 |   44 +-
 .github/workflows/service_test_http.yml            |  104 --
 fixtures/data/normal_dir/.gitkeep                  |    0
 fixtures/data/normal_file.txt                      | 1041 ++++++++++++++++++++
 .../data/special_dir  !@#$%^&()_+-=;',/.gitkeep    |    0
 fixtures/data/special_file  !@#$%^&()_+-=;',.txt   | 1041 ++++++++++++++++++++
 fixtures/http/Caddyfile                            |   11 +
 .../http/docker-compose-caddy.yml                  |   36 +-
 .../http/docker-compose-nginx.yml                  |   36 +-
 fixtures/http/nginx.conf                           |    2 +-
 licenserc.toml                                     |    1 +
 12 files changed, 2147 insertions(+), 213 deletions(-)

diff --git a/licenserc.toml b/.github/services/http/caddy/action.yml
similarity index 63%
copy from licenserc.toml
copy to .github/services/http/caddy/action.yml
index af50cef8f..f3c03a8d4 100644
--- a/licenserc.toml
+++ b/.github/services/http/caddy/action.yml
@@ -15,30 +15,20 @@
 # specific language governing permissions and limitations
 # under the License.
 
-headerPath = "Apache-2.0-ASF.txt"
-
-excludes = [
-  # Examples are served as public domain content.
-  "examples",
-
-  # Well known generated files
-  "**/Cargo.lock",
-  "**/yarn.lock",
-
-  # Python binding related files
-  "**/venv/**",
-
-  # Website generated files
-  "website/build",
-  "website/.docusaurus",
-
-  # Documents
-  "**/*.md",
-  "**/*.mdx",
-
-  # Test files
-  "**/tests/data/**",
-
-  # Third-party source files
-  "scripts/merge_local_staging.sh",
-]
+name: caddy
+description: 'Behavior test for http service in caddy'
+
+runs:
+    using: "composite"
+    steps:
+    - name: Setup etcd cluster
+      shell: bash
+      working-directory: fixtures/http
+      run: docker-compose -f docker-compose-caddy.yml up -d
+    - name: Setup
+      shell: bash
+      run: |
+          cat << EOF >> $GITHUB_ENV
+          OPENDAL_HTTP_ENDPOINT=http://127.0.0.1:8080
+          OPENDAL_DISABLE_RANDOM_ROOT=true
+          EOF
\ No newline at end of file
diff --git a/licenserc.toml b/.github/services/http/nginx/action.yml
similarity index 63%
copy from licenserc.toml
copy to .github/services/http/nginx/action.yml
index af50cef8f..9a735bafc 100644
--- a/licenserc.toml
+++ b/.github/services/http/nginx/action.yml
@@ -15,30 +15,20 @@
 # specific language governing permissions and limitations
 # under the License.
 
-headerPath = "Apache-2.0-ASF.txt"
-
-excludes = [
-  # Examples are served as public domain content.
-  "examples",
-
-  # Well known generated files
-  "**/Cargo.lock",
-  "**/yarn.lock",
-
-  # Python binding related files
-  "**/venv/**",
-
-  # Website generated files
-  "website/build",
-  "website/.docusaurus",
-
-  # Documents
-  "**/*.md",
-  "**/*.mdx",
-
-  # Test files
-  "**/tests/data/**",
-
-  # Third-party source files
-  "scripts/merge_local_staging.sh",
-]
+name: nginx
+description: 'Behavior test for http service in nginx'
+
+runs:
+    using: "composite"
+    steps:
+    - name: Setup etcd cluster
+      shell: bash
+      working-directory: fixtures/http
+      run: docker-compose -f docker-compose-nginx.yml up -d
+    - name: Setup
+      shell: bash
+      run: |
+          cat << EOF >> $GITHUB_ENV
+          OPENDAL_HTTP_ENDPOINT=http://127.0.0.1:8080
+          OPENDAL_DISABLE_RANDOM_ROOT=true
+          EOF
\ No newline at end of file
diff --git a/.github/workflows/service_test_http.yml 
b/.github/workflows/service_test_http.yml
deleted file mode 100644
index e8e4607c7..000000000
--- a/.github/workflows/service_test_http.yml
+++ /dev/null
@@ -1,104 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you 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.
-
-name: Service Test HTTP
-
-on:
-  push:
-    branches:
-      - main
-  pull_request:
-    branches:
-      - main
-    paths:
-      - "core/src/**"
-      - "core/tests/**"
-      - "!core/src/docs/**"
-      - "!core/src/services/**"
-      - "core/src/services/http/**"
-      - ".github/workflows/service_test_http.yml"
-      - "fixtures/http/**"
-
-concurrency:
-  group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
-  cancel-in-progress: true
-
-jobs:
-  nginx:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v4
-
-      - name: Start nginx
-        shell: bash
-        working-directory: core
-        run: |
-          mkdir /tmp/static
-          cp -r tests/data/* /tmp/static
-          cd ..
-          nginx -c `pwd`/fixtures/http/nginx.conf
-
-      - name: Setup Rust toolchain
-        uses: ./.github/actions/setup
-        with:
-          need-nextest: true
-
-      - name: Test
-        shell: bash
-        working-directory: core
-        run: cargo nextest run behavior
-        env:
-          OPENDAL_TEST: http
-          OPENDAL_HTTP_ENDPOINT: http://127.0.0.1:8080
-          OPENDAL_DISABLE_RANDOM_ROOT: true
-
-  caddy:
-    runs-on: ${{ matrix.os }}
-    strategy:
-      matrix:
-        os:
-          - ubuntu-latest
-    steps:
-      - uses: actions/checkout@v4
-
-      # caddy 2.5.2 can't pass our test cases for 
https://github.com/caddyserver/caddy/issues/4923
-      # Use the latest beta version instead
-      - name: Start caddy
-        shell: bash
-        working-directory: core
-        run: |
-          VERSION="2.6.0-beta.3"
-
-          curl -sSL 
https://github.com/caddyserver/caddy/releases/download/v${VERSION}/caddy_${VERSION}_linux_amd64.tar.gz
 -o caddy_linux_amd64.tar.gz
-          tar -xvf caddy_linux_amd64.tar.gz
-
-          mkdir /tmp/static
-          cp -r tests/data/* /tmp/static
-          ./caddy file-server --root /tmp/static --listen 127.0.0.1:8080 
--access-log &
-
-      - name: Setup Rust toolchain
-        uses: ./.github/actions/setup
-        with:
-          need-nextest: true
-      - name: Test
-        shell: bash
-        working-directory: core
-        run: cargo nextest run behavior
-        env:
-          OPENDAL_TEST: http
-          OPENDAL_HTTP_ENDPOINT: http://127.0.0.1:8080
-          OPENDAL_DISABLE_RANDOM_ROOT: true
diff --git a/fixtures/data/normal_dir/.gitkeep 
b/fixtures/data/normal_dir/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/fixtures/data/normal_file.txt b/fixtures/data/normal_file.txt
new file mode 100644
index 000000000..9f37f432f
--- /dev/null
+++ b/fixtures/data/normal_file.txt
@@ -0,0 +1,1041 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
diff --git a/fixtures/data/special_dir  !@#$%^&()_+-=;',/.gitkeep 
b/fixtures/data/special_dir  !@#$%^&()_+-=;',/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/fixtures/data/special_file  !@#$%^&()_+-=;',.txt 
b/fixtures/data/special_file  !@#$%^&()_+-=;',.txt
new file mode 100644
index 000000000..9f37f432f
--- /dev/null
+++ b/fixtures/data/special_file  !@#$%^&()_+-=;',.txt  
@@ -0,0 +1,1041 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
+OpenDAL: access data freely.
diff --git a/fixtures/http/Caddyfile b/fixtures/http/Caddyfile
new file mode 100644
index 000000000..2c5729aaf
--- /dev/null
+++ b/fixtures/http/Caddyfile
@@ -0,0 +1,11 @@
+{
+    http_port 8080
+}
+
+:8080 {
+    root * /tmp/static
+    file_server
+    log {
+        output stdout
+    }
+}
\ No newline at end of file
diff --git a/licenserc.toml b/fixtures/http/docker-compose-caddy.yml
similarity index 63%
copy from licenserc.toml
copy to fixtures/http/docker-compose-caddy.yml
index af50cef8f..b149d0c2f 100644
--- a/licenserc.toml
+++ b/fixtures/http/docker-compose-caddy.yml
@@ -15,30 +15,12 @@
 # specific language governing permissions and limitations
 # under the License.
 
-headerPath = "Apache-2.0-ASF.txt"
-
-excludes = [
-  # Examples are served as public domain content.
-  "examples",
-
-  # Well known generated files
-  "**/Cargo.lock",
-  "**/yarn.lock",
-
-  # Python binding related files
-  "**/venv/**",
-
-  # Website generated files
-  "website/build",
-  "website/.docusaurus",
-
-  # Documents
-  "**/*.md",
-  "**/*.mdx",
-
-  # Test files
-  "**/tests/data/**",
-
-  # Third-party source files
-  "scripts/merge_local_staging.sh",
-]
+version: '3.8'
+services:
+  caddy:
+    image: caddy:latest
+    ports:
+      - 8080:8080
+    volumes:
+      - ../data:/tmp/static
+      - ./Caddyfile:/etc/caddy/Caddyfile
\ No newline at end of file
diff --git a/licenserc.toml b/fixtures/http/docker-compose-nginx.yml
similarity index 63%
copy from licenserc.toml
copy to fixtures/http/docker-compose-nginx.yml
index af50cef8f..73343e23a 100644
--- a/licenserc.toml
+++ b/fixtures/http/docker-compose-nginx.yml
@@ -15,30 +15,12 @@
 # specific language governing permissions and limitations
 # under the License.
 
-headerPath = "Apache-2.0-ASF.txt"
-
-excludes = [
-  # Examples are served as public domain content.
-  "examples",
-
-  # Well known generated files
-  "**/Cargo.lock",
-  "**/yarn.lock",
-
-  # Python binding related files
-  "**/venv/**",
-
-  # Website generated files
-  "website/build",
-  "website/.docusaurus",
-
-  # Documents
-  "**/*.md",
-  "**/*.mdx",
-
-  # Test files
-  "**/tests/data/**",
-
-  # Third-party source files
-  "scripts/merge_local_staging.sh",
-]
+version: '3.8'
+services:
+  nginx:
+    image: nginx:latest
+    ports:
+      - 8080:8080
+    volumes:
+      - ./nginx.conf:/etc/nginx/nginx.conf
+      - ../data:/tmp/static
\ No newline at end of file
diff --git a/fixtures/http/nginx.conf b/fixtures/http/nginx.conf
index 4d36830b2..c3105bf88 100644
--- a/fixtures/http/nginx.conf
+++ b/fixtures/http/nginx.conf
@@ -7,7 +7,7 @@ events {
 
 http {
   server {
-    listen       127.0.0.1:8080;
+    listen       0.0.0.0:8080;
     server_name  localhost;
     access_log   /tmp/access.log;
     root         /tmp/static;
diff --git a/licenserc.toml b/licenserc.toml
index af50cef8f..53882a6b2 100644
--- a/licenserc.toml
+++ b/licenserc.toml
@@ -38,6 +38,7 @@ excludes = [
 
   # Test files
   "**/tests/data/**",
+  "**/fixtures/data/**",
 
   # Third-party source files
   "scripts/merge_local_staging.sh",

Reply via email to