[
  {
    "path": ".JuliaFormatter.toml",
    "content": "\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n# https://github.com/domluna/JuliaFormatter.jl/blob/master/README.md\n\nwhitespace_ops_in_indices = true\nremove_extra_newlines = true\nwhitespace_in_kwargs = false\n"
  },
  {
    "path": ".asf.yaml",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\n# https://cwiki.apache.org/confluence/display/INFRA/Git+-+.asf.yaml+features\n\ngithub:\n  description: \"Official Julia implementation of Apache Arrow\"\n  homepage: https://arrow.apache.org/julia/\n  labels:\n    - apache-arrow\n    - julia\n  features:\n    issues: true\n    discussions: true\n  enabled_merge_buttons:\n    merge: false\n    rebase: true\n    squash: true\n  protected_branches:\n    main:\n      required_linear_history: true\n\nnotifications:\n  commits: commits@arrow.apache.org\n  issues_status: issues@arrow.apache.org\n  issues_comment: github@arrow.apache.org\n  pullrequests: github@arrow.apache.org\n  discussions: user@arrow.apache.org\n\n# publishes the content of the `asf-site` branch to\n# https://arrow.apache.org/julia/\npublish:\n  whoami: asf-site\n  subdir: julia\n"
  },
  {
    "path": ".github/dependabot.yml",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\nversion: 2\nupdates:\n  - package-ecosystem: \"github-actions\"\n    directory: \"/\"\n    schedule:\n      interval: \"weekly\"\n"
  },
  {
    "path": ".github/workflows/CompatHelper.yml",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\nname: CompatHelper\non:\n  schedule:\n    - cron: 0 0 * * *\n  workflow_dispatch:\npermissions:\n  contents: write\n  pull-requests: write\njobs:\n  CompatHelper:\n    runs-on: ubuntu-latest\n    timeout-minutes: 15\n    steps:\n      - name: Check if Julia is already available in the PATH\n        id: julia_in_path\n        run: which julia\n        continue-on-error: true\n      - name: Install Julia, but only if it is not already available in the PATH\n        uses: julia-actions/setup-julia@v3\n        with:\n          version: '1'\n          arch: ${{ runner.arch }}\n        if: steps.julia_in_path.outcome != 'success'\n      - name: \"Add the General registry via Git\"\n        run: |\n          import Pkg\n          ENV[\"JULIA_PKG_SERVER\"] = \"\"\n          Pkg.Registry.add(\"General\")\n        shell: julia --color=yes {0}\n      - name: \"Install CompatHelper\"\n        run: |\n          import Pkg\n          name = \"CompatHelper\"\n          uuid = \"aa819f21-2bde-4658-8897-bab36330d9b7\"\n          version = \"3\"\n          Pkg.add(; name, uuid, version)\n        shell: julia --color=yes {0}\n      - name: \"Run CompatHelper\"\n        run: |\n          import CompatHelper\n          CompatHelper.main()\n        shell: julia --color=yes {0}\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n          COMPATHELPER_PRIV: ${{ secrets.DOCUMENTER_KEY }}\n          # COMPATHELPER_PRIV: ${{ secrets.COMPATHELPER_PRIV }}\n"
  },
  {
    "path": ".github/workflows/TagBot.yml",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\nname: TagBot\non:\n  issue_comment:\n    types:\n      - created\n  workflow_dispatch:\njobs:\n  TagBot:\n    if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot'\n    runs-on: ubuntu-latest\n    timeout-minutes: 5\n    steps:\n      - uses: JuliaRegistries/TagBot@v1\n        with:\n          token: ${{ secrets.GITHUB_TOKEN }}\n          ssh: ${{ secrets.DOCUMENTER_KEY }}\n"
  },
  {
    "path": ".github/workflows/ci.yml",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\nname: CI\non:\n  pull_request:\n  push:\n    branches:\n      - '**'\n      - '!dependabot/**'\n    tags:\n      - '**'\njobs:\n  license:\n    name: Audit licenses\n    runs-on: ubuntu-latest\n    timeout-minutes: 5\n    steps:\n      - uses: actions/checkout@v6\n      - uses: actions/setup-python@v6\n        with:\n          python-version: '3.x'\n      - name: Run Release audit tool (Rat)\n        run: dev/release/run_rat.sh .\n  release:\n    name: Verify release - ${{ matrix.os }}\n    runs-on: ${{ matrix.os }}\n    timeout-minutes: 30\n    strategy:\n      fail-fast: false\n      matrix:\n        os:\n          - macos-latest\n          - ubuntu-latest\n    steps:\n      - uses: actions/checkout@v6\n      - name: Install dependencies\n        if: matrix.os == 'macos-latest'\n        run: |\n          brew install julia subversion\n      - name: Install dependencies\n        if: matrix.os == 'ubuntu-latest'\n        run: |\n          sudo apt update\n          sudo apt install -y -V subversion\n      - name: Create\n        run: |\n          git config user.name \"github-actions[bot]\"\n          git config user.email \"github-actions[bot]@users.noreply.github.com\"\n          RELEASE_DEFAULT=0 dev/release/release_rc.sh 100\n      - uses: actions/cache@v5\n        with:\n          path: ~/.julia/artifacts\n          key: ${{ runner.os }}-release-${{ hashFiles('**/Project.toml') }}\n          restore-keys: |\n            ${{ runner.os }}-release-\n      - name: Verify\n        run: |\n          version=$(grep -o '^version = \".*\"' \"Project.toml\" | \\\n                      sed -e 's/^version = \"//g' \\\n                          -e 's/\"$//g')\n          VERIFY_DEFAULT=0 dev/release/verify_rc.sh ${version} 100\n  test:\n    name: ${{ matrix.pkg.name }} - Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.nthreads }} threads - ${{ github.event_name }}\n    runs-on: ${{ matrix.os }}\n    timeout-minutes: 45\n    strategy:\n      fail-fast: false\n      matrix:\n        pkg:\n          - name: Arrow.jl\n            dir: '.'\n          - name: ArrowTypes.jl\n            dir: './src/ArrowTypes'\n        version:\n          - 'min'\n          - 'lts'\n          - '1' # automatically expands to the latest stable 1.x release of Julia\n          - 'pre' # expands to latest alpha, beta or RC, if available, otherwise same as `1`\n        os:\n          - ubuntu-latest\n          - macos-latest\n        nthreads:\n          - 1\n          - 2\n    steps:\n      - uses: actions/checkout@v6\n      - uses: julia-actions/setup-julia@v3\n        with:\n          version: ${{ matrix.version }}\n      - uses: actions/cache@v5\n        env:\n          cache-name: cache-artifacts\n        with:\n          path: ~/.julia/artifacts\n          key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}\n          restore-keys: |\n            ${{ runner.os }}-test-${{ env.cache-name }}-\n            ${{ runner.os }}-test-\n            ${{ runner.os }}-\n      - uses: julia-actions/julia-buildpkg@v1.6\n        with:\n          project: ${{ matrix.pkg.dir }}\n      - name: Dev local ArrowTypes for Arrow.jl tests\n        if: matrix.pkg.name == 'Arrow.jl'\n        shell: julia --project=. {0}\n        run: |\n          using Pkg\n          Pkg.develop(PackageSpec(path=\"src/ArrowTypes\"))\n      - uses: julia-actions/julia-runtest@v1\n        env:\n          JULIA_NUM_THREADS: ${{ matrix.nthreads }}\n        with:\n          project: ${{ matrix.pkg.dir }}\n      - uses: julia-actions/julia-processcoverage@v1\n      - uses: codecov/codecov-action@v6\n        with:\n          files: lcov.info\n  test_monorepo:\n    name: Monorepo dev - Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}\n    runs-on: ${{ matrix.os }}\n    timeout-minutes: 30\n    strategy:\n      fail-fast: true\n      matrix:\n        version:\n          - '1' # automatically expands to the latest stable 1.x release of Julia\n        os:\n          - ubuntu-latest\n        arch:\n          - x64\n    steps:\n      - uses: actions/checkout@v6\n      - uses: julia-actions/setup-julia@v3\n        with:\n          version: ${{ matrix.version }}\n          arch: ${{ matrix.arch }}\n      - uses: actions/cache@v5\n        env:\n          cache-name: cache-artifacts\n        with:\n          path: ~/.julia/artifacts\n          key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}\n          restore-keys: |\n            ${{ runner.os }}-test-${{ env.cache-name }}-\n            ${{ runner.os }}-test-\n            ${{ runner.os }}-\n      - name: Dev monorepo dependencies\n        shell: julia --project=monorepo {0}\n        run: |\n          using Pkg;\n          Pkg.develop([PackageSpec(path=\".\"), PackageSpec(path=\"src/ArrowTypes\")])\n      - name: Run monorepo tests\n        continue-on-error: false\n        run: >\n          julia --color=yes --project=monorepo -e 'using Pkg; Pkg.test(\"Arrow\")'\n  docs:\n    name: Documentation\n    runs-on: ubuntu-latest\n    timeout-minutes: 5\n    steps:\n      - uses: actions/checkout@v6\n      - uses: julia-actions/julia-buildpkg@latest\n      - uses: julia-actions/julia-docdeploy@latest\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n          DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }}\n  Format:\n    runs-on: ubuntu-latest\n    timeout-minutes: 5\n    steps:\n      - uses: julia-actions/setup-julia@v3\n      - uses: actions/checkout@v6\n      - name: Install JuliaFormatter and format\n        # This will use the latest version by default but you can set the version like so:\n        # julia  -e 'using Pkg; Pkg.add(PackageSpec(name=\"JuliaFormatter\", version=\"0.13.0\"))'\n        run: |\n          julia  -e 'using Pkg; Pkg.add(PackageSpec(name=\"JuliaFormatter\"))'\n          julia  -e 'using JuliaFormatter; format(\".\", verbose=true)'\n      - name: Format check\n        run: |\n          julia -e '\n          out = Cmd(`git diff --name-only`) |> read |> String\n          if out == \"\"\n              exit(0)\n          else\n              @error \"Some files have not been formatted !!!\"\n              write(stdout, out)\n              exit(1)\n          end'\n"
  },
  {
    "path": ".github/workflows/ci_nightly.yml",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\nname: Nightly\non:\n  schedule:\n    - cron: 0 0 * * 1 # run once a week on Mondays\n  workflow_dispatch:\njobs:\n  test:\n    name: ${{ matrix.pkg.name }} - Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ matrix.nthreads }} threads - ${{ github.event_name }}\n    runs-on: ${{ matrix.os }}\n    timeout-minutes: 45\n    strategy:\n      fail-fast: false\n      matrix:\n        pkg:\n          - name: Arrow.jl\n            dir: '.'\n          - name: ArrowTypes.jl\n            dir: './src/ArrowTypes'\n        version:\n          - 'nightly'\n        os:\n          - ubuntu-latest\n        arch:\n          - x64\n        nthreads: [1, 2]\n    steps:\n      - uses: actions/checkout@v6\n      - uses: julia-actions/setup-julia@v3\n        with:\n          version: ${{ matrix.version }}\n          arch: ${{ matrix.arch }}\n      - uses: actions/cache@v5\n        env:\n          cache-name: cache-artifacts\n        with:\n          path: ~/.julia/artifacts\n          key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}\n          restore-keys: |\n            ${{ runner.os }}-test-${{ env.cache-name }}-\n            ${{ runner.os }}-test-\n            ${{ runner.os }}-\n      - uses: julia-actions/julia-buildpkg@v1.6\n        with:\n          project: ${{ matrix.pkg.dir }}\n      - uses: julia-actions/julia-runtest@v1\n        env:\n          JULIA_NUM_THREADS: ${{ matrix.nthreads }}\n        with:\n          project: ${{ matrix.pkg.dir }}\n      - uses: julia-actions/julia-processcoverage@v1\n      - uses: codecov/codecov-action@v6\n        with:\n          files: lcov.info\n  test_monorepo:\n    name: Monorepo dev - Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}\n    runs-on: ${{ matrix.os }}\n    timeout-minutes: 30\n    strategy:\n      fail-fast: true\n      matrix:\n        version:\n          - 'nightly'\n        os:\n          - ubuntu-latest\n        arch:\n          - x64\n    steps:\n      - uses: actions/checkout@v6\n      - uses: julia-actions/setup-julia@v3\n        with:\n          version: ${{ matrix.version }}\n          arch: ${{ matrix.arch }}\n      - uses: actions/cache@v5\n        env:\n          cache-name: cache-artifacts\n        with:\n          path: ~/.julia/artifacts\n          key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}\n          restore-keys: |\n            ${{ runner.os }}-test-${{ env.cache-name }}-\n            ${{ runner.os }}-test-\n            ${{ runner.os }}-\n      - name: Dev monorepo dependencies\n        shell: julia --project=monorepo {0}\n        run: |\n          using Pkg;\n          Pkg.develop([PackageSpec(path=\".\"), PackageSpec(path=\"src/ArrowTypes\")])\n      - name: Run monorepo tests\n        continue-on-error: false\n        run: >\n          julia --color=yes --project=monorepo -e 'using Pkg; Pkg.test(\"Arrow\")'\n"
  },
  {
    "path": ".gitignore",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\nManifest.toml\nManifest-v*.toml\n.DS_STORE\n*.jl.cov\n*.jl.*.cov\n*.jl.mem\n\ntest/_scrap.jl\n.DS_STORE\n"
  },
  {
    "path": "LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "NOTICE",
    "content": "Apache Arrow Julia\nCopyright 2016-2025 The Apache Software Foundation\n\nThis product includes software developed at\nThe Apache Software Foundation (https://www.apache.org/).\n"
  },
  {
    "path": "Project.toml",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nname = \"Arrow\"\nuuid = \"69666777-d1a9-59fb-9406-91d4454c9d45\"\nauthors = [\"quinnj <quinn.jacobd@gmail.com>\"]\nversion = \"2.8.1\"\n\n[deps]\nArrowTypes = \"31f734f8-188a-4ce0-8406-c8a06bd891cd\"\nBitIntegers = \"c3b6d118-76ef-56ca-8cc7-ebb389d030a1\"\nCodecLz4 = \"5ba52731-8f18-5e0d-9241-30f10d1ec561\"\nCodecZstd = \"6b39b394-51ab-5f42-8807-6242bab2b4c2\"\nConcurrentUtilities = \"f0e56b4a-5159-44fe-b623-3e5288b988bb\"\nDataAPI = \"9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a\"\nDates = \"ade2ca70-3891-5945-98fb-dc099432e06a\"\nEnumX = \"4e289a0a-7415-4d19-859d-a7e5c4648b56\"\nMmap = \"a63ad114-7e13-5084-954f-fe012c677804\"\nPooledArrays = \"2dfb63ee-cc39-5dd5-95bd-886bf059d720\"\nSentinelArrays = \"91c51154-3ec4-41a3-a24f-3f23e20d615c\"\nStringViews = \"354b36f9-a18e-4713-926e-db85100087ba\"\nTables = \"bd369af6-aec1-5ad0-b16a-f7cc5008161c\"\nTimeZones = \"f269a46b-ccf7-5d73-abea-4c690281aa53\"\nTranscodingStreams = \"3bb67fe8-82b1-5028-8e26-92a6c54297fa\"\nUUIDs = \"cf7118a7-6976-5b1a-9a39-7adc72f591a4\"\n\n[compat]\nArrowTypes = \"1.1,2\"\nBitIntegers = \"0.2, 0.3\"\nCodecLz4 = \"0.4\"\nCodecZstd = \"0.7, 0.8\"\nConcurrentUtilities = \"2\"\nDataAPI = \"1\"\nEnumX = \"1\"\nPooledArrays = \"0.5, 1.0\"\nSentinelArrays = \"1\"\nStringViews = \"1\"\nTables = \"1.1\"\nTimeZones = \"1\"\nTranscodingStreams = \"0.9.12, 0.10, 0.11\"\njulia = \"1.9\"\n"
  },
  {
    "path": "README.md",
    "content": "<!---\n  Licensed to the Apache Software Foundation (ASF) under one\n  or more contributor license agreements.  See the NOTICE file\n  distributed with this work for additional information\n  regarding copyright ownership.  The ASF licenses this file\n  to you under the Apache License, Version 2.0 (the\n  \"License\"); you may not use this file except in compliance\n  with the License.  You may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\n  Unless required by applicable law or agreed to in writing,\n  software distributed under the License is distributed on an\n  \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  KIND, either express or implied.  See the License for the\n  specific language governing permissions and limitations\n  under the License.\n-->\n\n# Arrow\n\n[![docs](https://img.shields.io/badge/docs-latest-blue&logo=julia)](https://arrow.apache.org/julia/)\n[![CI](https://github.com/apache/arrow-julia/workflows/CI/badge.svg)](https://github.com/apache/arrow-julia/actions?query=workflow%3ACI)\n[![codecov](https://app.codecov.io/gh/apache/arrow-julia/branch/main/graph/badge.svg)](https://app.codecov.io/gh/apache/arrow-julia)\n\n[![deps](https://juliahub.com/docs/Arrow/deps.svg)](https://juliahub.com/ui/Packages/Arrow/QnF3w?t=2)\n[![version](https://juliahub.com/docs/Arrow/version.svg)](https://juliahub.com/ui/Packages/Arrow/QnF3w)\n[![pkgeval](https://juliahub.com/docs/Arrow/pkgeval.svg)](https://juliahub.com/ui/Packages/Arrow/QnF3w)\n\nThis is a pure Julia implementation of the [Apache Arrow](https://arrow.apache.org) data standard.  This package provides Julia `AbstractVector` objects for\nreferencing data that conforms to the Arrow standard.  This allows users to seamlessly interface Arrow formatted data with a great deal of existing Julia code.\n\nPlease see this [document](https://arrow.apache.org/docs/format/Columnar.html#physical-memory-layout) for a description of the Arrow memory layout.\n\n## Installation\n\nThe package can be installed by typing in the following in a Julia REPL:\n\n```julia\njulia> using Pkg; Pkg.add(\"Arrow\")\n```\n\n## Local Development\n\nWhen developing on Arrow.jl it is recommended that you run the following to ensure that any\nchanges to ArrowTypes.jl are immediately available to Arrow.jl without requiring a release:\n\n```sh\njulia --project -e 'using Pkg; Pkg.develop(path=\"src/ArrowTypes\")'\n```\n\n## Format Support\n\nThis implementation supports the 1.0 version of the specification, including support for:\n  * All primitive data types\n  * All nested data types\n  * Dictionary encodings and messages\n  * Extension types\n  * Streaming, file, record batch, and replacement and isdelta dictionary messages\n\nIt currently doesn't include support for:\n  * Tensors or sparse tensors\n  * Flight RPC\n  * C data interface\n\nThird-party data formats:\n  * CSV, parquet and avro support via the existing [CSV.jl](https://github.com/JuliaData/CSV.jl), [Parquet.jl](https://github.com/JuliaIO/Parquet.jl) and [Avro.jl](https://github.com/JuliaData/Avro.jl) packages\n  * Other Tables.jl-compatible packages automatically supported ([DataFrames.jl](https://github.com/JuliaData/DataFrames.jl), [JSONTables.jl](https://github.com/JuliaData/JSONTables.jl), [JuliaDB.jl](https://github.com/JuliaData/JuliaDB.jl), [SQLite.jl](https://github.com/JuliaDatabases/SQLite.jl), [MySQL.jl](https://github.com/JuliaDatabases/MySQL.jl), [JDBC.jl](https://github.com/JuliaDatabases/JDBC.jl), [ODBC.jl](https://github.com/JuliaDatabases/ODBC.jl), [XLSX.jl](https://github.com/felipenoris/XLSX.jl), etc.)\n  * No current Julia packages support ORC\n\nSee the [full documentation](https://arrow.apache.org/julia/) for details on reading and writing arrow data.\n"
  },
  {
    "path": "codecov.yaml",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\n---\ncodecov:\n  notify:\n    # Wait for all \"test\" matrix jobs\n    after_n_builds: 6\n"
  },
  {
    "path": "dev/release/.dir-locals.el",
    "content": ";;; Licensed to the Apache Software Foundation (ASF) under one\n;;; or more contributor license agreements.  See the NOTICE file\n;;; distributed with this work for additional information\n;;; regarding copyright ownership.  The ASF licenses this file\n;;; to you under the Apache License, Version 2.0 (the\n;;; \"License\"); you may not use this file except in compliance\n;;; with the License.  You may obtain a copy of the License at\n;;;\n;;;   http://www.apache.org/licenses/LICENSE-2.0\n;;;\n;;; Unless required by applicable law or agreed to in writing,\n;;; software distributed under the License is distributed on an\n;;; \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n;;; KIND, either express or implied.  See the License for the\n;;; specific language governing permissions and limitations\n;;; under the License.\n\n((sh-mode . ((indent-tabs-mode . nil)\n             (sh-basic-offset  . 2))))\n"
  },
  {
    "path": "dev/release/.gitignore",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\n/apache-rat-*.jar\n/dist/\n/filtered_rat.txt\n/rat.xml\n"
  },
  {
    "path": "dev/release/README.md",
    "content": "<!---\n  Licensed to the Apache Software Foundation (ASF) under one\n  or more contributor license agreements.  See the NOTICE file\n  distributed with this work for additional information\n  regarding copyright ownership.  The ASF licenses this file\n  to you under the Apache License, Version 2.0 (the\n  \"License\"); you may not use this file except in compliance\n  with the License.  You may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\n  Unless required by applicable law or agreed to in writing,\n  software distributed under the License is distributed on an\n  \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  KIND, either express or implied.  See the License for the\n  specific language governing permissions and limitations\n  under the License.\n-->\n\n# Release\n\n## Overview\n\n  1. Test the revision to be released\n  2. Increment version number in `Project.toml`\n  3. Prepare RC and vote (detailed later)\n  4. Publish (detailed later)\n\n### Prepare RC and vote\n\nRun `dev/release/release_rc.sh` on working copy of `git@github.com:apache/arrow-julia` not your fork:\n\n```console\n$ git clone git@github.com:apache/arrow-julia.git\n$ dev/release/release_rc.sh ${RC}\n(Send a vote email to dev@arrow.apache.org.\n You can use a draft shown by release_rc.sh for the email.)\n```\n\nHere is an example to release RC1:\n\n```console\n$ dev/release/release_rc.sh 1\n```\n\nThe argument of `release_rc.sh` is the RC number. If RC1 has a problem, we'll increment the RC number such as RC2, RC3 and so on.\n\nRequirements to run `release_rc.sh`:\n\n  * You must be an Apache Arrow committer or PMC member\n  * You must prepare your PGP key for signing\n\nIf you don't have a PGP key, https://infra.apache.org/release-signing.html#generate may be helpful.\n\nYour PGP key must be registered to the followings:\n\n  * https://dist.apache.org/repos/dist/dev/arrow/KEYS\n  * https://dist.apache.org/repos/dist/release/arrow/KEYS\n\nSee the header comment of them how to add a PGP key.\n\nApache arrow committers can update them by Subversion client with their ASF account. e.g.:\n\n```console\n$ svn co https://dist.apache.org/repos/dist/dev/arrow\n$ cd arrow\n$ editor KEYS\n$ svn ci KEYS\n```\n\n### Publish\n\nWe need to do the followings to publish a new release:\n\n  * Publish to apache.org\n  * Publish to the Julia General registry\n\nRun `dev/release/release.sh` to publish to apache.org:\n\n```console\n$ dev/release/release.sh ${VERSION} ${RC}\n```\n\nHere is an example to release 2.2.1 RC1:\n\n```console\n$ dev/release/release.sh 2.2.1 1\n```\n\nAdd the release to ASF's report database via [Apache Committee Report Helper](https://reporter.apache.org/addrelease.html?arrow).\n\nTo publish the release to the Julia General registry, navigate to the GitHub commit where the project version was incremented in the Project.toml file (step 2 above), then post a comment on the commit with the following:\n\n```markdown\n@JuliaRegistrator register\n```\n\nJuliaRegistrator will respond saying it has opened a pull request to the General registry and under normal circumstances, will be merged automatically.\n\nIf ArrowTypes is also registered, we also need to post a comment on the commit with the following:\n\n```markdown\n@JuliaRegistrator register subdir=src/ArrowTypes\n```\n\n### Verify\n\nWe have a script to verify a RC.\n\nYou must install the following commands to use the script:\n\n  * `curl`\n  * `gpg`\n  * `shasum` or `sha256sum`/`sha512sum`\n  * `tar`\n\nYou don't need to install Julia. If there isn't Julia in system, the latest Julia is automatically installed only for verification.\n\nTo verify a RC, run the following command line:\n\n```console\n$ dev/release/verify_rc.sh ${VERSION} ${RC}\n```\n\nHere is an example to release 2.2.1 RC1:\n\n```console\n$ dev/release/verify_rc.sh 2.2.1 1\n```\n\nIf the verification is succeeded, `RC looks good!` is shown.\n"
  },
  {
    "path": "dev/release/check_rat_report.py",
    "content": "#!/usr/bin/env python3\n#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\nimport fnmatch\nimport re\nimport sys\nimport xml.etree.ElementTree as ET\n\nif len(sys.argv) != 3:\n    sys.stderr.write(\"Usage: %s exclude_globs.lst rat_report.xml\\n\" %\n                     sys.argv[0])\n    sys.exit(1)\n\nexclude_globs_filename = sys.argv[1]\nxml_filename = sys.argv[2]\n\nglobs = [line.strip() for line in open(exclude_globs_filename, \"r\")]\n\ntree = ET.parse(xml_filename)\nroot = tree.getroot()\nresources = root.findall('resource')\n\nall_ok = True\nfor r in resources:\n    approvals = r.findall('license-approval')\n    if not approvals or approvals[0].attrib['name'] == 'true':\n        continue\n    clean_name = re.sub('^[^/]+/', '', r.attrib['name'])\n    excluded = False\n    for g in globs:\n        if fnmatch.fnmatch(clean_name, g):\n            excluded = True\n            break\n    if not excluded:\n        sys.stdout.write(\"NOT APPROVED: %s (%s): %s\\n\" % (\n            clean_name, r.attrib['name'], approvals[0].attrib['name']))\n        all_ok = False\n\nif not all_ok:\n    sys.exit(1)\n\nprint('OK')\nsys.exit(0)\n"
  },
  {
    "path": "dev/release/rat_exclude_files.txt",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\nManifest.toml\ndev/release/apache-rat-*.jar\ndev/release/filtered_rat.txt\ndev/release/rat.xml\ntest/arrowjson/*.json\n"
  },
  {
    "path": "dev/release/release.sh",
    "content": "#!/bin/bash\n#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\nset -eu\n\nif [ \"$#\" -ne 2 ]; then\n  echo \"Usage: $0 <version> <rc>\"\n  echo \" e.g.: $0 2.2.1 1\"\n  exit 1\nfi\n\nversion=$1\nrc=$2\n\nrc_id=\"apache-arrow-julia-${version}-rc${rc}\"\nrelease_id=\"arrow-julia-${version}\"\necho \"Move from dev/ to release/\"\nsvn \\\n  mv \\\n  -m \"Apache Arrow Julia ${version}\" \\\n  https://dist.apache.org/repos/dist/dev/arrow/${rc_id} \\\n  https://dist.apache.org/repos/dist/release/arrow/${release_id}\n\necho \"Remove all RCs\"\nold_rcs=$(\n  svn ls https://dist.apache.org/repos/dist/dev/arrow/ | \\\n  grep -E '^apache-arrow-julia-' | \\\n  sort --version-sort --reverse\n)\nfor old_rc in $old_rcs; do\n  echo \"Remove RC ${old_rc}\"\n  svn \\\n    delete \\\n    -m \"Remove old Apache Arrow Julia RC: ${old_rc}\" \\\n    https://dist.apache.org/repos/dist/dev/arrow/${old_rc}\ndone\n\necho \"Keep only the latest versions\"\nold_releases=$(\n  svn ls https://dist.apache.org/repos/dist/release/arrow/ | \\\n  grep -E '^arrow-julia-' | \\\n  sort --version-sort --reverse | \\\n  tail -n +2\n)\nfor old_release_version in $old_releases; do\n  echo \"Remove old release ${old_release_version}\"\n  svn \\\n    delete \\\n    -m \"Remove old Apache Arrow Julia release: ${old_release_version}\" \\\n    https://dist.apache.org/repos/dist/release/arrow/${old_release_version}\ndone\n\necho \"Success! The release is available here:\"\necho \"  https://dist.apache.org/repos/dist/release/arrow/${release_id}\"\necho\necho \"Add this release to ASF's report database:\"\necho \"  https://reporter.apache.org/addrelease.html?arrow\"\n"
  },
  {
    "path": "dev/release/release_rc.sh",
    "content": "#!/bin/bash\n#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\nset -eu\n\nSOURCE_DIR=\"$(cd \"$(dirname \"${BASH_SOURCE[0]}\")\" && pwd)\"\nSOURCE_TOP_DIR=\"$(cd \"${SOURCE_DIR}/../../\" && pwd)\"\n\nif [ \"$#\" -ne 1 ]; then\n  echo \"Usage: $0 <rc>\"\n  echo \" e.g.: $0 1\"\n  exit 1\nfi\n\nrc=$1\n\n: ${RELEASE_DEFAULT:=1}\n: ${RELEASE_CLEANUP:=${RELEASE_DEFAULT}}\n: ${RELEASE_PULL:=${RELEASE_DEFAULT}}\n: ${RELEASE_PUSH_TAG:=${RELEASE_DEFAULT}}\n: ${RELEASE_SIGN:=${RELEASE_DEFAULT}}\n: ${RELEASE_UPLOAD:=${RELEASE_DEFAULT}}\n\ncd \"${SOURCE_TOP_DIR}\"\n\nif [ ${RELEASE_PULL} -gt 0 -o ${RELEASE_PUSH_TAG} -gt 0 ]; then\n  git_origin_url=\"$(git remote get-url origin)\"\n  if [ \"${git_origin_url}\" != \"git@github.com:apache/arrow-julia.git\" ]; then\n    echo \"This script must be ran with working copy of apache/arrow-julia.\"\n    echo \"The origin's URL: ${git_origin_url}\"\n    exit 1\n  fi\nfi\n\nif [ ${RELEASE_PULL} -gt 0 ]; then\n  echo \"Ensure using the latest commit\"\n  git checkout main\n  git pull --rebase --prune\nfi\n\nversion=$(grep -o '^version = \".*\"' \"Project.toml\" | \\\n            sed -e 's/^version = \"//' \\\n                -e 's/\"$//')\n\nrc_tag=\"v${version}-rc${rc}\"\necho \"Tagging for RC: ${rc_tag}\"\ngit tag -a -m \"${version} RC${rc}\" \"${rc_tag}\"\nif [ ${RELEASE_PUSH_TAG} -gt 0 ]; then\n  git push origin \"${rc_tag}\"\nfi\n\nrc_hash=\"$(git rev-list --max-count=1 \"${rc_tag}\")\"\n\nid=\"apache-arrow-julia-${version}\"\nrc_id=\"${id}-rc${rc}\"\ndev_dist_url=\"https://dist.apache.org/repos/dist/dev/arrow\"\ndev_dist_dir=\"dev/release/dist\"\ntar_gz=\"${id}.tar.gz\"\ntar_gz_path=\"${dev_dist_dir}/${rc_id}/${tar_gz}\"\nrc_url=\"${dev_dist_url}/${rc_id}/\"\n\necho \"Checking out ${dev_dist_url}\"\nrm -rf \"${dev_dist_dir}\"\nsvn co --depth=empty \"${dev_dist_url}\" \"${dev_dist_dir}\"\n\necho \"Attempting to create ${tar_gz} from tag ${rc_tag}\"\nmkdir -p \"$(dirname \"${tar_gz_path}\")\"\ngit archive \"${rc_hash}\" --prefix \"${id}/\" --output \"${tar_gz_path}\"\n\npushd \"${dev_dist_dir}/${rc_id}\"\n\necho \"Running Rat license checker on ${tar_gz}\"\n../../run_rat.sh ${tar_gz}\n\nif [ ${RELEASE_SIGN} -gt 0 ]; then\n  echo \"Signing tar.gz and creating checksums\"\n  gpg --armor --output ${tar_gz}.asc --detach-sig ${tar_gz}\nfi\n\nif type shasum >/dev/null 2>&1; then\n  sha256_generate=\"shasum -a 256\"\n  sha512_generate=\"shasum -a 512\"\nelse\n  sha256_generate=\"sha256sum\"\n  sha512_generate=\"sha512sum\"\nfi\n${sha256_generate} ${tar_gz} > ${tar_gz}.sha256\n${sha512_generate} ${tar_gz} > ${tar_gz}.sha512\n\nif [ ${RELEASE_UPLOAD} -gt 0 ]; then\n  echo \"Uploading to ${rc_url}\"\n  svn add .\n  svn ci -m \"Apache Arrow Julia ${version} ${rc}\"\nfi\n\npopd\n\nif [ ${RELEASE_CLEANUP} -gt 0 ]; then\n  echo \"Removing temporary directory\"\n  rm -rf \"${dev_dist_dir}\"\nfi\n\necho \"Draft email for dev@arrow.apache.org mailing list\"\necho \"\"\necho \"---------------------------------------------------------\"\ncat <<MAIL\nTo: dev@arrow.apache.org\nSubject: [VOTE][Julia] Release Apache Arrow Julia ${version} RC${rc}\n\nHi,\n\nI would like to propose the following release candidate (RC${rc}) of\nApache Arrow Julia version ${version}.\n\nThis release candidate is based on commit:\n${rc_hash} [1]\n\nThe source release rc${rc} is hosted at [2].\n\nPlease download, verify checksums and signatures, run the unit tests,\nand vote on the release. See [3] for how to validate a release candidate.\n\nThe vote will be open for at least 24 hours.\n\n[ ] +1 Release this as Apache Arrow Julia ${version}\n[ ] +0\n[ ] -1 Do not release this as Apache Arrow Julia ${version} because...\n\n[1]: https://github.com/apache/arrow-julia/tree/${rc_hash}\n[2]: ${rc_url}\n[3]: https://github.com/apache/arrow-julia/blob/main/dev/release/README.md#verify\nMAIL\necho \"---------------------------------------------------------\"\n"
  },
  {
    "path": "dev/release/run_rat.sh",
    "content": "#!/bin/bash\n#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\nset -eu\n\nRELEASE_DIR=\"$(cd \"$(dirname \"${BASH_SOURCE[0]}\")\" && pwd)\"\n\nRAT_VERSION=0.13\n\nRAT_JAR=\"${RELEASE_DIR}/apache-rat-${RAT_VERSION}.jar\"\nif [ ! -f \"${RAT_JAR}\" ]; then\n  curl \\\n    --fail \\\n    --output \"${RAT_JAR}\" \\\n    --show-error \\\n    --silent \\\n    https://repo1.maven.org/maven2/org/apache/rat/apache-rat/${RAT_VERSION}/apache-rat-${RAT_VERSION}.jar\nfi\n\nRAT=\"java -jar ${RAT_JAR} -x \"\nRAT_XML=\"${RELEASE_DIR}/rat.xml\"\n$RAT $1 > \"${RAT_XML}\"\nFILTERED_RAT_TXT=\"${RELEASE_DIR}/filtered_rat.txt\"\nif ${PYTHON:-python3} \\\n     \"${RELEASE_DIR}/check_rat_report.py\" \\\n     \"${RELEASE_DIR}/rat_exclude_files.txt\" \\\n     \"${RAT_XML}\" > \\\n     \"${FILTERED_RAT_TXT}\"; then\n  echo \"No unapproved licenses\"\nelse\n  cat \"${FILTERED_RAT_TXT}\"\n  N_UNAPPROVED=$(grep \"NOT APPROVED\" \"${FILTERED_RAT_TXT}\" | wc -l)\n  echo \"${N_UNAPPROVED} unapproved licenses. Check Rat report: ${RAT_XML}\"\n  exit 1\nfi\n"
  },
  {
    "path": "dev/release/verify_rc.sh",
    "content": "#!/bin/bash\n#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\nset -eu\n\nSOURCE_DIR=\"$(cd \"$(dirname \"${BASH_SOURCE[0]}\")\" && pwd)\"\nTOP_SOURCE_DIR=\"$(dirname $(dirname ${SOURCE_DIR}))\"\n\nif [ \"$#\" -ne 2 ]; then\n  echo \"Usage: $0 <version> <rc>\"\n  echo \" e.g.: $0 2.2.1 1\"\n  exit 1\nfi\n\nset -o pipefail\nset -x\n\nVERSION=\"$1\"\nRC=\"$2\"\n\nARROW_DIST_URL=\"https://dist.apache.org/repos/dist/dev/arrow\"\nARCHIVE_BASE_NAME=\"apache-arrow-julia-${VERSION}\"\n\n: ${VERIFY_DEFAULT:=1}\n: ${VERIFY_DOWNLOAD:=${VERIFY_DEFAULT}}\n: ${VERIFY_FORCE_USE_JULIA_BINARY:=0}\n: ${VERIFY_SIGN:=${VERIFY_DEFAULT}}\n\ndownload_dist_file() {\n  curl \\\n    --fail \\\n    --location \\\n    --remote-name \\\n    --show-error \\\n    --silent \\\n    \"${ARROW_DIST_URL}/$1\"\n}\n\ndownload_rc_file() {\n  local path=\"apache-arrow-julia-${VERSION}-rc${RC}/$1\"\n  if [ ${VERIFY_DOWNLOAD} -gt 0 ]; then\n    download_dist_file \"${path}\"\n  else\n    cp \"${SOURCE_DIR}/dist/${path}\" \"$1\"\n  fi\n}\n\nimport_gpg_keys() {\n  if [ ${VERIFY_SIGN} -gt 0 ]; then\n    download_dist_file KEYS\n    gpg --import KEYS\n  fi\n}\n\nif type shasum >/dev/null 2>&1; then\n  sha256_verify=\"shasum -a 256 -c\"\n  sha512_verify=\"shasum -a 512 -c\"\nelse\n  sha256_verify=\"sha256sum -c\"\n  sha512_verify=\"sha512sum -c\"\nfi\n\nfetch_archive() {\n  download_rc_file ${ARCHIVE_BASE_NAME}.tar.gz\n  if [ ${VERIFY_SIGN} -gt 0 ]; then\n    download_rc_file ${ARCHIVE_BASE_NAME}.tar.gz.asc\n    gpg --verify ${ARCHIVE_BASE_NAME}.tar.gz.asc ${ARCHIVE_BASE_NAME}.tar.gz\n  fi\n  download_rc_file ${ARCHIVE_BASE_NAME}.tar.gz.sha256\n  ${sha256_verify} ${ARCHIVE_BASE_NAME}.tar.gz.sha256\n  download_rc_file ${ARCHIVE_BASE_NAME}.tar.gz.sha512\n  ${sha512_verify} ${ARCHIVE_BASE_NAME}.tar.gz.sha512\n}\n\nsetup_tmpdir() {\n  cleanup() {\n    if [ \"${VERIFY_SUCCESS}\" = \"yes\" ]; then\n      rm -rf \"${VERIFY_TMPDIR}\"\n    else\n      echo \"Failed to verify release candidate. See ${VERIFY_TMPDIR} for details.\"\n    fi\n  }\n\n  if [ -z \"${VERIFY_TMPDIR:-}\" ]; then\n    VERIFY_TMPDIR=$(mktemp -d -t \"$1.XXXXX\")\n    trap cleanup EXIT\n  else\n    mkdir -p \"${VERIFY_TMPDIR}\"\n  fi\n}\n\nlatest_julia_version() {\n  curl \\\n    --fail \\\n    --location \\\n    --show-error \\\n    --silent \\\n    https://api.github.com/repos/JuliaLang/julia/releases/latest | \\\n    grep -o '\"tag_name\": \"v.*\"' | \\\n    head -n 1 | \\\n    sed -e 's/^\"tag_name\": \"v//g' \\\n        -e 's/\"$//g'\n}\n\nensure_julia() {\n  if [ ${VERIFY_FORCE_USE_JULIA_BINARY} -le 0 ]; then\n    if julia --version; then\n      return\n    fi\n  fi\n\n  local julia_binary_url=https://julialang-s3.julialang.org/bin\n  local julia_version=$(latest_julia_version)\n  local julia_version_series=${julia_version%.*}\n  case \"$(uname)\" in\n    Darwin)\n      julia_binary_url+=\"/mac\"\n      case \"$(arch)\" in\n        arm64)\n          julia_binary_url+=\"/aarch64\"\n          julia_binary_url+=\"/${julia_version_series}\"\n          julia_binary_url+=\"/julia-${julia_version}-macaarch64.tar.gz\"\n          ;;\n        i386)\n          julia_binary_url+=\"/x64\"\n          julia_binary_url+=\"/${julia_version_series}\"\n          julia_binary_url+=\"/julia-${julia_version}-mac64.tar.gz\"\n          ;;\n        *)\n          echo \"You must install Julia manually on $(uname) $(arch)\"\n          ;;\n      esac\n      ;;\n    Linux)\n      julia_binary_url+=\"/linux\"\n      case \"$(arch)\" in\n        aarch64)\n          julia_binary_url+=\"/aarch64\"\n          ;;\n        x86_64)\n          julia_binary_url+=\"/x64\"\n          ;;\n        *)\n          echo \"You must install Julia manually on $(uname) $(arch)\"\n          ;;\n      esac\n      julia_binary_url+=\"/${julia_version_series}\"\n      julia_binary_url+=\"/julia-${julia_version}-linux-$(arch).tar.gz\"\n      ;;\n    *)\n      echo \"You must install Julia manually on $(uname)\"\n      exit 1\n      ;;\n  esac\n  julia_binary_tar_gz=$(basename ${julia_binary_url})\n  curl \\\n    --fail \\\n    --location \\\n    --output ${julia_binary_tar_gz} \\\n    --show-error \\\n    --silent \\\n    ${julia_binary_url}\n  tar xf ${julia_binary_tar_gz}\n  julia_path=$(echo julia-*/bin/julia)\n  PATH=\"$(pwd)/$(dirname ${julia_path}):${PATH}\"\n  export JULIA_DEPOT_PATH=\"$(pwd)/.julia\"\n}\n\ntest_source_distribution() {\n  pushd src/ArrowTypes\n  julia --project -e 'import Pkg; Pkg.build(); Pkg.test()'\n  popd\n  # Dev local ArrowTypes to use the version from this release, not from registry\n  julia --project -e 'import Pkg; Pkg.develop(path=\"src/ArrowTypes\"); Pkg.build(); Pkg.test()'\n}\n\nVERIFY_SUCCESS=no\n\nsetup_tmpdir \"arrow-julia-${VERSION}-${RC}\"\necho \"Working in sandbox ${VERIFY_TMPDIR}\"\ncd \"${VERIFY_TMPDIR}\"\n\nimport_gpg_keys\nfetch_archive\ntar xf ${ARCHIVE_BASE_NAME}.tar.gz\nensure_julia\npushd ${ARCHIVE_BASE_NAME}\ntest_source_distribution\npopd\n\nVERIFY_SUCCESS=yes\necho \"RC looks good!\"\n"
  },
  {
    "path": "docs/.gitignore",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\nbuild/\nsite/\n"
  },
  {
    "path": "docs/Project.toml",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\n[deps]\nArrow = \"69666777-d1a9-59fb-9406-91d4454c9d45\"\nDocumenter = \"e30172f5-a6a5-5a46-863b-614d45cd2de4\"\n\n[compat]\nDocumenter = \"1\"\n"
  },
  {
    "path": "docs/make.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\nusing Documenter\nusing Arrow\n\nmakedocs(;\n    modules=[Arrow],\n    repo=Remotes.GitHub(\"apache\", \"arrow-julia\"),\n    sitename=\"Arrow.jl\",\n    format=Documenter.HTML(;\n        prettyurls=get(ENV, \"CI\", \"false\") == \"true\",\n        canonical=\"https://arrow.apache.org/julia/\",\n        assets=String[],\n    ),\n    pages=[\n        \"Home\" => \"index.md\",\n        \"User Manual\" => \"manual.md\",\n        \"API Reference\" => \"reference.md\",\n    ],\n)\n\ndeploydocs(; repo=\"github.com/apache/arrow-julia\", devbranch=\"main\", branch=\"asf-site\")\n"
  },
  {
    "path": "docs/src/index.md",
    "content": "```@raw html\n<!---\n  Licensed to the Apache Software Foundation (ASF) under one\n  or more contributor license agreements.  See the NOTICE file\n  distributed with this work for additional information\n  regarding copyright ownership.  The ASF licenses this file\n  to you under the Apache License, Version 2.0 (the\n  \"License\"); you may not use this file except in compliance\n  with the License.  You may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\n  Unless required by applicable law or agreed to in writing,\n  software distributed under the License is distributed on an\n  \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  KIND, either express or implied.  See the License for the\n  specific language governing permissions and limitations\n  under the License.\n-->\n```\n\n# Arrow.jl\n\n```@contents\nPages = [\"manual.md\", \"reference.md\"]\nDepth = 3\n```\n\n```@docs\nArrow\n```\n"
  },
  {
    "path": "docs/src/manual.md",
    "content": "```@raw html\n<!---\n  Licensed to the Apache Software Foundation (ASF) under one\n  or more contributor license agreements.  See the NOTICE file\n  distributed with this work for additional information\n  regarding copyright ownership.  The ASF licenses this file\n  to you under the Apache License, Version 2.0 (the\n  \"License\"); you may not use this file except in compliance\n  with the License.  You may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\n  Unless required by applicable law or agreed to in writing,\n  software distributed under the License is distributed on an\n  \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  KIND, either express or implied.  See the License for the\n  specific language governing permissions and limitations\n  under the License.\n-->\n```\n\n# User Manual\n\nThe goal of this documentation is to provide a brief introduction to the arrow data format, then provide a walk-through of the functionality provided in the Arrow.jl Julia package, with an aim to expose a little of the machinery \"under the hood\" to help explain how things work and how that influences real-world use-cases for the arrow data format.\n\nThe best place to learn about the Apache arrow project is [the website itself](https://arrow.apache.org/), specifically the data format [specification](https://arrow.apache.org/docs/format/Columnar.html). Put briefly, the arrow project provides a formal specification for how columnar, \"table\" data can be laid out efficiently in memory to standardize and maximize the ability to share data across languages/platforms. In the current [apache/arrow GitHub repository](https://github.com/apache/arrow), language implementations exist for C++, Java, Go, Javascript, Rust, to name a few. Other database vendors and data processing frameworks/applications have also built support for the arrow format, allowing for a wide breadth of possibility for applications to \"speak the data language\" of arrow.\n\nThe [Arrow.jl](https://github.com/apache/arrow-julia) Julia package is another implementation, allowing the ability to both read and write data in the arrow format. As a data format, arrow specifies an exact memory layout to be used for columnar table data, and as such, \"reading\" involves custom Julia objects ([`Arrow.Table`](@ref) and [`Arrow.Stream`](@ref)), which read the *metadata* of an \"arrow memory blob\", then *wrap* the array data contained therein, having learned the type and size, amongst other properties, from the metadata. Let's take a closer look at what this \"reading\" of arrow memory really means/looks like.\n\n## Support for generic path-like types\n\nArrow.jl attempts to support any path-like type wherever a function takes a path as an argument. The Arrow.jl API should generically work as long as the type supports:\n\n- `Base.open(path, mode)::I where I <: IO`\n\nWhen a custom `IO` subtype is returned (`I`) then the following methods also need to be defined:\n\n- `Base.read(io::I, ::Type{UInt8})` or `Base.read(io::I)`\n- `Base.write(io::I, x)`\n\n## Reading arrow data\n\nAfter installing the Arrow.jl Julia package (via `] add Arrow`), and if you have some arrow data, let's say a file named `data.arrow` generated from the [`pyarrow`](https://arrow.apache.org/docs/python/) library (a Python library for interfacing with arrow data), you can then read that arrow data into a Julia session by doing:\n\n```julia\nusing Arrow\n\ntable = Arrow.Table(\"data.arrow\")\n```\n\n### `Arrow.Table`\n\nThe type of `table` in this example will be an `Arrow.Table`. When \"reading\" the arrow data, `Arrow.Table` first [\"mmapped\"](https://en.wikipedia.org/wiki/Mmap) the `data.arrow` file, which is an important technique for dealing with data larger than available RAM on a system. By \"mmapping\" a file, the OS doesn't actually load the entire file contents into RAM at the same time, but file contents are \"swapped\" into RAM as different regions of a file are requested. Once \"mmapped\", `Arrow.Table` then inspected the metadata in the file to determine the number of columns, their names and types, at which byte offset each column begins in the file data, and even how many \"batches\" are included in this file (arrow tables may be partitioned into one or more \"record batches\" each containing portions of the data). Armed with all the appropriate metadata, `Arrow.Table` then created custom array objects ([`Arrow.ArrowVector`](@ref)), which act as \"views\" into the raw arrow memory bytes. This is a significant point in that no extra memory is allocated for \"data\" when reading arrow data. This is in contrast to if we wanted to read data from a csv file as columns into Julia structures; we would need to allocate those array structures ourselves, then parse the file, \"filling in\" each element of the array with the data we parsed from the file. Arrow data, on the other hand, is *already laid out in memory or on disk* in a binary format, and as long as we have the metadata to interpret the raw bytes, we can figure out whether to treat those bytes as a `Vector{Float64}`, etc. A sample of the kinds of arrow array types you might see when deserializing arrow data, include:\n\n* [`Arrow.Primitive`](@ref): the most common array type for simple, fixed-size elements like integers, floats, time types, and decimals\n* [`Arrow.List`](@ref): an array type where its own elements are also arrays of some kind, like string columns, where each element can be thought of as an array of characters\n* [`Arrow.FixedSizeList`](@ref): similar to the `List` type, but where each array element has a fixed number of elements itself; you can think of this like a `Vector{NTuple{N, T}}`, where `N` is the fixed-size width\n* [`Arrow.Map`](@ref): an array type where each element is like a Julia `Dict`; a list of key value pairs like a `Vector{Dict}`\n* [`Arrow.Struct`](@ref): an array type where each element is an instance of a custom struct, i.e. an ordered collection of named & typed fields, kind of like a `Vector{NamedTuple}`\n* [`Arrow.DenseUnion`](@ref): an array type where elements may be of several different types, stored compactly; can be thought of like `Vector{Union{A, B}}`\n* [`Arrow.SparseUnion`](@ref): another array type where elements may be of several different types, but stored as if made up of identically lengthed child arrays for each possible type (less memory efficient than `DenseUnion`)\n* [`Arrow.DictEncoded`](@ref): a special array type where values are \"dictionary encoded\", meaning the list of unique, possible values for an array are stored internally in an \"encoding pool\", whereas each stored element of the array is just an integer \"code\" to index into the encoding pool for the actual value.\n\nAnd while these custom array types do subtype `AbstractArray`, there is no current support for `setindex!`. Remember, these arrays are \"views\" into the raw arrow bytes, so for array types other than `Arrow.Primitive`, it gets pretty tricky to allow manipulating those raw arrow bytes. Nevetheless, it's as simple as calling `copy(x)` where `x` is any `ArrowVector` type, and a normal Julia `Vector` type will be fully materialized (which would then allow mutating/manipulating values).\n\nSo, what can you do with an `Arrow.Table` full of data? Quite a bit actually!\n\nBecause `Arrow.Table` implements the [Tables.jl](https://juliadata.github.io/Tables.jl/stable/) interface, it opens up a world of integrations for using arrow data. A few examples include:\n\n* `df = DataFrame(Arrow.Table(file))`: Build a [`DataFrame`](https://juliadata.github.io/DataFrames.jl/stable/), using the arrow vectors themselves; this allows utilizing a host of DataFrames.jl functionality directly on arrow data; grouping, joining, selecting, etc.\n* `df = copy(DataFrame(Arrow.Table(file)))`: Build a [`DataFrame`](https://juliadata.github.io/DataFrames.jl/stable/), where the columns are regular in-memory vectors (specifically, `Base.Vector`s and/or `PooledVector`s). This requires that you have enough memory to load the entire `DataFrame` into memory.\n* `Tables.datavaluerows(Arrow.Table(file)) |> @map(...) |> @filter(...) |> DataFrame`: use [`Query.jl`'s](https://www.queryverse.org/Query.jl/stable/standalonequerycommands/) row-processing utilities to map, group, filter, mutate, etc. directly over arrow data.\n* `Arrow.Table(file) |> SQLite.load!(db, \"arrow_table\")`: load arrow data directly into an sqlite database/table, where sql queries can be executed on the data\n* `Arrow.Table(file) |> CSV.write(\"arrow.csv\")`: write arrow data out to a csv file\n\nA full list of Julia packages leveraging the Tables.jl inteface can be found [here](https://github.com/JuliaData/Tables.jl/blob/master/INTEGRATIONS.md).\n\nApart from letting other packages have all the fun, an `Arrow.Table` itself can be plenty useful. For example, with `tbl = Arrow.Table(file)`:\n* `tbl[1]`: retrieve the first column via indexing; the number of columns can be queried via `length(tbl)`\n* `tbl[:col1]` or `tbl.col1`: retrieve the column named `col1`, either via indexing with the column name given as a `Symbol`, or via \"dot-access\"\n* `for col in tbl`: iterate through columns in the table\n* `AbstractDict` methods like `haskey(tbl, :col1)`, `get(tbl, :col1, nothing)`, `keys(tbl)`, or `values(tbl)`\n\n### Arrow types\n\nIn the arrow data format, specific logical types are supported, a list of which can be found [here](https://arrow.apache.org/docs/status.html#data-types). These include booleans, integers of various bit widths, floats, decimals, time types, and binary/string. While most of these map naturally to types builtin to Julia itself, there are a few cases where the definitions are slightly different, and in these cases, by default, they are converted to more \"friendly\" Julia types (this auto conversion can be avoided by passing `convert=false` to `Arrow.Table`, like `Arrow.Table(file; convert=false)`). Examples of arrow to julia type mappings include:\n\n* `Date`, `Time`, `Timestamp`, and `Duration` all have natural Julia defintions in `Dates.Date`, `Dates.Time`, `TimeZones.ZonedDateTime`, and `Dates.Period` subtypes, respectively.\n* `Char` and `Symbol` Julia types are mapped to arrow string types, with additional metadata of the original Julia type; this allows deserializing directly to `Char` and `Symbol` in Julia, while other language implementations will see these columns as just strings\n* Similarly to the above, the `UUID` Julia type is mapped to a 128-bit `FixedSizeBinary` arrow type.\n* `Decimal128` and `Decimal256` have no corresponding builtin Julia types, so they're deserialized using a compatible type definition in Arrow.jl itself: `Arrow.Decimal`\n\n\nNote that when `convert=false` is passed, data will be returned in Arrow.jl-defined types that exactly match the arrow definitions of those types; the authoritative source for how each type represents its data can be found in the arrow [`Schema.fbs`](https://github.com/apache/arrow/blob/master/format/Schema.fbs) file.\n\nOne note on performance: when writing `TimeZones.ZonedDateTime` columns to the arrow format (via `Arrow.write`), it is preferrable to \"wrap\" the columns in `Arrow.ToTimestamp(col)`, as long\nas the column has `ZonedDateTime` elements that all share a common timezone. This ensures the writing process can know \"upfront\" which timezone will be encoded and is thus much more\nefficient and performant.\n\n#### Custom types\n\nTo support writing your custom Julia struct, Arrow.jl utilizes the format's mechanism for \"extension types\" by allowing the storing of Julia type name and metadata in the field metadata. To \"hook in\" to this machinery, custom types can utilize the interface methods defined in the `Arrow.ArrowTypes` submodule. For example:\n\n```julia\nusing Arrow\n\nstruct Person\n    id::Int\n    name::String\nend\n\n# overload interface method for custom type Person; return a symbol as the \"name\"\n# this instructs Arrow.write what \"label\" to include with a column with this custom type\nconst NAME = Symbol(\"JuliaLang.MyPackage.Person\")\nArrowTypes.arrowname(::Type{Person}) = NAME\n# overload JuliaType on `Val{NAME}`, which is like a dispatchable string\n# return our custom *type* Person; this enables Arrow.Table to know how the \"label\"\n# on a custom column should be mapped to a Julia type and deserialized\nArrowTypes.JuliaType(::Val{NAME}) = Person\n\ntable = (col1=[Person(1, \"Bob\"), Person(2, \"Jane\")],)\nio = IOBuffer()\nArrow.write(io, table)\nseekstart(io)\ntable2 = Arrow.Table(io)\n```\n\nIn this example, we're writing our `table`, which is a NamedTuple with one column named `col1`, which has two\nelements which are instances of our custom `Person` struct. We overload `Arrowtypes.arrowname` so that\nArrow.jl knows how to serialize our `Person` struct. We then overload `ArrowTypes.JuliaType` so the deserialization process knows how to map from our type label back to our `Person` struct type. We can then write our data in the arrow format to an in-memory `IOBuffer`, then read the table back in using `Arrow.Table`.\nThe table we get back will be an `Arrow.Table`, with a single `Arrow.Struct` column with element type `Person`.\n\nNote that without calling `Arrowtypes.JuliaType`, we may get into a weird limbo state where we've written\nour table with `Person` structs out as a table, but when reading back in, Arrow.jl doesn't know what a `Person` is;\ndeserialization won't fail, but we'll just get a `Namedtuple{(:id, :name), Tuple{Int, String}}` back instead of `Person`.\n\nWhile this example is very simple, it shows the basics to allow a custom type to be serialized/deserialized. But the `ArrowTypes` module offers even more powerful functionality for \"hooking\" non-native arrow types into the serialization/deserialization processes. Let's walk through a couple more examples; if you've had enough custom type shenanigans, feel free to skip to the next section.\n\nLet's take a look at how Arrow.jl allows serializing the `nothing` value, which is often referred to as the \"software engineer's NULL\" in Julia. While Arrow.jl treats `missing` as the default arrow NULL value, `nothing` is pretty similar, but we'd still like to treat it separately if possible. Here's how we enable serialization/deserialization in the `ArrowTypes` module:\n\n```julia\nArrowTypes.ArrowKind(::Type{Nothing}) = ArrowTypes.NullKind()\nArrowTypes.ArrowType(::Type{Nothing}) = Missing\nArrowTypes.toarrow(::Nothing) = missing\nconst NOTHING = Symbol(\"JuliaLang.Nothing\")\nArrowTypes.arrowname(::Type{Nothing}) = NOTHING\nArrowTypes.JuliaType(::Val{NOTHING}) = Nothing\nArrowTypes.fromarrow(::Type{Nothing}, ::Missing) = nothing\n```\n\nLet's walk through what's going on here, line-by-line:\n  * `ArrowKind` overload: `ArrowKind`s are generic \"categories\" of types supported by the arrow format, like `PrimitiveKind`, `ListKind`, etc. They each correspond to a different data layout strategy supported in the arrow format. Here, we define `nothing`'s kind to be `NullKind`, which means no actual memory is needed for storage, it's strictly a \"metadata\" type where we store the type and # of elements. In our `Person` example, we didn't need to overload this since types declared like `struct T` or `mutable struct T` are defined as `ArrowTypes.StructKind` by default\n  * `ArrowType` overload: here we're signaling that our type (`Nothing`) maps to the natively supported arrow type of `Missing`; this is important for the serializer so it knows which arrow type it will be serializing. Again, we didn't need to overload this for `Person` since the serializer knows how to serialize custom structs automatically by using reflection methods like `fieldnames(T)` and `getfield(x, i)`.\n  * `ArrowTypes.toarrow` overload: this is a sister method to `ArrowType`; we said our type will map to the `Missing` arrow type, so here we actually define ___how___ it converts to the arrow type; and in this case, it just returns `missing`. This is yet another method that didn't show up for `Person`; why? Well, as we noted in `ArrowType`, the serializer already knows how to serialize custom structs by using all their fields; if, for some reason, we wanted to omit some fields or otherwise transform things, then we could define corresponding `ArrowType` and `toarrow` methods\n  * `arrowname` overload: similar to our `Person` example, we need to instruct the serializer how to label our custom type in the arrow type metadata; here we give it the symbol `Symbol(\"JuliaLang.Nothing\")`. Note that while this will ultimately allow us to disambiguate `nothing` from `missing` when reading arrow data, if we pass this data to other language implementations, they will only treat the data as `missing` since they (probably) won't know how to \"understand\" the `JuliaLang.Nothing` type label\n  * `JuliaType` overload: again, like our `Person` example, we instruct the deserializer that when it encounters the `JuliaLang.Nothing` type label, it should treat those values as `Nothing` type.\n  * And finally, `fromarrow` overload: this allows specifying how the native-arrow data should be converted back to our custom type. `fromarrow(T, x...)` by default will call `T(x...)`, which is why we didn't need this overload for `Person`, but in this example, `Nothing(missing)` won't work, so we define our own custom conversion.\n\nLet's run through one more complex example, just for fun and to really see how far the system can be pushed:\n\n```julia\nusing Intervals\ntable = (col = [\n    Interval{Closed,Unbounded}(1,nothing),\n],)\nconst NAME = Symbol(\"JuliaLang.Intervals.Interval\")\nArrowTypes.arrowname(::Type{Interval{T, L, R}}) where {T, L, R} = NAME\nconst LOOKUP = Dict(\n    \"Closed\" => Closed,\n    \"Unbounded\" => Unbounded\n)\nArrowTypes.arrowmetadata(::Type{Interval{T, L, R}}) where {T, L, R} = string(L, \".\", R)\nfunction ArrowTypes.JuliaType(::Val{NAME}, ::Type{NamedTuple{names, types}}, meta) where {names, types}\n    L, R = split(meta, \".\")\n    return Interval{fieldtype(types, 1), LOOKUP[L], LOOKUP[R]}\nend\nArrowTypes.fromarrow(::Type{Interval{T, L, R}}, first, last) where {T, L, R} = Interval{L, R}(first, R == Unbounded ? nothing : last)\nio = Arrow.tobuffer(table)\ntbl = Arrow.Table(io)\n```\n\nAgain, let's break down what's going on here:\n  * Here we're trying to save an `Interval` type in the arrow format; this type is unique in that it has two type parameters (`Closed` and `Unbounded`) that are not inferred/based on fields, but are just \"type tags\" on the type itself\n  * Note that we define a generic `arrowname` method on all `Interval`s, regardless of type parameters. We just want to let arrow know which general type we're dealing with here\n  * Next we use a new method `ArrowTypes.arrowmetadata` to encode the two non-field-based type parameters as a string with a dot delimiter; we encode this information here because remember, we have to match our `arrowname` Symbol typename in our `JuliaType(::Val(name))` definition in order to dispatch correctly; if we encoded the type parameters in `arrowname`, we would need separate `arrowname` definitions for each unique combination of those two type parameters, and corresponding `JuliaType` definitions for each as well; yuck. Instead, we let `arrowname` be generic to our type, and store the type parameters *for this specific column* using `arrowmetadata`\n  * Now in `JuliaType`, note we're using the 3-argument overload; we want the `NamedTuple` type that is the native arrow type our `Interval` is being serialized as; we use this to retrieve the 1st type parameter for our `Interval`, which is simply the type of the two `first` and `last` fields. Then we use the 3rd argument, which is whatever string we returned from `arrowmetadata`. We call `L, R = split(meta, \".\")` to parse the two type parameters (in this case `Closed` and `Unbounded`), then do a lookup on those strings from a predefined `LOOKUP` Dict that matches the type parameter name as string to the actual type. We then have all the information to recreate the full `Interval` type. Neat!\n  * The one final wrinkle is in our `fromarrow` method; `Interval`s that are `Unbounded`, actually take `nothing` as the 2nd argument. So letting the default `fromarrow` definition call `Interval{T, L, R}(first, last)`, where `first` and `last` are both integers isn't going to work. Instead, we check if the `R` type parameter is `Unbounded` and if so, pass `nothing` as the 2nd arg, otherwise we can pass `last`.\n\nThis stuff can definitely make your eyes glaze over if you stare at it long enough. As always, don't hesitate to reach out for quick questions on the [#data](https://julialang.slack.com/messages/data/) slack channel, or [open a new issue](https://github.com/apache/arrow-julia/issues/new) detailing what you're trying to do.\n\n### `Arrow.Stream`\n\nIn addition to `Arrow.Table`, the Arrow.jl package also provides `Arrow.Stream` for processing arrow data. While `Arrow.Table` will iterate all record batches in an arrow file/stream, concatenating columns, `Arrow.Stream` provides a way to *iterate* through record batches, one at a time. Each iteration yields an `Arrow.Table` instance, with columns/data for a single record batch. This allows, if so desired, \"batch processing\" of arrow data, one record batch at a time, instead of creating a single long table via `Arrow.Table`.\n\n### Custom application metadata\n\nThe Arrow format allows data producers to [attach custom metadata](https://arrow.apache.org/docs/format/Columnar.html#custom-application-metadata) to various Arrow objects.\n\nArrow.jl provides a convenient accessor for this metadata via [`Arrow.getmetadata`](@ref). `Arrow.getmetadata(t::Arrow.Table)` will return an immutable `AbstractDict{String,String}` that represents the [`custom_metadata` of the table's associated `Schema`](https://github.com/apache/arrow/blob/85d8175ea24b4dd99f108a673e9b63996d4f88cc/format/Schema.fbs#L515) (or `nothing` if no such metadata exists), while `Arrow.getmetadata(c::Arrow.ArrowVector)` will return a similar representation of [the column's associated `Field` `custom_metadata`](https://github.com/apache/arrow/blob/85d8175ea24b4dd99f108a673e9b63996d4f88cc/format/Schema.fbs#L480) (or `nothing` if no such metadata exists).\n\nTo attach custom schema/column metadata to Arrow tables at serialization time, see the `metadata` and `colmetadata` keyword arguments to [`Arrow.write`](@ref).\n\n## Writing arrow data\n\nOk, so that's a pretty good rundown of *reading* arrow data, but how do you *produce* arrow data? Enter `Arrow.write`.\n\n### `Arrow.write`\n\nWith `Arrow.write`, you provide either an `io::IO` argument or a [`file_path`](#support-for-generic-path-like-types) to write the arrow data to, as well as a Tables.jl-compatible source that contains the data to be written.\n\nWhat are some examples of Tables.jl-compatible sources? A few examples include:\n* `Arrow.write(io, df::DataFrame)`: A `DataFrame` is a collection of indexable columns\n* `Arrow.write(io, CSV.File(file))`: read data from a csv file and write out to arrow format\n* `Arrow.write(io, DBInterface.execute(db, sql_query))`: Execute an SQL query against a database via the [`DBInterface.jl`](https://github.com/JuliaDatabases/DBInterface.jl) interface, and write the query resultset out directly in the arrow format. Packages that implement DBInterface include [SQLite.jl](https://juliadatabases.github.io/SQLite.jl/stable/), [MySQL.jl](https://juliadatabases.github.io/MySQL.jl/dev/), and [ODBC.jl](http://juliadatabases.github.io/ODBC.jl/latest/).\n* `df |> @map(...) |> Arrow.write(io)`: Write the results of a [Query.jl](https://www.queryverse.org/Query.jl/stable/) chain of operations directly out as arrow data\n* `jsontable(json) |> Arrow.write(io)`: Treat a json array of objects or object of arrays as a \"table\" and write it out as arrow data using the [JSONTables.jl](https://github.com/JuliaData/JSONTables.jl) package\n* `Arrow.write(io, (col1=data1, col2=data2, ...))`: a `NamedTuple` of `AbstractVector`s or an `AbstractVector` of `NamedTuple`s are both considered tables by default, so they can be quickly constructed for easy writing of arrow data if you already have columns of data\n\nAnd these are just a few examples of the numerous [integrations](https://github.com/JuliaData/Tables.jl/blob/master/INTEGRATIONS.md).\n\nIn addition to just writing out a single \"table\" of data as a single arrow record batch, `Arrow.write` also supports writing out multiple record batches when the input supports the `Tables.partitions` functionality. One immediate, though perhaps not incredibly useful example, is `Arrow.Stream`. `Arrow.Stream` implements `Tables.partitions` in that it iterates \"tables\" (specifically `Arrow.Table`), and as such, `Arrow.write` will iterate an `Arrow.Stream`, and write out each `Arrow.Table` as a separate record batch. Another important point for why this example works is because an `Arrow.Stream` iterates `Arrow.Table`s that all have the same schema. This is important because when writing arrow data, a \"schema\" message is always written first, with all subsequent record batches written with data matching the initial schema.\n\nIn addition to inputs that support `Tables.partitions`, note that the Tables.jl itself provides the `Tables.partitioner` function, which allows providing your own separate instances of similarly-schema-ed tables as \"partitions\", like:\n\n```julia\n# treat 2 separate NamedTuples of vectors with same schema as 1 table, 2 partitions\ntbl_parts = Tables.partitioner([(col1=data1, col2=data2), (col1=data3, col2=data4)])\nArrow.write(io, tbl_parts)\n\n# treat an array of csv files with same schema where each file is a partition\n# in this form, a function `CSV.File` is applied to each element of 2nd argument\ncsv_parts = Tables.partitioner(CSV.File, csv_files)\nArrow.write(io, csv_parts)\n```\n\n### `Arrow.Writer`\n\nWith `Arrow.Writer`, you instantiate an `Arrow.Writer` object, write sources using it, and then close it.  This allows for incrmental writes to the same sink.  It is similar to `Arrow.append` without having to close and re-open the sink in between writes and without the limitation of only supporting the IPC stream format.\n\n### Multithreaded writing\n\nBy default, `Arrow.write` will use multiple threads to write multiple\nrecord batches simultaneously (e.g. if julia is started with `julia -t 8` or the `JULIA_NUM_THREADS` environment variable is set). The number of concurrent tasks to use when writing can be controlled by passing the `ntasks` keyword argument to `Arrow.write`. Passing `ntasks=1` avoids any multithreading when writing.\n\n### Compression\n\nCompression is supported when writing via the `compress` keyword argument. Possible values include `:lz4`, `:zstd`, or your own initialized `LZ4FrameCompressor` or `ZstdCompressor` objects; will cause all buffers in each record batch to use the respective compression encoding or compressor.\n"
  },
  {
    "path": "docs/src/reference.md",
    "content": "```@raw html\n<!---\n  Licensed to the Apache Software Foundation (ASF) under one\n  or more contributor license agreements.  See the NOTICE file\n  distributed with this work for additional information\n  regarding copyright ownership.  The ASF licenses this file\n  to you under the Apache License, Version 2.0 (the\n  \"License\"); you may not use this file except in compliance\n  with the License.  You may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\n  Unless required by applicable law or agreed to in writing,\n  software distributed under the License is distributed on an\n  \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  KIND, either express or implied.  See the License for the\n  specific language governing permissions and limitations\n  under the License.\n-->\n```\n\n# API Reference\n\n```@autodocs\nModules = [Arrow]\nOrder   = [:type, :function]\n```\n\n## Internals: `Arrow.FlatBuffers`\n\nThe `FlatBuffers` module is not part of Arrow.jl's public API, and these functions may change without notice.\n\n```@autodocs\nModules = [Arrow.FlatBuffers]\n```\n"
  },
  {
    "path": "src/Arrow.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"\n    Arrow.jl\n\nA pure Julia implementation of the [apache arrow](https://arrow.apache.org/) memory format specification.\n\nThis implementation supports the 1.0 version of the specification, including support for:\n  * All primitive data types\n  * All nested data types\n  * Dictionary encodings, nested dictionary encodings, and messages\n  * Extension types\n  * Streaming, file, record batch, and replacement and isdelta dictionary messages\n  * Buffer compression/decompression via the standard LZ4 frame and Zstd formats\n\nIt currently doesn't include support for:\n  * Tensors or sparse tensors\n  * Flight RPC\n  * C data interface\n\nThird-party data formats:\n  * csv and parquet support via the existing [CSV.jl](https://github.com/JuliaData/CSV.jl) and [Parquet.jl](https://github.com/JuliaIO/Parquet.jl) packages\n  * Other [Tables.jl](https://github.com/JuliaData/Tables.jl)-compatible packages automatically supported ([DataFrames.jl](https://github.com/JuliaData/DataFrames.jl), [JSONTables.jl](https://github.com/JuliaData/JSONTables.jl), [JuliaDB.jl](https://github.com/JuliaData/JuliaDB.jl), [SQLite.jl](https://github.com/JuliaDatabases/SQLite.jl), [MySQL.jl](https://github.com/JuliaDatabases/MySQL.jl), [JDBC.jl](https://github.com/JuliaDatabases/JDBC.jl), [ODBC.jl](https://github.com/JuliaDatabases/ODBC.jl), [XLSX.jl](https://github.com/felipenoris/XLSX.jl), etc.)\n  * No current Julia packages support ORC or Avro data formats\n\nSee docs for official Arrow.jl API with the [User Manual](@ref) and reference docs for [`Arrow.Table`](@ref), [`Arrow.write`](@ref), and [`Arrow.Stream`](@ref).\n\"\"\"\nmodule Arrow\n\nusing Base.Iterators\nusing Mmap\nimport Dates\nusing DataAPI,\n    Tables,\n    SentinelArrays,\n    PooledArrays,\n    CodecLz4,\n    CodecZstd,\n    TimeZones,\n    BitIntegers,\n    ConcurrentUtilities,\n    StringViews\n\nexport ArrowTypes\n\nusing Base: @propagate_inbounds\nimport Base: ==\n\nconst FILE_FORMAT_MAGIC_BYTES = b\"ARROW1\"\nconst CONTINUATION_INDICATOR_BYTES = 0xffffffff\n\n# vendored flatbuffers code for now\ninclude(\"FlatBuffers/FlatBuffers.jl\")\nusing .FlatBuffers\n\ninclude(\"metadata/Flatbuf.jl\")\nusing .Flatbuf\nconst Meta = Flatbuf\n\nusing ArrowTypes\ninclude(\"utils.jl\")\ninclude(\"arraytypes/arraytypes.jl\")\ninclude(\"eltypes.jl\")\ninclude(\"table.jl\")\ninclude(\"write.jl\")\ninclude(\"append.jl\")\ninclude(\"show.jl\")\n\nconst ZSTD_COMPRESSOR = Lockable{ZstdCompressor}[]\nconst ZSTD_DECOMPRESSOR = Lockable{ZstdDecompressor}[]\nconst LZ4_FRAME_COMPRESSOR = Lockable{LZ4FrameCompressor}[]\nconst LZ4_FRAME_DECOMPRESSOR = Lockable{LZ4FrameDecompressor}[]\n\nfunction init_zstd_compressor()\n    zstd = ZstdCompressor(; level=3)\n    CodecZstd.TranscodingStreams.initialize(zstd)\n    return Lockable(zstd)\nend\n\nfunction init_zstd_decompressor()\n    zstd = ZstdDecompressor()\n    CodecZstd.TranscodingStreams.initialize(zstd)\n    return Lockable(zstd)\nend\n\nfunction init_lz4_frame_compressor()\n    lz4 = LZ4FrameCompressor(; compressionlevel=4)\n    CodecLz4.TranscodingStreams.initialize(lz4)\n    return Lockable(lz4)\nend\n\nfunction init_lz4_frame_decompressor()\n    lz4 = LZ4FrameDecompressor()\n    CodecLz4.TranscodingStreams.initialize(lz4)\n    return Lockable(lz4)\nend\n\nfunction access_threaded(f, v::Vector)\n    tid = Threads.threadid()\n    0 < tid <= length(v) || _length_assert()\n    if @inbounds isassigned(v, tid)\n        @inbounds x = v[tid]\n    else\n        x = f()\n        @inbounds v[tid] = x\n    end\n    return x\nend\n@noinline _length_assert() = @assert false \"0 < tid <= v\"\n\nzstd_compressor() = access_threaded(init_zstd_compressor, ZSTD_COMPRESSOR)\nzstd_decompressor() = access_threaded(init_zstd_decompressor, ZSTD_DECOMPRESSOR)\nlz4_frame_compressor() = access_threaded(init_lz4_frame_compressor, LZ4_FRAME_COMPRESSOR)\nlz4_frame_decompressor() =\n    access_threaded(init_lz4_frame_decompressor, LZ4_FRAME_DECOMPRESSOR)\n\nfunction __init__()\n    nt = @static if isdefined(Base.Threads, :maxthreadid)\n        Threads.maxthreadid()\n    else\n        Threads.nthreads()\n    end\n    resize!(empty!(LZ4_FRAME_COMPRESSOR), nt)\n    resize!(empty!(ZSTD_COMPRESSOR), nt)\n    resize!(empty!(LZ4_FRAME_DECOMPRESSOR), nt)\n    resize!(empty!(ZSTD_DECOMPRESSOR), nt)\n    return\nend\n\nend  # module Arrow\n"
  },
  {
    "path": "src/ArrowTypes/LICENSE.md",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License."
  },
  {
    "path": "src/ArrowTypes/Project.toml",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\nname = \"ArrowTypes\"\nuuid = \"31f734f8-188a-4ce0-8406-c8a06bd891cd\"\nauthors = [\"quinnj <quinn.jacobd@gmail.com>\"]\nversion = \"2.3.0\"\n\n[deps]\nSockets = \"6462fe0b-24de-5631-8697-dd941f90decc\"\nUUIDs = \"cf7118a7-6976-5b1a-9a39-7adc72f591a4\"\n\n[compat]\njulia = \"1.0\"\n"
  },
  {
    "path": "src/ArrowTypes/src/ArrowTypes.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"\nThe ArrowTypes module provides the [`ArrowTypes.Arrowtype`](@ref) interface trait that objects can define\nin order to signal how they should be serialized in the arrow format.\n\"\"\"\nmodule ArrowTypes\n\nusing Sockets\nusing UUIDs\n\nexport ArrowKind,\n    NullKind,\n    PrimitiveKind,\n    BoolKind,\n    ListKind,\n    FixedSizeListKind,\n    MapKind,\n    StructKind,\n    UnionKind,\n    DictEncodedKind,\n    toarrow,\n    arrowname,\n    fromarrow,\n    ToArrow\n\n\"\"\"\n    ArrowTypes.ArrowKind(T)\n\nFor a give type `T`, define it's \"arrow type kind\", or the general category of arrow types it should be treated as. Must be one of:\n  * [`ArrowTypes.NullKind`](@ref): `Missing` is the only type defined as `NullKind`\n  * [`ArrowTypes.PrimitiveKind`](@ref): `<:Integer`, `<:AbstractFloat`, along with `Arrow.Decimal`, and the various `Arrow.ArrowTimeType` subtypes\n  * [`ArrowTypes.BoolKind`](@ref): only `Bool`\n  * [`ArrowTypes.ListKind`](@ref): any `AbstractString` or `AbstractArray`\n  * [`ArrowTypes.FixedSizeList`](@ref): `NTuple{N, T}`\n  * [`ArrowTypes.MapKind`](@ref): any `AbstractDict`\n  * [`ArrowTypes.StructKind`](@ref): any `NamedTuple` or plain struct (mutable or otherwise)\n  * [`ArrowTypes.UnionKind`](@ref): any `Union`\n  * [`ArrowTypes.DictEncodedKind`](@ref): array types that implement the `DataAPI.refpool` interface\n\nThe list of `ArrowKind`s listed above translate to different ways to physically store data as supported by the arrow data format.\nSee the docs for each for an idea of whether they might be an appropriate fit for a custom type.\nNote that custom types need to satisfy any additional \"interface methods\" as required by the various `ArrowKind`\ntypes. By default, if a type in julia is declared like `primitive type ...` it is considered a `PrimitiveKind`\nand if `struct` or `mutable struct` it's considered a `StructKind`. Also note that types will rarely need to define `ArrowKind`;\nmuch more common is to define `ArrowType(T)` and `toarrow(x::T)` to transform `T` to a natively supported arrow type, which will\nalready have its `ArrowKind` defined.\n\"\"\"\nabstract type ArrowKind end\n\nArrowKind(x::T) where {T} = ArrowKind(T)\nArrowKind(::Type{T}) where {T} = isprimitivetype(T) ? PrimitiveKind() : StructKind()\n\n\"\"\"\n    ArrowTypes.ArrowType(T) = S\n\nInterface method to define the natively supported arrow type `S` that a given type `T` should be converted to before serializing.\nUseful when a custom type wants a \"serialization hook\" or otherwise needs to be transformed/converted into a natively\nsupported arrow type for serialization. If a type defines `ArrowType`, it must also define a corresponding\n[`ArrowTypes.toarrow(x::T)`](@ref) method which does the actual conversion from `T` to `S`.\nNote that custom structs defined like `struct T` or `mutable struct T` are natively supported in serialization, so unless\n_additional_ transformation/customization is desired, a custom type `T` can serialize with no `ArrowType` definition (by default,\neach field of a struct is serialized, using the results of `fieldnames(T)` and `getfield(x, i)`).\nNote that defining these methods only deal with custom _serialization_ to the arrow format; to be able to _deserialize_ custom\ntypes at all, see the docs for [`ArrowTypes.arrowname`](@ref), [`ArrowTypes.arrowmetadata`](@ref), [`ArrowTypes.JuliaType`](@ref),\nand [`ArrowTypes.fromarrow`](@ref).\n\"\"\"\nfunction ArrowType end\nArrowType(::Type{T}) where {T} = T\nArrowType(::Type{Any}) = Any\nArrowType(::Type{Union{Missing,T}}) where {T} = Union{Missing,ArrowType(T)}\nArrowType(::Type{Missing}) = Missing\n\n\"\"\"\n    ArrowTypes.toarrow(x::T) => S\n\nInterface method to perform the actual conversion from an object `x` of type `T` to the type `S`. `T` and `S` must match the\ntypes used when defining `ArrowTypes.ArrowType(::Type{T}) = S`. Hence, `S` is the natively supported arrow type that `T`\ndesires to convert to to enable serialization. See [`ArrowTypes.ArrowType`](@ref) docs for more details.\nThis enables custom objects to be serialized as a natively supported arrow data type.\n\"\"\"\nfunction toarrow end\ntoarrow(x) = x\n\n\"\"\"\n    ArrowTypes.arrowname(T) = Symbol(name)\n\nInterface method to define the logical type \"label\" for a custom Julia type `T`. Names will be global for an entire arrow dataset,\nand conventionally, custom types will just use their type name along with a Julia- and package-specific prefix; for example,\nfor a custom type `Foo`, I would define `ArrowTypes.arrowname(::Type{Foo}) = Symbol(\"JuliaLang.MyPackage.Foo\")`.\nThis ensures other language implementations won't get confused and are safe to ignore the logical type label.\nWhen arrow stores non-native data, it must still be _stored_ as a native data type, but can have type metadata tied to the data that\nlabels the original _logical_ type it originated from. This enables the conversion of native data back to the logical type when\ndeserializing, as long as the deserializer has the same definitions when the data was serialized. Namely, the current Julia\nsession will need the appropriate [`ArrowTypes.JuliaType`](@ref) and [`ArrowTypes.fromarrow`](@ref) definitions in order to know\nhow to convert the native data to the original logical type. See the docs for those interface methods in order to ensure a complete\nimplementation. Also see the accompanying [`ArrowTypes.arrowmetadata`](@ref) docs around providing additional metadata about a custom\nlogical type that may be necessary to fully re-create a Julia type (e.g. non-field-based type parameters).\n\"\"\"\nfunction arrowname end\nconst EMPTY_SYMBOL = Symbol()\narrowname(T) = EMPTY_SYMBOL\nhasarrowname(T) = arrowname(T) !== EMPTY_SYMBOL\narrowname(::Type{Union{T,Missing}}) where {T} = arrowname(T)\narrowname(::Type{Union{T,Nothing}}) where {T} = arrowname(T)\narrowname(::Type{Missing}) = EMPTY_SYMBOL\narrowname(::Type{Any}) = EMPTY_SYMBOL\n\n\"\"\"\n    ArrowTypes.arrowmetadata(T) => String\n\nInterface method to provide additional logical type metadata when serializing extension types. [`ArrowTypes.arrowname`](@ref)\nprovides the logical type _name_, which may be all that's needed to return a proper Julia type from [`ArrowTypes.JuliaType`](@ref),\nbut some custom types may, for example have type parameters that aren't inferred/based on fields. In order to fully recreate these\nkinds of types when deserializing, these type parameters can be stored by defining `ArrowTypes.arrowmetadata(::Type{T}) = \"type_param\"`.\nThis will then be available to access by overloading `ArrowTypes.JuliaType(::Val{Symbol(name)}, S, arrowmetadata::String)`.\n\"\"\"\nfunction arrowmetadata end\nconst EMPTY_STRING = \"\"\narrowmetadata(T) = EMPTY_STRING\narrowmetadata(::Type{Union{T,Missing}}) where {T} = arrowmetadata(T)\narrowmetadata(::Type{Union{T,Nothing}}) where {T} = arrowmetadata(T)\narrowmetadata(::Type{Nothing}) = EMPTY_STRING\narrowmetadata(::Type{Missing}) = EMPTY_STRING\narrowmetadata(::Type{Any}) = EMPTY_STRING\n\n\"\"\"\n    ArrowTypes.JuliaType(::Val{Symbol(name)}, ::Type{S}, arrowmetadata::String) = T\n\nInterface method to define the custom Julia logical type `T` that a serialized metadata label should be converted to when\ndeserializing. When reading arrow data, and a logical type label is encountered for a column, it will call\n`ArrowTypes.JuliaType(Val(Symbol(name)), S, arrowmetadata)` to see if a Julia type has been \"registered\" for deserialization. The `name`\nused when defining the method *must* correspond to the same `name` when defining `ArrowTypes.arrowname(::Type{T}) = Symbol(name)`.\nThe use of `Val(Symbol(...))` is to allow overloading a method on a specific logical type label. The `S` 2nd argument passed to\n`JuliaType` is the native arrow serialized type. This can be useful for parametric Julia types that wish to correctly parameterize\ntheir custom type based on what was serialized. The 3rd argument `arrowmetadata` is any metadata that was stored when the logical\ntype was serialized as the result of calling `ArrowTypes.arrowmetadata(T)`. Note the 2nd and 3rd arguments are optional when\noverloading if unneeded.\nWhen defining [`ArrowTypes.arrowname`](@ref) and `ArrowTypes.JuliaType`, you may also want to implement [`ArrowTypes.fromarrow`]\nin order to customize how a custom type `T` should be constructed from the native arrow data type. See its docs for more details.\n\"\"\"\nfunction JuliaType end\nJuliaType(val) = nothing\nJuliaType(val, S) = JuliaType(val)\nJuliaType(val, S, meta) = JuliaType(val, S)\n\n\"\"\"\n    ArrowTypes.fromarrow(::Type{T}, x::S) => T\n\nInterface method that provides a \"deserialization hook\" for a custom type `T` to be constructed from the native arrow type `S`.\nThe `T` and `S` types must correspond to the definitions used in `ArrowTypes.ArrowType(::Type{T}) = S`. This is a paired method\nwith [`ArrowTypes.toarrow`](@ref).\n\nThe default definition is `ArrowTypes.fromarrow(::Type{T}, x) = T(x)`, so if that works for a custom type already, no additional\noverload is necessary.\nA few `ArrowKind`s have/allow slightly more custom overloads for their `fromarrow` methods:\n  * `ListKind{true}`: for `String` types, they may overload `fromarrow(::Type{T}, ptr::Ptr{UInt8}, len::Int) = ...` to avoid\n     materializing a `String`\n  * `StructKind`:\n     * May overload `fromarrow(::Type{T}, x...)` where individual fields are passed as separate\n     positional arguments; so if my custom type `Interval` has two fields `first` and `last`, then I'd overload like\n     `ArrowTypes.fromarrow(::Type{Interval}, first, last) = ...`. Note the default implementation is\n     `ArrowTypes.fromarrow(::Type{T}, x...) = T(x...)`, so if your type already accepts all arguments in a constructor\n     no additional `fromarrow` method should be necessary (default struct constructors have this behavior).\n     * Alternatively, may overload `fromarrowstruct(::Type{T}, ::Val{fnames}, x...)`, where `fnames` is a tuple of the\n     field names corresponding to the values in `x`. This approach is useful when you need to implement deserialization\n     in a manner that is agnostic to the field order used by the serializer. When implemented, `fromarrowstruct` takes precedence over `fromarrow` in `StructKind` deserialization.\n\"\"\"\nfunction fromarrow end\nfromarrow(::Type{T}, x::T) where {T} = x\nfromarrow(::Type{T}, x...) where {T} = T(x...)\nfromarrow(::Type{Union{Missing,T}}, ::Missing) where {T} = missing\nfromarrow(::Type{Union{Missing,T}}, x::T) where {T} = x\nfromarrow(::Type{Union{Missing,T}}, x::T) where {T<:NamedTuple} = x # ambiguity fix\nfromarrow(::Type{Union{Missing,T}}, x) where {T} = fromarrow(T, x)\n\n\"NullKind data is actually not physically stored since the data is constant; just the length is needed\"\nstruct NullKind <: ArrowKind end\n\nArrowKind(::Type{Missing}) = NullKind()\nArrowKind(::Type{Nothing}) = NullKind()\nArrowType(::Type{Nothing}) = Missing\ntoarrow(::Nothing) = missing\nconst NOTHING = Symbol(\"JuliaLang.Nothing\")\narrowname(::Type{Nothing}) = NOTHING\nJuliaType(::Val{NOTHING}) = Nothing\nfromarrow(::Type{Nothing}, ::Missing) = nothing\n\n\"PrimitiveKind data is stored as plain bits in a single contiguous buffer\"\nstruct PrimitiveKind <: ArrowKind end\n\nArrowKind(::Type{<:Integer}) = PrimitiveKind()\nArrowKind(::Type{<:AbstractFloat}) = PrimitiveKind()\n\nArrowType(::Type{Char}) = UInt32\ntoarrow(x::Char) = convert(UInt32, x)\nconst CHAR = Symbol(\"JuliaLang.Char\")\narrowname(::Type{Char}) = CHAR\nJuliaType(::Val{CHAR}) = Char\nfromarrow(::Type{Char}, x::UInt32) = Char(x)\n\n\"BoolKind data is stored with values packed down to individual bits; so instead of a traditional Bool being 1 byte/8 bits, 8 Bool values would be packed into a single byte\"\nstruct BoolKind <: ArrowKind end\nArrowKind(::Type{Bool}) = BoolKind()\n\n\"ListKind data are stored in two separate buffers; one buffer contains all the original data elements flattened into one long buffer; the 2nd buffer contains an offset into the 1st buffer for how many elements make up the original array element\"\nstruct ListKind{stringtype} <: ArrowKind end\n\nListKind() = ListKind{false}()\nisstringtype(::ListKind{stringtype}) where {stringtype} = stringtype\nisstringtype(::Type{ListKind{stringtype}}) where {stringtype} = stringtype\n\nArrowKind(::Type{<:AbstractString}) = ListKind{true}()\n# Treate Base.CodeUnits as Binary arrow type\nArrowKind(::Type{<:Base.CodeUnits}) = ListKind{true}()\n\nfromarrow(::Type{T}, ptr::Ptr{UInt8}, len::Int) where {T} =\n    fromarrow(T, unsafe_string(ptr, len))\nfromarrow(::Type{T}, x) where {T<:Base.CodeUnits} = Base.CodeUnits(x)\nfromarrow(::Type{Union{Missing,Base.CodeUnits}}, x) =\n    x === missing ? missing : Base.CodeUnits(x)\n\nArrowType(::Type{Symbol}) = String\ntoarrow(x::Symbol) = String(x)\nconst SYMBOL = Symbol(\"JuliaLang.Symbol\")\narrowname(::Type{Symbol}) = SYMBOL\nJuliaType(::Val{SYMBOL}) = Symbol\n_symbol(ptr, len) = ccall(:jl_symbol_n, Ref{Symbol}, (Ptr{UInt8}, Int), ptr, len)\nfromarrow(::Type{Symbol}, ptr::Ptr{UInt8}, len::Int) = _symbol(ptr, len)\n\nArrowKind(::Type{<:AbstractArray}) = ListKind()\nfromarrow(::Type{A}, x::A) where {A<:AbstractVector{T}} where {T} = x\nfromarrow(::Type{A}, x::AbstractVector{T}) where {A<:AbstractVector{T}} where {T} =\n    convert(A, x)\nArrowKind(::Type{<:AbstractSet}) = ListKind()\nArrowType(::Type{T}) where {T<:AbstractSet{S}} where {S} = Vector{S}\ntoarrow(x::AbstractSet) = collect(x)\nconst SET = Symbol(\"JuliaLang.Set\")\narrowname(::Type{<:AbstractSet}) = SET\nJuliaType(::Val{SET}, ::Type{T}) where {T<:AbstractVector{S}} where {S} = Set{S}\nfromarrow(::Type{T}, x) where {T<:AbstractSet} = T(x)\n\n\"FixedSizeListKind data are stored in a single contiguous buffer; individual elements can be computed based on the fixed size of the lists\"\nstruct FixedSizeListKind{N,T} <: ArrowKind end\ngettype(::FixedSizeListKind{N,T}) where {N,T} = T\ngetsize(::FixedSizeListKind{N,T}) where {N,T} = N\n\nArrowKind(::Type{NTuple{N,T}}) where {N,T} = FixedSizeListKind{N,T}()\n\nArrowKind(::Type{UUID}) = FixedSizeListKind{16,UInt8}()\nArrowType(::Type{UUID}) = NTuple{16,UInt8}\ntoarrow(x::UUID) = _cast(NTuple{16,UInt8}, x.value)\nconst UUIDSYMBOL = Symbol(\"JuliaLang.UUID\")\narrowname(::Type{UUID}) = UUIDSYMBOL\nJuliaType(::Val{UUIDSYMBOL}) = UUID\nfromarrow(::Type{UUID}, x::NTuple{16,UInt8}) = UUID(_cast(UInt128, x))\n\nArrowKind(::Type{IPv4}) = PrimitiveKind()\nArrowType(::Type{IPv4}) = UInt32\ntoarrow(x::IPv4) = x.host\nconst IPV4_SYMBOL = Symbol(\"JuliaLang.IPv4\")\narrowname(::Type{IPv4}) = IPV4_SYMBOL\nJuliaType(::Val{IPV4_SYMBOL}) = IPv4\nfromarrow(::Type{IPv4}, x::Integer) = IPv4(x)\n\nArrowKind(::Type{IPv6}) = FixedSizeListKind{16,UInt8}()\nArrowType(::Type{IPv6}) = NTuple{16,UInt8}\ntoarrow(x::IPv6) = _cast(NTuple{16,UInt8}, x.host)\nconst IPV6_SYMBOL = Symbol(\"JuliaLang.IPv6\")\narrowname(::Type{IPv6}) = IPV6_SYMBOL\nJuliaType(::Val{IPV6_SYMBOL}) = IPv6\nfromarrow(::Type{IPv6}, x::NTuple{16,UInt8}) = IPv6(_cast(UInt128, x))\n\nfunction _cast(::Type{Y}, x)::Y where {Y}\n    y = Ref{Y}()\n    _unsafe_cast!(y, Ref(x), 1)\n    return y[]\nend\n\nfunction _unsafe_cast!(y::Ref{Y}, x::Ref, n::Integer) where {Y}\n    X = eltype(x)\n    GC.@preserve x y begin\n        ptr_x = Base.unsafe_convert(Ptr{X}, x)\n        ptr_y = Base.unsafe_convert(Ptr{Y}, y)\n        unsafe_copyto!(Ptr{X}(ptr_y), ptr_x, n)\n    end\n    return y\nend\n\n\"StructKind data are stored in separate buffers for each field of the struct\"\nstruct StructKind <: ArrowKind end\n\nArrowKind(::Type{<:NamedTuple}) = StructKind()\n\n@inline fromarrowstruct(T::Type, ::Val, x...) = fromarrow(T, x...)\n\nfromarrow(\n    ::Type{NamedTuple{names,types}},\n    x::NamedTuple{names,types},\n) where {names,types<:Tuple} = x\nfromarrow(::Type{T}, x::NamedTuple) where {T} = fromarrow(T, Tuple(x)...)\n\nArrowKind(::Type{<:Tuple}) = StructKind()\nArrowKind(::Type{Tuple{}}) = StructKind()\nconst TUPLE = Symbol(\"JuliaLang.Tuple\")\n# needed to disambiguate the FixedSizeList case for NTuple\narrowname(::Type{NTuple{N,T}}) where {N,T} = EMPTY_SYMBOL\narrowname(::Type{T}) where {T<:Tuple} = TUPLE\narrowname(::Type{Tuple{}}) = TUPLE\nJuliaType(::Val{TUPLE}, ::Type{NamedTuple{names,types}}) where {names,types<:Tuple} = types\nfromarrow(::Type{T}, x::NamedTuple) where {T<:Tuple} = Tuple(x)\n\n# VersionNumber\nconst VERSION_NUMBER = Symbol(\"JuliaLang.VersionNumber\")\nArrowKind(::Type{VersionNumber}) = StructKind()\narrowname(::Type{VersionNumber}) = VERSION_NUMBER\nJuliaType(::Val{VERSION_NUMBER}) = VersionNumber\ndefault(::Type{VersionNumber}) = v\"0\"\n\nfunction fromarrow(::Type{VersionNumber}, v::NamedTuple)\n    VersionNumber(v.major, v.minor, v.patch, v.prerelease, v.build)\nend\n\n\"MapKind data are stored similarly to ListKind, where elements are flattened, and a 2nd offsets buffer contains the individual list element length data\"\nstruct MapKind <: ArrowKind end\n\nArrowKind(::Type{<:AbstractDict}) = MapKind()\n\n\"UnionKind data are stored either in a separate, compacted buffer for each union type (dense), or in full-length buffers for each union type (sparse)\"\nstruct UnionKind <: ArrowKind end\n\nArrowKind(::Union) = UnionKind()\n\n\"DictEncodedKind store a small pool of unique values in one buffer, with a full-length buffer of integer offsets into the small value pool\"\nstruct DictEncodedKind <: ArrowKind end\n\n\"\"\"\nThere are a couple places when writing arrow buffers where\nwe need to write a \"dummy\" value; it doesn't really matter\nwhat we write, but we need to write something of a specific\ntype. So each supported writing type needs to define `default`.\n\"\"\"\nfunction default end\n\ndefault(T) = zero(T)\ndefault(::Type{Symbol}) = Symbol()\ndefault(::Type{Char}) = '\\0'\ndefault(::Type{<:AbstractString}) = \"\"\ndefault(::Type{Any}) = nothing\ndefault(::Type{Missing}) = missing\ndefault(::Type{Nothing}) = nothing\ndefault(::Type{Union{T,Missing}}) where {T} = default(T)\ndefault(::Type{Union{T,Nothing}}) where {T} = default(T)\ndefault(::Type{Union{T,Missing,Nothing}}) where {T} = default(T)\n\nfunction default(::Type{A}) where {A<:AbstractVector{T}} where {T}\n    a = similar(A, 1)\n    a[1] = default(T)\n    return a\nend\n\ndefault(::Type{SubArray{T,N,P,I,L}}) where {T,N,P,I,L} = view(default(P), 0:-1)\n\ndefault(::Type{NTuple{N,T}}) where {N,T} = ntuple(i -> default(T), N)\ndefault(::Type{Tuple{}}) = ()\nfunction default(::Type{T}) where {T<:Tuple}\n    T === Tuple{} && return ()\n    N = Base.isvarargtype(T.parameters[end]) ? length(T.parameters) - 1 : fieldcount(T)\n    return Tuple(default(fieldtype(T, i)) for i = 1:N)\nend\n\ndefault(::Type{T}) where {T<:AbstractDict} = T()\ndefault(::Type{NamedTuple{names,types}}) where {names,types} =\n    NamedTuple{names}(Tuple(default(fieldtype(types, i)) for i = 1:length(names)))\n\nfunction promoteunion(T, S)\n    new = promote_type(T, S)\n    return isabstracttype(new) ? Union{T,S} : new\nend\n\n# lazily call toarrow(x) on getindex for each x in data\nstruct ToArrow{T,A} <: AbstractVector{T}\n    data::A\nend\n\nconcrete_or_concreteunion(T) =\n    isconcretetype(T) ||\n    (T isa Union && concrete_or_concreteunion(T.a) && concrete_or_concreteunion(T.b))\n\nfunction ToArrow(x::A) where {A}\n    S = eltype(A)\n    T = ArrowType(S)\n    fi = firstindex(x)\n    if S === T && concrete_or_concreteunion(S) && fi == 1\n        return x\n    elseif !concrete_or_concreteunion(T)\n        # arrow needs concrete types, so try to find a concrete common type, preferring unions\n        if isempty(x)\n            return Missing[]\n        end\n        T = mapreduce(typeof ∘ toarrow, promoteunion, x)\n        if T === Missing && concrete_or_concreteunion(S)\n            T = promoteunion(T, typeof(toarrow(default(S))))\n        end\n    end\n    return ToArrow{T,A}(x)\nend\n\nBase.IndexStyle(::Type{<:ToArrow}) = Base.IndexLinear()\nBase.size(x::ToArrow) = (length(x.data),)\nBase.eltype(::Type{TA}) where {T,A,TA<:ToArrow{T,A}} = T\nfunction _convert(::Type{T}, x) where {T}\n    if x isa T\n        return x\n    elseif T isa Union\n        # T was a promoted Union and x is not already one of\n        # the concrete Union types, so we need to just try\n        # to convert, recursively, to one of the Union types\n        # unfortunately not much we can do more efficiently here\n        try\n            return _convert(T.a, x)\n        catch\n            return _convert(T.b, x)\n        end\n    else\n        return convert(T, x)\n    end\nend\nBase.getindex(x::ToArrow{T}, i::Int) where {T} =\n    _convert(T, toarrow(getindex(x.data, i + firstindex(x.data) - 1)))\n\nend # module ArrowTypes\n"
  },
  {
    "path": "src/ArrowTypes/test/Project.toml",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\n[deps]\nOffsetArrays = \"6fe1bfb0-de20-5000-8ca7-80f57d26f881\"\nSockets = \"6462fe0b-24de-5631-8697-dd941f90decc\"\nTest = \"8dfed614-e22c-5e08-85e1-65c5234f0b40\"\nUUIDs = \"cf7118a7-6976-5b1a-9a39-7adc72f591a4\"\n"
  },
  {
    "path": "src/ArrowTypes/test/runtests.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\nusing Test, ArrowTypes, UUIDs, Sockets, OffsetArrays\n\ninclude(\"tests.jl\")\n"
  },
  {
    "path": "src/ArrowTypes/test/tests.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\nprimitive type MyInt 32 end\n\nstruct Person\n    id::Int\n    name::String\nend\n\n@testset \"ArrowTypes\" begin\n    @test ArrowTypes.ArrowKind(MyInt) == ArrowTypes.PrimitiveKind()\n    @test ArrowTypes.ArrowKind(Person) == ArrowTypes.StructKind()\n    @test ArrowTypes.ArrowKind(Person(0, \"bob\")) == ArrowTypes.StructKind()\n\n    @test ArrowTypes.ArrowType(Int) == Int\n    @test ArrowTypes.ArrowType(Union{Int,Missing}) == Union{Int,Missing}\n    @test ArrowTypes.ArrowType(Missing) == Missing\n\n    @test ArrowTypes.toarrow(1) === 1\n\n    @test ArrowTypes.arrowname(Int) == Symbol()\n    @test !ArrowTypes.hasarrowname(Int)\n\n    @test ArrowTypes.arrowmetadata(Int) == \"\"\n    @test ArrowTypes.arrowmetadata(Union{Nothing,Int}) == \"\"\n    @test ArrowTypes.arrowmetadata(Union{Missing,Int}) == \"\"\n\n    @test ArrowTypes.JuliaType(1) === nothing\n    @test ArrowTypes.JuliaType(1, Int) === nothing\n    @test ArrowTypes.JuliaType(1, Int, nothing) === nothing\n\n    @test ArrowTypes.fromarrow(Int, 1) === 1\n    @test ArrowTypes.fromarrow(Person, 1, \"bob\") == Person(1, \"bob\")\n    @test ArrowTypes.fromarrow(Union{Int,Missing}, missing) === missing\n    @test ArrowTypes.fromarrow(Union{Int,Missing}, 1) === 1\n    @test ArrowTypes.fromarrow(Union{Float64,Missing}, 1) === 1.0\n\n    @test ArrowTypes.ArrowKind(Missing) == ArrowTypes.NullKind()\n    @test ArrowTypes.ArrowKind(Nothing) == ArrowTypes.NullKind()\n    @test ArrowTypes.ArrowType(Nothing) == Missing\n    @test ArrowTypes.toarrow(nothing) === missing\n    @test ArrowTypes.arrowname(Nothing) == ArrowTypes.NOTHING\n    @test ArrowTypes.JuliaType(Val(ArrowTypes.NOTHING)) == Nothing\n    @test ArrowTypes.fromarrow(Nothing, missing) === nothing\n\n    @test ArrowTypes.ArrowKind(Int) == ArrowTypes.PrimitiveKind()\n    @test ArrowTypes.ArrowKind(Float64) == ArrowTypes.PrimitiveKind()\n\n    @test ArrowTypes.ArrowType(Char) == UInt32\n    @test ArrowTypes.toarrow('1') == UInt32('1')\n    @test ArrowTypes.arrowname(Char) == ArrowTypes.CHAR\n    @test ArrowTypes.JuliaType(Val(ArrowTypes.CHAR)) == Char\n    @test ArrowTypes.fromarrow(Char, UInt32('1')) == '1'\n\n    @test ArrowTypes.ArrowKind(Bool) == ArrowTypes.BoolKind()\n\n    @test ArrowTypes.ListKind() == ArrowTypes.ListKind{false}()\n    @test !ArrowTypes.isstringtype(ArrowTypes.ListKind())\n    @test !ArrowTypes.isstringtype(typeof(ArrowTypes.ListKind()))\n    @test ArrowTypes.ArrowKind(String) == ArrowTypes.ListKind{true}()\n    @test ArrowTypes.ArrowKind(Base.CodeUnits) == ArrowTypes.ListKind{true}()\n\n    hey = collect(b\"hey\")\n    @test ArrowTypes.fromarrow(String, pointer(hey), 3) == \"hey\"\n    @test ArrowTypes.fromarrow(Base.CodeUnits, pointer(hey), 3) == b\"hey\"\n    @test ArrowTypes.fromarrow(Union{Base.CodeUnits,Missing}, pointer(hey), 3) == b\"hey\"\n\n    @test ArrowTypes.ArrowType(Symbol) == String\n    @test ArrowTypes.toarrow(:hey) == \"hey\"\n    @test ArrowTypes.arrowname(Symbol) == ArrowTypes.SYMBOL\n    @test ArrowTypes.JuliaType(Val(ArrowTypes.SYMBOL)) == Symbol\n    @test ArrowTypes.fromarrow(Symbol, pointer(hey), 3) == :hey\n\n    @test ArrowTypes.ArrowKind(Vector{Int}) == ArrowTypes.ListKind()\n    @test ArrowTypes.ArrowKind(Set{Int}) == ArrowTypes.ListKind()\n    @test ArrowTypes.ArrowType(Set{Int}) == Vector{Int}\n    @test typeof(ArrowTypes.toarrow(Set([1, 2, 3]))) <: Vector{Int}\n    @test ArrowTypes.arrowname(Set{Int}) == ArrowTypes.SET\n    @test ArrowTypes.JuliaType(Val(ArrowTypes.SET), Vector{Int}) == Set{Int}\n    @test ArrowTypes.fromarrow(Set{Int}, [1, 2, 3]) == Set([1, 2, 3])\n\n    K = ArrowTypes.ArrowKind(NTuple{3,UInt8})\n    @test ArrowTypes.gettype(K) == UInt8\n    @test ArrowTypes.getsize(K) == 3\n    @test K == ArrowTypes.FixedSizeListKind{3,UInt8}()\n\n    u = UUID(rand(UInt128))\n    ubytes = ArrowTypes._cast(NTuple{16,UInt8}, u.value)\n    @test ArrowTypes.ArrowKind(u) == ArrowTypes.FixedSizeListKind{16,UInt8}()\n    @test ArrowTypes.ArrowType(UUID) == NTuple{16,UInt8}\n    @test ArrowTypes.toarrow(u) == ubytes\n    @test ArrowTypes.arrowname(UUID) == ArrowTypes.UUIDSYMBOL\n    @test ArrowTypes.JuliaType(Val(ArrowTypes.UUIDSYMBOL)) == UUID\n    @test ArrowTypes.fromarrow(UUID, ubytes) == u\n\n    ip4 = IPv4(rand(UInt32))\n    @test ArrowTypes.ArrowKind(ip4) == PrimitiveKind()\n    @test ArrowTypes.ArrowType(IPv4) == UInt32\n    @test ArrowTypes.toarrow(ip4) == ip4.host\n    @test ArrowTypes.arrowname(IPv4) == ArrowTypes.IPV4_SYMBOL\n    @test ArrowTypes.JuliaType(Val(ArrowTypes.IPV4_SYMBOL)) == IPv4\n    @test ArrowTypes.fromarrow(IPv4, ip4.host) == ip4\n\n    ip6 = IPv6(rand(UInt128))\n    ip6_ubytes = ArrowTypes._cast(NTuple{16,UInt8}, ip6.host)\n    @test ArrowTypes.ArrowKind(ip6) == ArrowTypes.FixedSizeListKind{16,UInt8}()\n    @test ArrowTypes.ArrowType(IPv6) == NTuple{16,UInt8}\n    @test ArrowTypes.toarrow(ip6) == ip6_ubytes\n    @test ArrowTypes.arrowname(IPv6) == ArrowTypes.IPV6_SYMBOL\n    @test ArrowTypes.JuliaType(Val(ArrowTypes.IPV6_SYMBOL)) == IPv6\n    @test ArrowTypes.fromarrow(IPv6, ip6_ubytes) == ip6\n\n    nt = (id=1, name=\"bob\")\n    @test ArrowTypes.ArrowKind(NamedTuple) == ArrowTypes.StructKind()\n    @test ArrowTypes.fromarrow(typeof(nt), nt) === nt\n    @test ArrowTypes.fromarrow(Person, nt) == Person(1, \"bob\")\n    @test ArrowTypes.ArrowKind(Tuple) == ArrowTypes.StructKind()\n    @test ArrowTypes.ArrowKind(Tuple{}) == ArrowTypes.StructKind()\n    @test ArrowTypes.arrowname(Tuple{Int,String}) == ArrowTypes.TUPLE\n    @test ArrowTypes.arrowname(Tuple{}) == ArrowTypes.TUPLE\n    @test ArrowTypes.JuliaType(\n        Val(ArrowTypes.TUPLE),\n        NamedTuple{(Symbol(\"1\"), Symbol(\"2\")),Tuple{Int,String}},\n    ) == Tuple{Int,String}\n    @test ArrowTypes.fromarrow(Tuple{Int,String}, nt) == (1, \"bob\")\n    @test ArrowTypes.fromarrow(Union{Missing,typeof(nt)}, nt) == nt\n    # #461\n    @test ArrowTypes.default(Tuple{}) == ()\n    @test ArrowTypes.default(Tuple{Vararg{Int}}) == ()\n    @test ArrowTypes.default(Tuple{String,Vararg{Int}}) == (\"\",)\n\n    v = v\"1\"\n    v_nt = (major=1, minor=0, patch=0, prerelease=(), build=())\n    @test ArrowTypes.ArrowKind(VersionNumber) == ArrowTypes.StructKind()\n    @test ArrowTypes.arrowname(VersionNumber) == ArrowTypes.VERSION_NUMBER\n    @test ArrowTypes.JuliaType(Val(ArrowTypes.VERSION_NUMBER)) == VersionNumber\n    @test ArrowTypes.fromarrow(typeof(v), v_nt) == v\n    @test ArrowTypes.default(VersionNumber) == v\"0\"\n\n    @test ArrowTypes.ArrowKind(Dict{String,Int}) == ArrowTypes.MapKind()\n    @test ArrowTypes.ArrowKind(Union{String,Int}) == ArrowTypes.UnionKind()\n\n    @test ArrowTypes.default(Int) == Int(0)\n    @test ArrowTypes.default(Symbol) == Symbol()\n    @test ArrowTypes.default(Char) == '\\0'\n    @test ArrowTypes.default(String) == \"\"\n    @test ArrowTypes.default(Missing) === missing\n    @test ArrowTypes.default(Nothing) === nothing\n    @test ArrowTypes.default(Union{Int,Missing}) == Int(0)\n    @test ArrowTypes.default(Union{Int,Nothing}) == Int(0)\n    @test ArrowTypes.default(Union{Int,Missing,Nothing}) == Int(0)\n\n    @test ArrowTypes.promoteunion(Int, Float64) == Float64\n    @test ArrowTypes.promoteunion(Int, String) == Union{Int,String}\n\n    @test ArrowTypes.concrete_or_concreteunion(Int)\n    @test !ArrowTypes.concrete_or_concreteunion(Union{Real,String})\n    @test !ArrowTypes.concrete_or_concreteunion(Any)\n\n    @testset \"ToArrow\" begin\n        x = ArrowTypes.ToArrow([1, 2, 3])\n        @test x isa Vector{Int}\n        @test x == [1, 2, 3]\n\n        x = ArrowTypes.ToArrow([:hey, :ho])\n        @test x isa ArrowTypes.ToArrow{String,Vector{Symbol}}\n        @test eltype(x) == String\n        @test x == [\"hey\", \"ho\"]\n\n        x = ArrowTypes.ToArrow(Any[1, 3.14])\n        @test x isa ArrowTypes.ToArrow{Float64,Vector{Any}}\n        @test eltype(x) == Float64\n        @test x == [1.0, 3.14]\n\n        x = ArrowTypes.ToArrow(Any[1, 3.14, \"hey\"])\n        @test x isa ArrowTypes.ToArrow{Union{Float64,String},Vector{Any}}\n        @test eltype(x) == Union{Float64,String}\n        @test x == [1.0, 3.14, \"hey\"]\n\n        x = ArrowTypes.ToArrow(OffsetArray([1, 2, 3], -3:-1))\n        @test x isa ArrowTypes.ToArrow{Int,OffsetVector{Int,Vector{Int}}}\n        @test eltype(x) == Int\n        @test x == [1, 2, 3]\n\n        x = ArrowTypes.ToArrow(OffsetArray(Any[1, 3.14], -3:-2))\n        @test x isa ArrowTypes.ToArrow{Float64,OffsetVector{Any,Vector{Any}}}\n        @test eltype(x) == Float64\n        @test x == [1, 3.14]\n\n        @testset \"respect non-missing concrete type\" begin\n            struct DateTimeTZ\n                instant::Int64\n                tz::String\n            end\n\n            struct Timestamp{TZ}\n                x::Int64\n            end\n\n            ArrowTypes.ArrowType(::Type{DateTimeTZ}) = Timestamp\n            ArrowTypes.toarrow(x::DateTimeTZ) = Timestamp{Symbol(x.tz)}(x.instant)\n            ArrowTypes.default(::Type{DateTimeTZ}) = DateTimeTZ(0, \"UTC\")\n\n            T = Union{DateTimeTZ,Missing}\n            @test !ArrowTypes.concrete_or_concreteunion(ArrowTypes.ArrowType(T))\n            @test eltype(ArrowTypes.ToArrow(T[missing])) == Union{Timestamp{:UTC},Missing}\n\n            # Works since `ArrowTypes.default(Any) === nothing` and\n            # `ArrowTypes.toarrow(nothing) === missing`. Defining `toarrow(::Nothing) = nothing`\n            # would break this test by returning `Union{Nothing,Missing}`.\n            @test eltype(ArrowTypes.ToArrow(Any[missing])) == Missing\n        end\n\n        @testset \"ignore non-missing abstract type\" begin\n            x = ArrowTypes.ToArrow(Union{Missing,Array{Int}}[missing])\n            @test x isa ArrowTypes.ToArrow{Missing,Vector{Union{Missing,Array{Int64}}}}\n            @test eltype(x) == Missing\n            @test isequal(x, [missing])\n        end\n    end\nend\n"
  },
  {
    "path": "src/FlatBuffers/FlatBuffers.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nmodule FlatBuffers\n\nimport Base: ==\n\nconst UOffsetT = UInt32\nconst SOffsetT = Int32\nconst VOffsetT = UInt16\nconst VtableMetadataFields = 2\n\nbasetype(::Enum) = UInt8\nbasetype(::Type{T}) where {T<:Enum{S}} where {S} = S\n\nfunction readbuffer(t::AbstractVector{UInt8}, pos::Integer, ::Type{Bool})\n    @inbounds b = t[pos + 1]\n    return b === 0x01\nend\n\nfunction readbuffer(t::AbstractVector{UInt8}, pos::Integer, ::Type{T}) where {T}\n    GC.@preserve t begin\n        ptr = convert(Ptr{T}, pointer(t, pos + 1))\n        x = unsafe_load(ptr)\n    end\nend\n\ninclude(\"builder.jl\")\ninclude(\"table.jl\")\n\nfunction Base.show(io::IO, x::TableOrStruct)\n    print(io, \"$(typeof(x))\")\n    if isempty(propertynames(x))\n        print(io, \"()\")\n    else\n        show(\n            io,\n            NamedTuple{propertynames(x)}(\n                Tuple(getproperty(x, y) for y in propertynames(x)),\n            ),\n        )\n    end\nend\n\nend # module\n"
  },
  {
    "path": "src/FlatBuffers/builder.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nconst fileIdentifierLength = 4\n\n\"\"\"\nScalar\nA Union of the Julia types `T <: Number` that are allowed in FlatBuffers schema\n\"\"\"\nconst Scalar =\n    Union{Bool,Int8,Int16,Int32,Int64,UInt8,UInt16,UInt32,UInt64,Float32,Float64,Enum}\n\n\"\"\"\nBuilder is a state machine for creating FlatBuffer objects.\nUse a Builder to construct object(s) starting from leaf nodes.\n\nA Builder constructs byte buffers in a last-first manner for simplicity and\nperformance.\n\"\"\"\nmutable struct Builder\n    bytes::Vector{UInt8}\n    minalign::Int\n    vtable::Vector{UOffsetT}\n    objectend::UOffsetT\n    vtables::Vector{UOffsetT}\n    head::UOffsetT\n    nested::Bool\n    finished::Bool\n    sharedstrings::Dict{String,UOffsetT}\nend\n\nbytes(b::Builder) = getfield(b, :bytes)\n\nBuilder(size=0) = Builder(\n    zeros(UInt8, size),\n    1,\n    UOffsetT[],\n    UOffsetT(0),\n    UOffsetT[],\n    UOffsetT(size),\n    false,\n    false,\n    Dict{String,UOffsetT}(),\n)\n\nfunction reset!(b::Builder)\n    empty!(b.bytes)\n    empty!(b.vtable)\n    emtpy!(b.vtables)\n    empty!(b.sharedstrings)\n    b.minalign = 1\n    b.nested = false\n    b.finished = false\n    b.head = 0\n    return\nend\n\nBase.write(sink::Builder, o, x::Union{Bool,UInt8}) = sink.bytes[o + 1] = UInt8(x)\nfunction Base.write(sink::Builder, off, x::T) where {T}\n    off += 1\n    for (i, ind) in enumerate(off:(off + sizeof(T) - 1))\n        sink.bytes[ind] = (x >> ((i - 1) * 8)) % UInt8\n    end\nend\nBase.write(b::Builder, o, x::Float32) = write(b, o, reinterpret(UInt32, x))\nBase.write(b::Builder, o, x::Float64) = write(b, o, reinterpret(UInt64, x))\nBase.write(b::Builder, o, x::Enum) = write(b, o, basetype(x)(x))\n\n\"\"\"\n`finishedbytes` returns a pointer to the written data in the byte buffer.\nPanics if the builder is not in a finished state (which is caused by calling\n`finish!()`).\n\"\"\"\nfunction finishedbytes(b::Builder)\n    assertfinished(b)\n    return view(b.bytes, (b.head + 1):length(b.bytes))\nend\n\nfunction startobject!(b::Builder, numfields)\n    assertnotnested(b)\n    b.nested = true\n    resize!(b.vtable, numfields)\n    fill!(b.vtable, 0)\n    b.objectend = offset(b)\n    return\nend\n\n\"\"\"\nWriteVtable serializes the vtable for the current object, if applicable.\n\nBefore writing out the vtable, this checks pre-existing vtables for equality\nto this one. If an equal vtable is found, point the object to the existing\nvtable and return.\n\nBecause vtable values are sensitive to alignment of object data, not all\nlogically-equal vtables will be deduplicated.\n\nA vtable has the following format:\n<VOffsetT: size of the vtable in bytes, including this value>\n<VOffsetT: size of the object in bytes, including the vtable offset>\n<VOffsetT: offset for a field> * N, where N is the number of fields in\nthe schema for this type. Includes deprecated fields.\nThus, a vtable is made of 2 + N elements, each SizeVOffsetT bytes wide.\n\nAn object has the following format:\n<SOffsetT: offset to this object's vtable (may be negative)>\n<byte: data>+\n\"\"\"\nfunction writevtable!(b::Builder)\n    # Prepend a zero scalar to the object. Later in this function we'll\n    # write an offset here that points to the object's vtable:\n    prepend!(b, SOffsetT(0))\n\n    objectOffset = offset(b)\n    existingVtable = UOffsetT(0)\n\n    # Trim vtable of trailing zeroes.\n    i = findlast(!iszero, b.vtable)\n    if i !== nothing\n        resize!(b.vtable, i)\n    end\n\n    # Search backwards through existing vtables, because similar vtables\n    # are likely to have been recently appended. See\n    # BenchmarkVtableDeduplication for a case in which this heuristic\n    # saves about 30% of the time used in writing objects with duplicate\n    # tables.\n    for i = length(b.vtables):-1:1\n        # Find the other vtable, which is associated with `i`:\n        vt2Offset = b.vtables[i]\n        vt2Start = length(b.bytes) - vt2Offset\n        vt2Len = readbuffer(b.bytes, vt2Start, VOffsetT)\n\n        metadata = VtableMetadataFields * sizeof(VOffsetT)\n        vt2End = vt2Start + vt2Len\n        vt2 = view(b.bytes, (vt2Start + metadata + 1):vt2End) #TODO: might need a +1 on the start of range here\n\n        # Compare the other vtable to the one under consideration.\n        # If they are equal, store the offset and break:\n        if vtableEqual(b.vtable, objectOffset, vt2)\n            existingVtable = vt2Offset\n            break\n        end\n    end\n\n    if existingVtable == 0\n        # Did not find a vtable, so write this one to the buffer.\n\n        # Write out the current vtable in reverse , because\n        # serialization occurs in last-first order:\n        for i = length(b.vtable):-1:1\n            off::UOffsetT = 0\n            if b.vtable[i] != 0\n                # Forward reference to field;\n                # use 32bit number to assert no overflow:\n                off = objectOffset - b.vtable[i]\n            end\n            prepend!(b, VOffsetT(off))\n        end\n\n        # The two metadata fields are written last.\n\n        # First, store the object bytesize:\n        objectSize = objectOffset - b.objectend\n        prepend!(b, VOffsetT(objectSize))\n\n        # Second, store the vtable bytesize:\n        vbytes = (length(b.vtable) + VtableMetadataFields) * sizeof(VOffsetT)\n        prepend!(b, VOffsetT(vbytes))\n\n        # Next, write the offset to the new vtable in the\n        # already-allocated SOffsetT at the beginning of this object:\n        objectStart = SOffsetT(length(b.bytes) - objectOffset)\n        write(b, objectStart, SOffsetT(offset(b) - objectOffset))\n\n        # Finally, store this vtable in memory for future\n        # deduplication:\n        push!(b.vtables, offset(b))\n    else\n        # Found a duplicate vtable.\n\n        objectStart = SOffsetT(length(b.bytes) - objectOffset)\n        b.head = objectStart\n\n        # Write the offset to the found vtable in the\n        # already-allocated SOffsetT at the beginning of this object:\n        write(b, b.head, SOffsetT(existingVtable) - SOffsetT(objectOffset))\n    end\n\n    empty!(b.vtable)\n    return objectOffset\nend\n\n\"\"\"\n`endobject` writes data necessary to finish object construction.\n\"\"\"\nfunction endobject!(b::Builder)\n    assertnested(b)\n    n = writevtable!(b)\n    b.nested = false\n    return n\nend\n\noffset(b::Builder) = UOffsetT(length(b.bytes) - b.head)\n\npad!(b::Builder, n) = foreach(x -> place!(b, 0x00), 1:n)\n\n\"\"\"\n`prep!` prepares to write an element of `size` after `additionalbytes`\nhave been written, e.g. if you write a string, you need to align such\nthe int length field is aligned to sizeof(Int32), and the string data follows it\ndirectly.\nIf all you need to do is align, `additionalbytes` will be 0.\n\"\"\"\nfunction prep!(b::Builder, size, additionalbytes)\n    # Track the biggest thing we've ever aligned to.\n    if size > b.minalign\n        b.minalign = size\n    end\n    # Find the amount of alignment needed such that `size` is properly\n    # aligned after `additionalBytes`:\n    alignsize = xor(Int(-1), (length(b.bytes) - b.head) + additionalbytes) + 1\n    alignsize &= (size - 1)\n\n    # Reallocate the buffer if needed:\n    totalsize = alignsize + size + additionalbytes\n    if b.head <= totalsize\n        len = length(b.bytes)\n        prepend!(b.bytes, zeros(UInt8, totalsize))\n        b.head += length(b.bytes) - len\n    end\n    pad!(b, alignsize)\n    return\nend\n\nfunction Base.prepend!(b::Builder, x::T) where {T}\n    prep!(b, sizeof(T), 0)\n    place!(b, x)\n    return\nend\n\nfunction prependoffset!(b::Builder, off)\n    prep!(b, sizeof(Int32), 0) # Ensure alignment is already done.\n    if !(off <= offset(b))\n        throw(ArgumentError(\"unreachable: $off <= $(offset(b))\"))\n    end\n    place!(b, SOffsetT(offset(b) - off + sizeof(SOffsetT)))\n    return\nend\n\nfunction prependoffsetslot!(b::Builder, o::Int, x::T, d) where {T}\n    if x != T(d)\n        prependoffset!(b, x)\n        slot!(b, o)\n    end\n    return\nend\n\n\"\"\"\n`startvector` initializes bookkeeping for writing a new vector.\n\nA vector has the following format:\n<UOffsetT: number of elements in this vector>\n<T: data>+, where T is the type of elements of this vector.\n\"\"\"\nfunction startvector!(b::Builder, elemSize, numElems, alignment)\n    assertnotnested(b)\n    b.nested = true\n    prep!(b, sizeof(UInt32), elemSize * numElems)\n    prep!(b, alignment, elemSize * numElems)\n    return offset(b)\nend\n\n\"\"\"\n`endvector` writes data necessary to finish vector construction.\n\"\"\"\nfunction endvector!(b::Builder, vectorNumElems)\n    assertnested(b)\n    place!(b, UOffsetT(vectorNumElems))\n    b.nested = false\n    return offset(b)\nend\n\nfunction createsharedstring!(b::Builder, s::AbstractString)\n    get!(b.sharedstrings, s) do\n        createstring!(b, s)\n    end\nend\n\n\"\"\"\n`createstring!` writes a null-terminated string as a vector.\n\"\"\"\nfunction createstring!(b::Builder, s::Union{AbstractString,AbstractVector{UInt8}})\n    assertnotnested(b)\n    b.nested = true\n    s = codeunits(s)\n    prep!(b, sizeof(UInt32), sizeof(s) + 1)\n    place!(b, UInt8(0))\n\n    l = sizeof(s)\n\n    b.head -= l\n    copyto!(b.bytes, b.head + 1, s, 1, l)\n    return endvector!(b, sizeof(s))\nend\n\ncreatebytevector(b::Builder, v) = createstring!(b, v)\n\nfunction assertnested(b::Builder)\n    # If you get this assert, you're in an object while trying to write\n    # data that belongs outside of an object.\n    # To fix this, write non-inline data (like vectors) before creating\n    # objects.\n    if !b.nested\n        throw(ArgumentError(\"Incorrect creation order: must be inside object.\"))\n    end\n    return\nend\n\nfunction assertnotnested(b::Builder)\n    # If you hit this, you're trying to construct a Table/Vector/String\n    # during the construction of its parent table (between the MyTableBuilder\n    # and builder.Finish()).\n    # Move the creation of these view-objects to above the MyTableBuilder to\n    # not get this assert.\n    # Ignoring this assert may appear to work in simple cases, but the reason\n    # it is here is that storing objects in-line may cause vtable offsets\n    # to not fit anymore. It also leads to vtable duplication.\n    if b.nested\n        throw(ArgumentError(\"Incorrect creation order: object must not be nested.\"))\n    end\n    return\nend\n\nfunction assertfinished(b::Builder)\n    # If you get this assert, you're attempting to get access a buffer\n    # which hasn't been finished yet. Be sure to call builder.Finish()\n    # with your root table.\n    # If you really need to access an unfinished buffer, use the bytes\n    # buffer directly.\n    if !b.finished\n        throw(ArgumentError(\"Incorrect use of FinishedBytes(): must call 'Finish' first.\"))\n    end\nend\n\n\"\"\"\n`prependslot!` prepends a `T` onto the object at vtable slot `o`.\nIf value `x` equals default `d`, then the slot will be set to zero and no\nother data will be written.\n\"\"\"\nfunction prependslot!(b::Builder, o::Int, x::T, d, sh=false) where {T<:Scalar}\n    if x != T(d)\n        prepend!(b, x)\n        slot!(b, o)\n    end\n    return\nend\n\n\"\"\"\n`prependstructslot!` prepends a struct onto the object at vtable slot `o`.\nStructs are stored inline, so nothing additional is being added.\nIn generated code, `d` is always 0.\n\"\"\"\nfunction prependstructslot!(b::Builder, voffset, x, d)\n    if x != d\n        assertnested(b)\n        if x != offset(b)\n            throw(ArgumentError(\"inline data write outside of object\"))\n        end\n        slot!(b, voffset)\n    end\n    return\nend\n\n\"\"\"\n`slot!` sets the vtable key `voffset` to the current location in the buffer.\n\"\"\"\nfunction slot!(b::Builder, slotnum)\n    b.vtable[slotnum + 1] = offset(b)\nend\n\n# FinishWithFileIdentifier finalizes a buffer, pointing to the given `rootTable`.\n# as well as applys a file identifier\nfunction finishwithfileidentifier(b::Builder, rootTable, fid)\n    if length(fid) != fileIdentifierLength\n        error(\"incorrect file identifier length\")\n    end\n    # In order to add a file identifier to the flatbuffer message, we need\n    # to prepare an alignment and file identifier length\n    prep!(b, b.minalign, sizeof(Int32) + fileIdentifierLength)\n    for i = fileIdentifierLength:-1:1\n        # place the file identifier\n        place!(b, fid[i])\n    end\n    # finish\n    finish!(b, rootTable)\nend\n\n\"\"\"\n`finish!` finalizes a buffer, pointing to the given `rootTable`.\n\"\"\"\nfunction finish!(b::Builder, rootTable)\n    assertnotnested(b)\n    prep!(b, b.minalign, sizeof(UOffsetT))\n    prependoffset!(b, UOffsetT(rootTable))\n    b.finished = true\n    return\nend\n\n\"vtableEqual compares an unwritten vtable to a written vtable.\"\nfunction vtableEqual(a::Vector{UOffsetT}, objectStart, b::AbstractVector{UInt8})\n    if length(a) * sizeof(VOffsetT) != length(b)\n        return false\n    end\n\n    for i = 0:(length(a) - 1)\n        x = read(IOBuffer(view(b, (i * sizeof(VOffsetT) + 1):length(b))), VOffsetT)\n\n        # Skip vtable entries that indicate a default value.\n        x == 0 && a[i + 1] == 0 && continue\n\n        y = objectStart - a[i + 1]\n        x != y && return false\n    end\n    return true\nend\n\n\"\"\"\n`place!` prepends a `T` to the Builder, without checking for space.\n\"\"\"\nfunction place!(b::Builder, x::T) where {T}\n    b.head -= sizeof(T)\n    write(b, b.head, x)\n    return\nend\n"
  },
  {
    "path": "src/FlatBuffers/table.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"\nTable\n\nThe object containing the flatbuffer and positional information specific to the table.\nThe `vtable` containing the offsets for specific members precedes `pos`.\nThe actual values in the table follow `pos` offset and size of the vtable.\n\n- `bytes::Vector{UInt8}`: the flatbuffer itself\n- `pos::Integer`:  the base position in `bytes` of the table\n\"\"\"\nabstract type Table end\nabstract type Struct end\n\nconst TableOrStruct = Union{Table,Struct}\n\nbytes(x::TableOrStruct) = getfield(x, :bytes)\npos(x::TableOrStruct) = getfield(x, :pos)\n\n==(a::T, b::T) where {T<:TableOrStruct} =\n    all(getproperty(a, p) == getproperty(b, p) for p in propertynames(a))\n\n(::Type{T})(b::Builder) where {T<:TableOrStruct} =\n    T(b.bytes[(b.head + 1):end], get(b, b.head, Int32))\n\ngetrootas(::Type{T}, bytes::Vector{UInt8}, offset) where {T<:Table} =\n    init(T, bytes, offset + readbuffer(bytes, offset, UOffsetT))\ninit(::Type{T}, bytes::Vector{UInt8}, pos::Integer) where {T<:TableOrStruct} = T(bytes, pos)\n\nconst TableOrBuilder = Union{Table,Struct,Builder}\n\nBase.get(t::TableOrBuilder, pos, ::Type{T}) where {T} = readbuffer(bytes(t), pos, T)\nBase.get(t::TableOrBuilder, pos, ::Type{T}) where {T<:Enum} = T(get(t, pos, basetype(T)))\n\n\"\"\"\n`offset` provides access into the Table's vtable.\n\nDeprecated fields are ignored by checking against the vtable's length.\n\"\"\"\nfunction offset(t::Table, vtableoffset)\n    vtable = pos(t) - get(t, pos(t), SOffsetT)\n    return vtableoffset < get(t, vtable, VOffsetT) ?\n           get(t, vtable + vtableoffset, VOffsetT) : VOffsetT(0)\nend\n\n\"`indirect` retrieves the relative offset stored at `offset`.\"\nindirect(t::Table, off) = off + get(t, off, UOffsetT)\n\ngetvalue(t, o, ::Type{Nothing}) = nothing\ngetvalue(t, o, ::Type{T}) where {T<:Scalar} = get(t, pos(t) + o, T)\ngetvalue(t, o, ::Type{T}) where {T<:Enum} = T(get(t, pos(t) + o, enumtype(T)))\n\nfunction Base.String(t::Table, off)\n    off += get(t, off, UOffsetT)\n    start = off + sizeof(UOffsetT)\n    len = get(t, off, UOffsetT)\n    return unsafe_string(pointer(bytes(t), start + 1), len)\nend\n\nfunction bytevector(t::Table, off)\n    off += get(t, off, UOffsetT)\n    start = off + sizeof(UOffsetT)\n    len = get(t, off, UOffsetT)\n    return view(bytes(t), (start + 1):(start + len + 1))\nend\n\n\"\"\"\n`vectorlen` retrieves the length of the vector whose offset is stored at\n`off` in this object.\n\"\"\"\nfunction vectorlen(t::Table, off)\n    off += pos(t)\n    off += get(t, off, UOffsetT)\n    return Int(get(t, off, UOffsetT))\nend\n\n\"\"\"\n`vector` retrieves the start of data of the vector whose offset is stored\nat `off` in this object.\n\"\"\"\nfunction vector(t::Table, off)\n    off += pos(t)\n    x = off + get(t, off, UOffsetT)\n    # data starts after metadata containing the vector length\n    return x + sizeof(UOffsetT)\nend\n\nstruct Array{T,S,TT} <: AbstractVector{T}\n    _tab::TT\n    pos::Int64\n    data::Vector{S}\nend\n\nfunction Array{T}(t::Table, off) where {T}\n    a = vector(t, off)\n    S = T <: Table ? UOffsetT : T <: Struct ? NTuple{structsizeof(T),UInt8} : T\n    ptr = convert(Ptr{S}, pointer(bytes(t), a + 1))\n    data = unsafe_wrap(Base.Array, ptr, vectorlen(t, off))\n    return Array{T,S,typeof(t)}(t, a, data)\nend\n\nfunction structsizeof end\n\nBase.IndexStyle(::Type{<:Array}) = Base.IndexLinear()\nBase.size(x::Array) = size(x.data)\nBase.@propagate_inbounds function Base.getindex(A::Array{T,S}, i::Integer) where {T,S}\n    if T === S\n        return A.data[i]\n    elseif T <: Struct\n        return init(T, bytes(A._tab), A.pos + (i - 1) * structsizeof(T))\n    else # T isa Table\n        return init(T, bytes(A._tab), indirect(A._tab, A.pos + (i - 1) * 4))\n    end\nend\n\nBase.@propagate_inbounds function Base.setindex!(A::Array{T,S}, v, i::Integer) where {T,S}\n    if T === S\n        return setindex!(A.data, v, i)\n    else\n        error(\"setindex! not supported for reference/table types\")\n    end\nend\n\nfunction union(t::Table, off)\n    off += pos(t)\n    return off + get(t, off, UOffsetT)\nend\n\nfunction union!(t::Table, t2::Table, off)\n    off += pos(t)\n    t2.pos = off + get(t, off, UOffsetT)\n    t2.bytes = bytes(t)\n    return\nend\n\n\"\"\"\nGetVOffsetTSlot retrieves the VOffsetT that the given vtable location\npoints to. If the vtable value is zero, the default value `d`\nwill be returned.\n\"\"\"\nfunction getoffsetslot(t::Table, slot, d)\n    off = offset(t, slot)\n    if off == 0\n        return d\n    end\n    return off\nend\n\n\"\"\"\n`getslot` retrieves the `T` that the given vtable location\npoints to. If the vtable value is zero, the default value `d`\nwill be returned.\n\"\"\"\nfunction getslot(t::Table, slot, d::T) where {T}\n    off = offset(t, slot)\n    if off == 0\n        return d\n    end\n\n    return get(t, pos(t) + off, T)\nend\n"
  },
  {
    "path": "src/append.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\n\"\"\"\n    Arrow.append(io::IO, tbl)\n    Arrow.append(file::String, tbl)\n    tbl |> Arrow.append(file)\n\nAppend any [Tables.jl](https://github.com/JuliaData/Tables.jl)-compatible `tbl`\nto an existing arrow formatted file or IO. The existing arrow data must be in\nIPC stream format. Note that appending to the \"feather formatted file\" is _not_\nallowed, as this file format doesn't support appending. That means files written\nlike `Arrow.write(filename::String, tbl)` _cannot_ be appended to; instead, you\nshould write like `Arrow.write(filename::String, tbl; file=false)`.\n\nWhen an IO object is provided to be written on to, it must support seeking. For\nexample, a file opened in `r+` mode or an `IOBuffer` that is readable, writable\nand seekable can be appended to, but not a network stream.\n\nMultiple record batches will be written based on the number of\n`Tables.partitions(tbl)` that are provided; by default, this is just\none for a given table, but some table sources support automatic\npartitioning. Note you can turn multiple table objects into partitions\nby doing `Tables.partitioner([tbl1, tbl2, ...])`, but note that\neach table must have the exact same `Tables.Schema`.\n\nBy default, `Arrow.append` will use multiple threads to write multiple\nrecord batches simultaneously (e.g. if julia is started with `julia -t 8`\nor the `JULIA_NUM_THREADS` environment variable is set).\n\nSupported keyword arguments to `Arrow.append` include:\n  * `alignment::Int=8`: specify the number of bytes to align buffers to when written in messages; strongly recommended to only use alignment values of 8 or 64 for modern memory cache line optimization\n  * `colmetadata=nothing`: the metadata that should be written as the table's columns' `custom_metadata` fields; must either be `nothing` or an `AbstractDict` of `column_name::Symbol => column_metadata` where `column_metadata` is an iterable of `<:AbstractString` pairs.\n  * `dictencode::Bool=false`: whether all columns should use dictionary encoding when being written; to dict encode specific columns, wrap the column/array in `Arrow.DictEncode(col)`\n  * `dictencodenested::Bool=false`: whether nested data type columns should also dict encode nested arrays/buffers; other language implementations [may not support this](https://arrow.apache.org/docs/status.html)\n  * `denseunions::Bool=true`: whether Julia `Vector{<:Union}` arrays should be written using the dense union layout; passing `false` will result in the sparse union layout\n  * `largelists::Bool=false`: causes list column types to be written with Int64 offset arrays; mainly for testing purposes; by default, Int64 offsets will be used only if needed\n  * `maxdepth::Int=$DEFAULT_MAX_DEPTH`: deepest allowed nested serialization level; this is provided by default to prevent accidental infinite recursion with mutually recursive data structures\n  * `metadata=Arrow.getmetadata(tbl)`: the metadata that should be written as the table's schema's `custom_metadata` field; must either be `nothing` or an iterable of `<:AbstractString` pairs.\n  * `ntasks::Int`: number of concurrent threaded tasks to allow while writing input partitions out as arrow record batches; default is no limit; to disable multithreaded writing, pass `ntasks=1`\n  * `convert::Bool`: whether certain arrow primitive types in the schema of `file` should be converted to Julia defaults for matching them to the schema of `tbl`; by default, `convert=true`.\n  * `file::Bool`: applicable when an `IO` is provided, whether it is a file; by default `file=false`.\n\"\"\"\nfunction append end\n\nappend(io_or_file; kw...) = x -> append(io_or_file, x; kw...)\n\nfunction append(file::String, tbl; kwargs...)\n    open(file, isfile(file) ? \"r+\" : \"w+\") do io\n        append(io, tbl; file=true, kwargs...)\n    end\n\n    return file\nend\n\nfunction append(\n    io::IO,\n    tbl;\n    metadata=getmetadata(tbl),\n    colmetadata=nothing,\n    largelists::Bool=false,\n    denseunions::Bool=true,\n    dictencode::Bool=false,\n    dictencodenested::Bool=false,\n    alignment::Int=8,\n    maxdepth::Int=DEFAULT_MAX_DEPTH,\n    ntasks=Inf,\n    convert::Bool=true,\n    file::Bool=false,\n)\n    if ntasks < 1\n        throw(\n            ArgumentError(\n                \"ntasks keyword argument must be > 0; pass `ntasks=1` to disable multithreaded writing\",\n            ),\n        )\n    end\n\n    startpos = position(io)\n    seekend(io)\n    len = position(io) - startpos\n    seek(io, startpos) # leave the stream position unchanged\n\n    if len == 0 # empty file, not initialized, we can just write to it\n        kwargs = Dict{Symbol,Any}(\n            :largelists => largelists,\n            :denseunions => denseunions,\n            :dictencode => dictencode,\n            :dictencodenested => dictencodenested,\n            :alignment => alignment,\n            :maxdepth => maxdepth,\n            :metadata => metadata,\n            :colmetadata => colmetadata,\n        )\n        if isa(ntasks, Integer)\n            kwargs[:ntasks] = ntasks\n        end\n        write(io, tbl; kwargs...)\n    else\n        isstream, arrow_schema, compress = stream_properties(io; convert=convert)\n        if !isstream\n            throw(ArgumentError(\"append is supported only to files in arrow stream format\"))\n        end\n        if compress isa Symbol && compress !== :lz4 && compress !== :zstd\n            throw(\n                ArgumentError(\n                    \"unsupported compress keyword argument value: $compress. Valid values include `:lz4` or `:zstd`\",\n                ),\n            )\n        end\n        append(\n            io,\n            tbl,\n            arrow_schema,\n            compress,\n            largelists,\n            denseunions,\n            dictencode,\n            dictencodenested,\n            alignment,\n            maxdepth,\n            ntasks,\n            metadata,\n            colmetadata,\n        )\n    end\n\n    return io\nend\n\nfunction append(\n    io::IO,\n    source,\n    arrow_schema,\n    compress,\n    largelists,\n    denseunions,\n    dictencode,\n    dictencodenested,\n    alignment,\n    maxdepth,\n    ntasks,\n    meta,\n    colmeta,\n)\n    seekend(io)\n    skip(io, -8) # overwrite last 8 bytes of last empty message footer\n\n    sch = Ref{Tables.Schema}(arrow_schema)\n    sync = OrderedSynchronizer()\n    msgs = Channel{Message}(ntasks)\n    dictencodings = Dict{Int64,Any}() # Lockable{DictEncoding}\n    # build messages\n    blocks = (Block[], Block[])\n    # start message writing from channel\n    threaded = ntasks > 1\n    tsk =\n        threaded ? (@wkspawn for msg in msgs\n            Base.write(io, msg, blocks, sch, alignment)\n        end) : (@async for msg in msgs\n            Base.write(io, msg, blocks, sch, alignment)\n        end)\n    anyerror = Threads.Atomic{Bool}(false)\n    errorref = Ref{Any}()\n    @sync for (i, tbl) in enumerate(Tables.partitions(source))\n        if anyerror[]\n            @error \"error writing arrow data on partition = $(errorref[][3])\" exception =\n                (errorref[][1], errorref[][2])\n            error(\"fatal error writing arrow data\")\n        end\n        @debug \"processing table partition i = $i\"\n        tbl_cols = Tables.columns(tbl)\n        tbl_schema = Tables.schema(tbl_cols)\n\n        if !is_equivalent_schema(arrow_schema, tbl_schema)\n            throw(ArgumentError(\"Table schema does not match existing arrow file schema\"))\n        end\n\n        if threaded\n            @wkspawn process_partition(\n                tbl_cols,\n                dictencodings,\n                largelists,\n                compress,\n                denseunions,\n                dictencode,\n                dictencodenested,\n                maxdepth,\n                sync,\n                msgs,\n                alignment,\n                i,\n                sch,\n                errorref,\n                anyerror,\n                meta,\n                colmeta,\n            )\n        else\n            @async process_partition(\n                tbl_cols,\n                dictencodings,\n                largelists,\n                compress,\n                denseunions,\n                dictencode,\n                dictencodenested,\n                maxdepth,\n                sync,\n                msgs,\n                alignment,\n                i,\n                sch,\n                errorref,\n                anyerror,\n                meta,\n                colmeta,\n            )\n        end\n    end\n    if anyerror[]\n        @error \"error writing arrow data on partition = $(errorref[][3])\" exception =\n            (errorref[][1], errorref[][2])\n        error(\"fatal error writing arrow data\")\n    end\n    # close our message-writing channel, no further put!-ing is allowed\n    close(msgs)\n    # now wait for our message-writing task to finish writing\n    wait(tsk)\n\n    Base.write(\n        io,\n        Message(UInt8[], nothing, 0, true, false, Meta.Schema),\n        blocks,\n        sch,\n        alignment,\n    )\n\n    return io\nend\n\nfunction stream_properties(io::IO; convert::Bool=true)\n    startpos = position(io)\n    buff = similar(FILE_FORMAT_MAGIC_BYTES)\n    start_magic = read!(io, buff) == FILE_FORMAT_MAGIC_BYTES\n    seekend(io)\n    len = position(io) - startpos\n    skip(io, -length(FILE_FORMAT_MAGIC_BYTES))\n    end_magic = read!(io, buff) == FILE_FORMAT_MAGIC_BYTES\n    seek(io, startpos) # leave the stream position unchanged\n\n    isstream = !(len > 24 && start_magic && end_magic)\n    if isstream\n        stream = Stream(io, convert=convert)\n        for table in stream\n            # no need to scan further once we get compression information\n            (stream.compression[] !== nothing) && break\n        end\n        seek(io, startpos) # leave the stream position unchanged\n        return isstream, Tables.Schema(stream.names, stream.types), stream.compression[]\n    else\n        return isstream, nothing, nothing\n    end\nend\n\nfunction is_equivalent_schema(sch1::Tables.Schema, sch2::Tables.Schema)\n    (sch1.names == sch2.names) || (return false)\n    for (t1, t2) in zip(sch1.types, sch2.types)\n        tt1 = Base.nonmissingtype(t1)\n        tt2 = Base.nonmissingtype(t2)\n        if t1 == t2\n            continue\n        elseif tt1 <: AbstractVector && tt2 <: AbstractVector && eltype(tt1) == eltype(tt2)\n            continue\n        elseif isstructtype(tt1) && isstructtype(tt2)\n            is_equivalent_type_by_field(tt1, tt2)\n        else\n            return false\n        end\n    end\n    true\nend\n\nfunction is_equivalent_type_by_field(T1, T2)\n    n1 = fieldcount(T1)\n    n2 = fieldcount(T2)\n    n1 != n2 && return false\n\n    for i = 1:n1\n        fieldname(T1, i) == fieldname(T2, i) || return false\n\n        if fieldtype(T1, i) == fieldtype(T2, i)\n            continue\n        elseif isstructtype(T1) && isstructtype(T2)\n            is_equivalent_type_by_field(T1, T2) || continue\n        else\n            return false\n        end\n    end\n    true\nend\n"
  },
  {
    "path": "src/arraytypes/arraytypes.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"\n    Arrow.ArrowVector\n\nAn abstract type that subtypes `AbstractVector`. Each specific arrow array type\nsubtypes `ArrowVector`. See [`BoolVector`](@ref), [`Primitive`](@ref), [`List`](@ref),\n[`Map`](@ref), [`FixedSizeList`](@ref), [`Struct`](@ref), [`DenseUnion`](@ref),\n[`SparseUnion`](@ref), and [`DictEncoded`](@ref) for more details.\n\"\"\"\nabstract type ArrowVector{T} <: AbstractVector{T} end\n\nBase.IndexStyle(::Type{A}) where {A<:ArrowVector} = Base.IndexLinear()\nBase.similar(::Type{A}, dims::Dims) where {T,A<:ArrowVector{T}} = Vector{T}(undef, dims)\nvaliditybitmap(x::ArrowVector) = x.validity\nnullcount(x::ArrowVector) = validitybitmap(x).nc\ngetmetadata(x::ArrowVector) = x.metadata\nBase.deleteat!(x::T, inds) where {T<:ArrowVector} = throw(\n    ArgumentError(\"`$T` does not support `deleteat!`; arrow data is by nature immutable\"),\n)\n\nfunction toarrowvector(\n    x,\n    i=1,\n    de=Dict{Int64,Any}(),\n    ded=DictEncoding[],\n    meta=getmetadata(x);\n    compression::Union{Nothing,Symbol,LZ4FrameCompressor,ZstdCompressor}=nothing,\n    kw...,\n)\n    @debug \"converting top-level column to arrow format: col = $(typeof(x)), compression = $compression, kw = $(values(kw))\"\n    @debug x\n    A = arrowvector(x, i, 0, 0, de, ded, meta; compression=compression, kw...)\n    if compression isa LZ4FrameCompressor\n        A = compress(Meta.CompressionType.LZ4_FRAME, compression, A)\n    elseif compression isa ZstdCompressor\n        A = compress(Meta.CompressionType.ZSTD, compression, A)\n    elseif compression isa Symbol && compression == :lz4\n        comp = lz4_frame_compressor()\n        A = Base.@lock comp begin\n            compress(Meta.CompressionType.LZ4_FRAME, comp[], A)\n        end\n    elseif compression isa Symbol && compression == :zstd\n        comp = zstd_compressor()\n        A = Base.@lock comp begin\n            compress(Meta.CompressionType.ZSTD, comp[], A)\n        end\n    end\n    @debug \"converted top-level column to arrow format: $(typeof(A))\"\n    @debug A\n    return A\nend\n\nfunction arrowvector(\n    x,\n    i,\n    nl,\n    fi,\n    de,\n    ded,\n    meta;\n    dictencoding::Bool=false,\n    dictencode::Bool=false,\n    maxdepth::Int=DEFAULT_MAX_DEPTH,\n    kw...,\n)\n    if nl > maxdepth\n        error(\n            \"reached nested serialization level ($nl) deeper than provided max depth argument ($(maxdepth)); to increase allowed nesting level, pass `maxdepth=X`\",\n        )\n    end\n    T = maybemissing(eltype(x))\n    if !(x isa DictEncode) && !dictencoding && (dictencode || DataAPI.refarray(x) !== x)\n        x = DictEncode(x, dictencodeid(i, nl, fi))\n    elseif x isa DictEncoded\n        return arrowvector(\n            DictEncodeType,\n            x,\n            i,\n            nl,\n            fi,\n            de,\n            ded,\n            meta;\n            dictencode=dictencode,\n            kw...,\n        )\n    elseif !(x isa DictEncode)\n        x = ToArrow(x)\n    end\n    S = maybemissing(eltype(x))\n    if ArrowTypes.hasarrowname(T)\n        meta = _arrowtypemeta(\n            _normalizemeta(meta),\n            String(ArrowTypes.arrowname(T)),\n            String(ArrowTypes.arrowmetadata(T)),\n        )\n    end\n    return arrowvector(\n        S,\n        x,\n        i,\n        nl,\n        fi,\n        de,\n        ded,\n        meta;\n        dictencode=dictencode,\n        maxdepth=maxdepth,\n        kw...,\n    )\nend\n\n_normalizemeta(::Nothing) = nothing\n_normalizemeta(meta) = toidict(String(k) => String(v) for (k, v) in meta)\n\n_normalizecolmeta(::Nothing) = nothing\n_normalizecolmeta(colmeta) = toidict(\n    Symbol(k) => toidict(String(v1) => String(v2) for (v1, v2) in v) for (k, v) in colmeta\n)\n\nfunction _arrowtypemeta(::Nothing, n, m)\n    return toidict((\"ARROW:extension:name\" => n, \"ARROW:extension:metadata\" => m))\nend\n\nfunction _arrowtypemeta(meta, n, m)\n    dict = Dict(meta)\n    dict[\"ARROW:extension:name\"] = n\n    dict[\"ARROW:extension:metadata\"] = m\n    return toidict(dict)\nend\n\n# now we check for ArrowType converions and dispatch on ArrowKind\nfunction arrowvector(::Type{S}, x, i, nl, fi, de, ded, meta; kw...) where {S}\n    meta = _normalizemeta(meta)\n    return arrowvector(ArrowKind(S), x, i, nl, fi, de, ded, meta; kw...)\nend\n\nstruct NullVector{T} <: ArrowVector{T}\n    data::MissingVector\n    metadata::Union{Nothing,Base.ImmutableDict{String,String}}\nend\nBase.size(v::NullVector) = (length(v.data),)\nBase.getindex(v::NullVector{T}, i::Int) where {T} =\n    ArrowTypes.fromarrow(T, getindex(v.data, i))\n\narrowvector(::NullKind, x, i, nl, fi, de, ded, meta; kw...) = NullVector{eltype(x)}(\n    MissingVector(length(x)),\n    isnothing(meta) ? nothing : toidict(meta),\n)\ncompress(Z::Meta.CompressionType.T, comp, v::NullVector) =\n    Compressed{Z,NullVector}(v, CompressedBuffer[], length(v), length(v), Compressed[])\n\nfunction makenodesbuffers!(\n    col::NullVector,\n    fieldnodes,\n    fieldbuffers,\n    bufferoffset,\n    alignment,\n)\n    push!(fieldnodes, FieldNode(length(col), length(col)))\n    @debug \"made field node: nodeidx = $(length(fieldnodes)), col = $(typeof(col)), len = $(fieldnodes[end].length), nc = $(fieldnodes[end].null_count)\"\n    return bufferoffset\nend\n\nfunction writebuffer(io, col::NullVector, alignment)\n    return\nend\n\n\"\"\"\n    Arrow.ValidityBitmap\n\nA bit-packed array type where each bit corresponds to an element in an\n[`ArrowVector`](@ref), indicating whether that element is \"valid\" (bit == 1),\nor not (bit == 0). Used to indicate element missingness (whether it's null).\n\nIf the null count of an array is zero, the `ValidityBitmap` will be \"empty\"\nand all elements are treated as \"valid\"/non-null.\n\"\"\"\nstruct ValidityBitmap <: ArrowVector{Bool}\n    bytes::Vector{UInt8} # arrow memory blob\n    pos::Int # starting byte of validity bitmap\n    ℓ::Int # # of _elements_ (not bytes!) in bitmap (because bitpacking)\n    nc::Int # null count\nend\n\nBase.size(p::ValidityBitmap) = (p.ℓ,)\nnullcount(x::ValidityBitmap) = x.nc\n\nfunction ValidityBitmap(x)\n    T = eltype(x)\n    if !(T >: Missing)\n        return ValidityBitmap(UInt8[], 1, length(x), 0)\n    end\n    len = length(x)\n    blen = cld(len, 8)\n    bytes = Vector{UInt8}(undef, blen)\n    st = iterate(x)\n    nc = 0\n    b = 0xff\n    j = k = 1\n    for y in x\n        if y === missing\n            nc += 1\n            b = setbit(b, false, j)\n        end\n        j += 1\n        if j == 9\n            @inbounds bytes[k] = b\n            b = 0xff\n            j = 1\n            k += 1\n        end\n    end\n    if j > 1\n        bytes[k] = b\n    end\n    return ValidityBitmap(nc == 0 ? UInt8[] : bytes, 1, nc == 0 ? 0 : len, nc)\nend\n\n@propagate_inbounds function Base.getindex(p::ValidityBitmap, i::Integer)\n    # no boundscheck because parent array should do it\n    # if a validity bitmap is empty, it either means:\n    #   1) the parent array null_count is 0, so all elements are valid\n    #   2) parent array is also empty, so \"all\" elements are valid\n    p.nc == 0 && return true\n    # translate element index to bitpacked byte index\n    a, b = divrem(i - 1, 8) .+ (1, 1)\n    @inbounds byte = p.bytes[p.pos + a - 1]\n    # check individual bit of byte\n    return getbit(byte, b)\nend\n\n@propagate_inbounds function Base.setindex!(p::ValidityBitmap, v, i::Integer)\n    x = convert(Bool, v)\n    p.ℓ == 0 && !x && throw(BoundsError(p, i))\n    a, b = fldmod1(i, 8)\n    @inbounds byte = p.bytes[p.pos + a - 1]\n    @inbounds p.bytes[p.pos + a - 1] = setbit(byte, x, b)\n    return v\nend\n\nfunction writebitmap(io, col::ArrowVector, alignment)\n    v = col.validity\n    @debug \"writing validity bitmap: nc = $(v.nc), n = $(cld(v.ℓ, 8))\"\n    v.nc == 0 && return 0\n    n = Base.write(io, view(v.bytes, (v.pos):(v.pos + cld(v.ℓ, 8) - 1)))\n    return n + writezeros(io, paddinglength(n, alignment))\nend\n\ninclude(\"compressed.jl\")\ninclude(\"primitive.jl\")\ninclude(\"bool.jl\")\ninclude(\"list.jl\")\ninclude(\"fixedsizelist.jl\")\ninclude(\"map.jl\")\ninclude(\"struct.jl\")\ninclude(\"unions.jl\")\ninclude(\"dictencoding.jl\")\ninclude(\"views.jl\")\n"
  },
  {
    "path": "src/arraytypes/bool.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"\n    Arrow.BoolVector\n\nA bit-packed array type, similar to [`ValidityBitmap`](@ref), but which\nholds boolean values, `true` or `false`.\n\"\"\"\nstruct BoolVector{T} <: ArrowVector{T}\n    arrow::Vector{UInt8} # need to hold a reference to arrow memory blob\n    pos::Int\n    validity::ValidityBitmap\n    ℓ::Int64\n    metadata::Union{Nothing,Base.ImmutableDict{String,String}}\nend\n\nBase.size(p::BoolVector) = (p.ℓ,)\n\n@propagate_inbounds function Base.getindex(p::BoolVector{T}, i::Integer) where {T}\n    @boundscheck checkbounds(p, i)\n    if T >: Missing\n        @inbounds !p.validity[i] && return missing\n    end\n    a, b = fldmod1(i, 8)\n    @inbounds byte = p.arrow[p.pos + a - 1]\n    # check individual bit of byte\n    return ArrowTypes.fromarrow(T, getbit(byte, b))\nend\n\n@propagate_inbounds function Base.setindex!(p::BoolVector, v, i::Integer)\n    @boundscheck checkbounds(p, i)\n    x = convert(Bool, v)\n    a, b = fldmod1(i, 8)\n    @inbounds byte = p.arrow[p.pos + a - 1]\n    @inbounds p.arrow[p.pos + a - 1] = setbit(byte, x, b)\n    return v\nend\n\narrowvector(::BoolKind, x::BoolVector, i, nl, fi, de, ded, meta; kw...) = x\n\nfunction arrowvector(::BoolKind, x, i, nl, fi, de, ded, meta; kw...)\n    validity = ValidityBitmap(x)\n    len = length(x)\n    blen = cld(len, 8)\n    bytes = Vector{UInt8}(undef, blen)\n    b = 0xff\n    j = k = 1\n    for y in x\n        if y === false\n            b = setbit(b, false, j)\n        end\n        j += 1\n        if j == 9\n            @inbounds bytes[k] = b\n            b = 0xff\n            j = 1\n            k += 1\n        end\n    end\n    if j > 1\n        bytes[k] = b\n    end\n    return BoolVector{eltype(x)}(bytes, 1, validity, len, meta)\nend\n\nfunction compress(Z::Meta.CompressionType.T, comp, p::P) where {P<:BoolVector}\n    len = length(p)\n    nc = nullcount(p)\n    validity = compress(Z, comp, p.validity)\n    data = compress(Z, comp, view(p.arrow, (p.pos):(p.pos + cld(p.ℓ, 8) - 1)))\n    return Compressed{Z,P}(p, [validity, data], len, nc, Compressed[])\nend\n\nfunction makenodesbuffers!(\n    col::BoolVector,\n    fieldnodes,\n    fieldbuffers,\n    bufferoffset,\n    alignment,\n)\n    len = length(col)\n    nc = nullcount(col)\n    push!(fieldnodes, FieldNode(len, nc))\n    @debug \"made field node: nodeidx = $(length(fieldnodes)), col = $(typeof(col)), len = $(fieldnodes[end].length), nc = $(fieldnodes[end].null_count)\"\n    # validity bitmap\n    blen = nc == 0 ? 0 : bitpackedbytes(len, alignment)\n    push!(fieldbuffers, Buffer(bufferoffset, blen))\n    @debug \"made field buffer: bufferidx = $(length(fieldbuffers)), offset = $(fieldbuffers[end].offset), len = $(fieldbuffers[end].length), padded = $(padding(fieldbuffers[end].length, alignment))\"\n    # adjust buffer offset, make primitive array buffer\n    bufferoffset += blen\n    blen = bitpackedbytes(len, alignment)\n    push!(fieldbuffers, Buffer(bufferoffset, blen))\n    @debug \"made field buffer: bufferidx = $(length(fieldbuffers)), offset = $(fieldbuffers[end].offset), len = $(fieldbuffers[end].length), padded = $(padding(fieldbuffers[end].length, alignment))\"\n    return bufferoffset + blen\nend\n\nfunction writebuffer(io, col::BoolVector, alignment)\n    @debug \"writebuffer: col = $(typeof(col))\"\n    @debug col\n    writebitmap(io, col, alignment)\n    n = Base.write(io, view(col.arrow, (col.pos):(col.pos + cld(col.ℓ, 8) - 1)))\n    return n + writezeros(io, paddinglength(n, alignment))\nend\n"
  },
  {
    "path": "src/arraytypes/compressed.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nstruct CompressedBuffer\n    data::Vector{UInt8}\n    uncompressedlength::Int64\nend\n\n\"\"\"\n    Arrow.Compressed\n\nRepresents the compressed version of an [`ArrowVector`](@ref).\nHolds a reference to the original column. May have `Compressed`\nchildren for nested array types.\n\"\"\"\nstruct Compressed{Z,A}\n    data::A\n    buffers::Vector{CompressedBuffer}\n    len::Int64\n    nullcount::Int64\n    children::Vector{Compressed}\nend\n\nBase.length(c::Compressed) = c.len\nBase.eltype(::Type{C}) where {Z,A,C<:Compressed{Z,A}} = eltype(A)\ngetmetadata(x::Compressed) = getmetadata(x.data)\ncompressiontype(c::Compressed{Z}) where {Z} = Z\n\nfunction compress(Z::Meta.CompressionType.T, comp, x::Array)\n    GC.@preserve x begin\n        y = unsafe_wrap(Array, convert(Ptr{UInt8}, pointer(x)), sizeof(x))\n        return CompressedBuffer(transcode(comp, y), length(y))\n    end\nend\n\ncompress(Z::Meta.CompressionType.T, comp, x) = compress(Z, comp, convert(Array, x))\n\ncompress(Z::Meta.CompressionType.T, comp, v::ValidityBitmap) =\n    v.nc == 0 ? CompressedBuffer(UInt8[], 0) :\n    compress(Z, comp, view(v.bytes, (v.pos):(v.pos + cld(v.ℓ, 8) - 1)))\n\nfunction makenodesbuffers!(\n    col::Compressed,\n    fieldnodes,\n    fieldbuffers,\n    bufferoffset,\n    alignment,\n)\n    push!(fieldnodes, FieldNode(col.len, col.nullcount))\n    @debug \"made field node: nodeidx = $(length(fieldnodes)), col = $(typeof(col)), len = $(fieldnodes[end].length), nc = $(fieldnodes[end].null_count)\"\n    for buffer in col.buffers\n        blen = length(buffer.data) == 0 ? 0 : 8 + length(buffer.data)\n        push!(fieldbuffers, Buffer(bufferoffset, blen))\n        @debug \"made field buffer: bufferidx = $(length(fieldbuffers)), offset = $(fieldbuffers[end].offset), len = $(fieldbuffers[end].length), padded = $(padding(fieldbuffers[end].length, alignment))\"\n        bufferoffset += padding(blen, alignment)\n    end\n    for child in col.children\n        bufferoffset =\n            makenodesbuffers!(child, fieldnodes, fieldbuffers, bufferoffset, alignment)\n    end\n    return bufferoffset\nend\n\nfunction writearray(io, b::CompressedBuffer)\n    if length(b.data) > 0\n        n = Base.write(io, b.uncompressedlength)\n        @debug \"writing compressed buffer: uncompressedlength = $(b.uncompressedlength), n = $(length(b.data))\"\n        @debug b.data\n        return n + Base.write(io, b.data)\n    end\n    return 0\nend\n\nfunction writebuffer(io, col::Compressed, alignment)\n    @debug \"writebuffer: col = $(typeof(col))\"\n    @debug col\n    for buffer in col.buffers\n        n = writearray(io, buffer)\n        writezeros(io, paddinglength(n, alignment))\n    end\n    for child in col.children\n        writebuffer(io, child, alignment)\n    end\n    return\nend\n"
  },
  {
    "path": "src/arraytypes/dictencoding.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"\n    Arrow.DictEncoding\n\nRepresents the \"pool\" of possible values for a [`DictEncoded`](@ref)\narray type. Whether the order of values is significant can be checked\nby looking at the `isOrdered` boolean field.\n\nThe `S` type parameter, while not tied directly to any field, is the\nsigned integer \"index type\" of the parent DictEncoded. We keep track\nof this in the DictEncoding in order to validate the length of the pool\ndoesn't exceed the index type limit. The general workflow of writing arrow\ndata means the initial schema will typically be based off the data in the\nfirst record batch, and subsequent record batches need to match the same\nschema exactly. For example, if a non-first record batch dict encoded column\nwere to cause a DictEncoding pool to overflow on unique values, a fatal error\nshould be thrown.\n\"\"\"\nmutable struct DictEncoding{T,S,A} <: ArrowVector{T}\n    id::Int64\n    data::A\n    isOrdered::Bool\n    metadata::Union{Nothing,Base.ImmutableDict{String,String}}\nend\n\nindextype(::Type{DictEncoding{T,S,A}}) where {T,S,A} = S\nindextype(::T) where {T<:DictEncoding} = indextype(T)\n\nBase.size(d::DictEncoding) = size(d.data)\n\n@propagate_inbounds function Base.getindex(d::DictEncoding{T}, i::Integer) where {T}\n    @boundscheck checkbounds(d, i)\n    return @inbounds ArrowTypes.fromarrow(T, d.data[i])\nend\n\n# convenience wrapper to signal that an input column should be\n# dict encoded when written to the arrow format\nstruct DictEncodeType{T} end\ngetT(::Type{DictEncodeType{T}}) where {T} = T\n\n\"\"\"\n    Arrow.DictEncode(::AbstractVector, id::Integer=nothing)\n\nSignals that a column/array should be dictionary encoded when serialized\nto the arrow streaming/file format. An optional `id` number may be provided\nto signal that multiple columns should use the same pool when being\ndictionary encoded.\n\"\"\"\nstruct DictEncode{T,A} <: AbstractVector{DictEncodeType{T}}\n    id::Int64\n    data::A\nend\n\nDictEncode(x::A, id=-1) where {A} = DictEncode{eltype(A),A}(id, x)\nBase.IndexStyle(::Type{<:DictEncode}) = Base.IndexLinear()\nBase.size(x::DictEncode) = (length(x.data),)\nBase.iterate(x::DictEncode, st...) = iterate(x.data, st...)\nBase.getindex(x::DictEncode, i::Int) = getindex(x.data, i)\nArrowTypes.ArrowKind(::Type{<:DictEncodeType}) = DictEncodedKind()\nBase.copy(x::DictEncode) = DictEncode(x.data, x.id)\n\n\"\"\"\n    Arrow.DictEncoded\n\nA dictionary encoded array type (similar to a `PooledArray`). Behaves just\nlike a normal array in most respects; internally, possible values are stored\nin the `encoding::DictEncoding` field, while the `indices::Vector{<:Integer}`\nfield holds the \"codes\" of each element for indexing into the encoding pool.\nAny column/array can be dict encoding when serializing to the arrow format\neither by passing the `dictencode=true` keyword argument to [`Arrow.write`](@ref)\n(which causes _all_ columns to be dict encoded), or wrapping individual columns/\narrays in [`Arrow.DictEncode(x)`](@ref).\n\"\"\"\nstruct DictEncoded{T,S,A} <: ArrowVector{T}\n    arrow::Vector{UInt8} # need to hold a reference to arrow memory blob\n    validity::ValidityBitmap\n    indices::Vector{S}\n    encoding::DictEncoding{T,S,A}\n    metadata::Union{Nothing,Base.ImmutableDict{String,String}}\nend\n\nDictEncoded(\n    b::Vector{UInt8},\n    v::ValidityBitmap,\n    inds::Vector{S},\n    encoding::DictEncoding{T,S,A},\n    meta,\n) where {S,T,A} = DictEncoded{T,S,A}(b, v, inds, encoding, meta)\n\nBase.size(d::DictEncoded) = size(d.indices)\n\nisdictencoded(d::DictEncoded) = true\nisdictencoded(x) = false\nisdictencoded(c::Compressed{Z,A}) where {Z,A<:DictEncoded} = true\n\nfunction signedtype(n::Integer)\n    typs = (Int8, Int16, Int32, Int64)\n    typs[something(findfirst(n .≤ typemax.(typs)), 4)]\nend\n\nsignedtype(::Type{UInt8}) = Int8\nsignedtype(::Type{UInt16}) = Int16\nsignedtype(::Type{UInt32}) = Int32\nsignedtype(::Type{UInt64}) = Int64\nsignedtype(::Type{T}) where {T<:Signed} = T\n\nindtype(d::DictEncoded{T,S,A}) where {T,S,A} = S\nindtype(c::Compressed{Z,A}) where {Z,A<:DictEncoded} = indtype(c.data)\n\ndictencodeid(colidx, nestedlevel, fieldid) =\n    (Int64(nestedlevel) << 48) | (Int64(fieldid) << 32) | Int64(colidx)\n\ngetid(d::DictEncoded) = d.encoding.id\ngetid(c::Compressed{Z,A}) where {Z,A<:DictEncoded} = c.data.encoding.id\n\nfunction arrowvector(\n    ::DictEncodedKind,\n    x::DictEncoded,\n    i,\n    nl,\n    fi,\n    de,\n    ded,\n    meta;\n    dictencode::Bool=false,\n    dictencodenested::Bool=false,\n    kw...,\n)\n    id = x.encoding.id\n    # XXX This is a race condition if two workers hit this block at the same time, then they'll create\n    # distinct locks\n    if !haskey(de, id)\n        de[id] = Lockable(x.encoding)\n    else\n        encodinglockable = de[id]\n        Base.@lock encodinglockable begin\n            encoding = encodinglockable.value\n            # in this case, we just need to check if any values in our local pool need to be delta dicationary serialized\n            deltas = setdiff(x.encoding, encoding)\n            if !isempty(deltas)\n                ET = indextype(encoding)\n                if length(deltas) + length(encoding) > typemax(ET)\n                    error(\n                        \"fatal error serializing dict encoded column with ref index type of $ET; subsequent record batch unique values resulted in $(length(deltas) + length(encoding)) unique values, which exceeds possible index values in $ET\",\n                    )\n                end\n                data = arrowvector(\n                    deltas,\n                    i,\n                    nl,\n                    fi,\n                    de,\n                    ded,\n                    nothing;\n                    dictencode=dictencodenested,\n                    dictencodenested=dictencodenested,\n                    dictencoding=true,\n                    kw...,\n                )\n                push!(\n                    ded,\n                    DictEncoding{eltype(data),ET,typeof(data)}(\n                        id,\n                        data,\n                        false,\n                        getmetadata(data),\n                    ),\n                )\n                if typeof(encoding.data) <: ChainedVector\n                    append!(encoding.data, data)\n                else\n                    data2 = ChainedVector([encoding.data, data])\n                    encoding = DictEncoding{eltype(data2),ET,typeof(data2)}(\n                        id,\n                        data2,\n                        false,\n                        getmetadata(encoding),\n                    )\n                    de[id] = Lockable(encoding)\n                end\n            end\n        end\n    end\n    return x\nend\n\nfunction arrowvector(\n    ::DictEncodedKind,\n    x,\n    i,\n    nl,\n    fi,\n    de,\n    ded,\n    meta;\n    dictencode::Bool=false,\n    dictencodenested::Bool=false,\n    kw...,\n)\n    @assert x isa DictEncode\n    id = x.id == -1 ? dictencodeid(i, nl, fi) : x.id\n    x = x.data\n    len = length(x)\n    validity = ValidityBitmap(x)\n    # XXX This is a race condition if two workers hit this block at the same time, then they'll create\n    # distinct locks\n    if !haskey(de, id)\n        # dict encoding doesn't exist yet, so create for 1st time\n        if DataAPI.refarray(x) === x || DataAPI.refpool(x) === nothing\n            # need to encode ourselves\n            x = PooledArray(x; signed=true, compress=true)\n            inds = refa = DataAPI.refarray(x)\n            pool = DataAPI.refpool(x)\n        else\n            pool = DataAPI.refpool(x)\n            refa = DataAPI.refarray(x)\n            inds = copyto!(similar(Vector{signedtype(length(pool))}, length(refa)), refa)\n        end\n        # adjust to \"offset\" instead of index\n        inds .-= firstindex(refa)\n        data = arrowvector(\n            pool,\n            i,\n            nl,\n            fi,\n            de,\n            ded,\n            nothing;\n            dictencode=dictencodenested,\n            dictencodenested=dictencodenested,\n            dictencoding=true,\n            kw...,\n        )\n        encoding = DictEncoding{eltype(data),eltype(inds),typeof(data)}(\n            id,\n            data,\n            false,\n            getmetadata(data),\n        )\n        de[id] = Lockable(encoding)\n    else\n        # encoding already exists\n        # compute inds based on it\n        # if value doesn't exist in encoding, push! it\n        # also add to deltas updates\n        encodinglockable = de[id]\n        Base.@lock encodinglockable begin\n            encoding = encodinglockable.value\n            len = length(x)\n            ET = indextype(encoding)\n            pool = Dict{Union{eltype(encoding),eltype(x)},ET}(\n                a => (b - 1) for (b, a) in enumerate(encoding)\n            )\n            deltas = eltype(x)[]\n            inds = Vector{ET}(undef, len)\n            for (j, val) in enumerate(x)\n                @inbounds inds[j] = get!(pool, val) do\n                    push!(deltas, val)\n                    return length(pool)\n                end\n            end\n            if !isempty(deltas)\n                if length(deltas) + length(encoding) > typemax(ET)\n                    error(\n                        \"fatal error serializing dict encoded column with ref index type of $ET; subsequent record batch unique values resulted in $(length(deltas) + length(encoding)) unique values, which exceeds possible index values in $ET\",\n                    )\n                end\n                data = arrowvector(\n                    deltas,\n                    i,\n                    nl,\n                    fi,\n                    de,\n                    ded,\n                    nothing;\n                    dictencode=dictencodenested,\n                    dictencodenested=dictencodenested,\n                    dictencoding=true,\n                    kw...,\n                )\n                push!(\n                    ded,\n                    DictEncoding{eltype(data),ET,typeof(data)}(\n                        id,\n                        data,\n                        false,\n                        getmetadata(data),\n                    ),\n                )\n                if typeof(encoding.data) <: ChainedVector\n                    append!(encoding.data, data)\n                else\n                    data2 = ChainedVector([encoding.data, data])\n                    encoding = DictEncoding{eltype(data2),ET,typeof(data2)}(\n                        id,\n                        data2,\n                        false,\n                        getmetadata(encoding),\n                    )\n                    de[id] = Lockable(encoding)\n                end\n            end\n        end\n    end\n    if meta !== nothing && getmetadata(encoding) !== nothing\n        meta = toidict(merge!(Dict(meta), Dict(getmetadata(encoding))))\n    elseif getmetadata(encoding) !== nothing\n        meta = getmetadata(encoding)\n    end\n    return DictEncoded(UInt8[], validity, inds, encoding, meta)\nend\n\n@propagate_inbounds function Base.getindex(d::DictEncoded, i::Integer)\n    @boundscheck checkbounds(d, i)\n    @inbounds valid = d.validity[i]\n    !valid && return missing\n    @inbounds idx = d.indices[i]\n    return @inbounds d.encoding[idx + 1]\nend\n\n@propagate_inbounds function Base.setindex!(d::DictEncoded{T}, v, i::Integer) where {T}\n    @boundscheck checkbounds(d, i)\n    if v === missing\n        @inbounds d.validity[i] = false\n    else\n        ix = findfirst(d.encoding.data, v)\n        if ix === nothing\n            push!(d.encoding.data, v)\n            @inbounds d.indices[i] = length(d.encoding.data) - 1\n        else\n            @inbounds d.indices[i] = ix - 1\n        end\n    end\n    return v\nend\n\nfunction Base.copy(x::DictEncoded{T,S}) where {T,S}\n    pool = copy(x.encoding.data)\n    valid = x.validity\n    inds = x.indices\n    refs = copy(inds)\n    @inbounds for i = 1:length(inds)\n        refs[i] = refs[i] + one(S)\n    end\n    return PooledArray(\n        PooledArrays.RefArray(refs),\n        Dict{T,S}(val => i for (i, val) in enumerate(pool)),\n        pool,\n    )\nend\n\nfunction compress(Z::Meta.CompressionType.T, comp, x::A) where {A<:DictEncoded}\n    len = length(x)\n    nc = nullcount(x)\n    validity = compress(Z, comp, x.validity)\n    inds = compress(Z, comp, x.indices)\n    return Compressed{Z,A}(x, [validity, inds], len, nc, Compressed[])\nend\n\nfunction DataAPI.levels(x::DictEncoded)\n    rp = DataAPI.refpool(x)   # may contain missing values\n    Missing <: eltype(rp) || return rp\n    convert(AbstractArray{nonmissingtype(eltype(rp))}, deleteat!(rp, ismissing.(rp)))\nend\n\nfunction makenodesbuffers!(\n    col::DictEncoded{T,S},\n    fieldnodes,\n    fieldbuffers,\n    bufferoffset,\n    alignment,\n) where {T,S}\n    len = length(col)\n    nc = nullcount(col)\n    push!(fieldnodes, FieldNode(len, nc))\n    @debug \"made field node: nodeidx = $(length(fieldnodes)), col = $(typeof(col)), len = $(fieldnodes[end].length), nc = $(fieldnodes[end].null_count)\"\n    # validity bitmap\n    blen = nc == 0 ? 0 : bitpackedbytes(len, alignment)\n    push!(fieldbuffers, Buffer(bufferoffset, blen))\n    @debug \"made field buffer: bufferidx = $(length(fieldbuffers)), offset = $(fieldbuffers[end].offset), len = $(fieldbuffers[end].length), padded = $(padding(fieldbuffers[end].length, alignment))\"\n    bufferoffset += blen\n    # indices\n    blen = sizeof(S) * len\n    push!(fieldbuffers, Buffer(bufferoffset, blen))\n    @debug \"made field buffer: bufferidx = $(length(fieldbuffers)), offset = $(fieldbuffers[end].offset), len = $(fieldbuffers[end].length), padded = $(padding(fieldbuffers[end].length, alignment))\"\n    bufferoffset += padding(blen, alignment)\n    return bufferoffset\nend\n\nDataAPI.refarray(x::DictEncoded{T,S}) where {T,S} = x.indices .+ one(S)\n\nDataAPI.refpool(x::DictEncoded) = copy(x.encoding.data)\n\nfunction writebuffer(io, col::DictEncoded, alignment)\n    @debug \"writebuffer: col = $(typeof(col))\"\n    @debug col\n    writebitmap(io, col, alignment)\n    # write indices\n    n = writearray(io, col.indices)\n    @debug \"writing array: col = $(typeof(col.indices)), n = $n, padded = $(padding(n, alignment))\"\n    writezeros(io, paddinglength(n, alignment))\n    return\nend\n"
  },
  {
    "path": "src/arraytypes/fixedsizelist.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"\n    Arrow.FixedSizeList\n\nAn `ArrowVector` where each element is a \"fixed size\" list of some kind, like a `NTuple{N, T}`.\n\"\"\"\nstruct FixedSizeList{T,A<:AbstractVector} <: ArrowVector{T}\n    arrow::Vector{UInt8} # need to hold a reference to arrow memory blob\n    validity::ValidityBitmap\n    data::A\n    ℓ::Int\n    metadata::Union{Nothing,Base.ImmutableDict{String,String}}\nend\n\nBase.size(l::FixedSizeList) = (l.ℓ,)\n\n@propagate_inbounds function Base.getindex(l::FixedSizeList{T}, i::Integer) where {T}\n    @boundscheck checkbounds(l, i)\n    S = Base.nonmissingtype(T)\n    X = ArrowTypes.ArrowKind(ArrowTypes.ArrowType(S))\n    N = ArrowTypes.getsize(X)\n    Y = ArrowTypes.gettype(X)\n    if X !== T && !(l.validity[i])\n        return missing\n    else\n        off = (i - 1) * N\n        if X === T && isbitstype(Y)\n            tup = _unsafe_load_tuple(NTuple{N,Y}, l.data, off + 1)\n        else\n            tup = ntuple(j -> l.data[off + j], N)\n        end\n        return ArrowTypes.fromarrow(T, tup)\n    end\nend\n\nfunction _unsafe_load_tuple(\n    ::Type{NTuple{N,T}},\n    bytes::Vector{UInt8},\n    i::Integer,\n) where {N,T}\n    x = Ref(bytes, i)\n    y = Ref{NTuple{N,T}}()\n    ArrowTypes._unsafe_cast!(y, x, N)\n    return y[]\nend\n\n@propagate_inbounds function Base.setindex!(l::FixedSizeList{T}, v::T, i::Integer) where {T}\n    @boundscheck checkbounds(l, i)\n    if v === missing\n        @inbounds l.validity[i] = false\n    else\n        N = ArrowTypes.getsize(\n            ArrowTypes.ArrowKind(ArrowTypes.ArrowType(Base.nonmissingtype(T))),\n        )\n        off = (i - 1) * N\n        foreach(1:N) do j\n            @inbounds l.data[off + j] = v[j]\n        end\n    end\n    return v\nend\n\n# lazy equal-spaced flattener\nstruct ToFixedSizeList{T,N,A} <: AbstractVector{T}\n    data::A # A is AbstractVector of (AbstractVector or AbstractString)\nend\n\norigtype(::ToFixedSizeList{T,N,A}) where {T,N,A} = eltype(A)\n\nfunction ToFixedSizeList(input)\n    NT = ArrowTypes.ArrowKind(Base.nonmissingtype(eltype(input))) # typically NTuple{N, T}\n    return ToFixedSizeList{ArrowTypes.gettype(NT),ArrowTypes.getsize(NT),typeof(input)}(\n        input,\n    )\nend\n\nBase.IndexStyle(::Type{<:ToFixedSizeList}) = Base.IndexLinear()\nBase.size(x::ToFixedSizeList{T,N}) where {T,N} = (N * length(x.data),)\n\nBase.@propagate_inbounds function Base.getindex(\n    A::ToFixedSizeList{T,N},\n    i::Integer,\n) where {T,N}\n    @boundscheck checkbounds(A, i)\n    a, b = fldmod1(i, N)\n    @inbounds x = A.data[a]\n    return @inbounds x === missing ? ArrowTypes.default(T) : x[b]\nend\n\n# efficient iteration\n@inline function Base.iterate(\n    A::ToFixedSizeList{T,N},\n    (i, chunk, chunk_i, len)=(1, 1, 1, length(A)),\n) where {T,N}\n    i > len && return nothing\n    @inbounds y = A.data[chunk]\n    @inbounds x = y === missing ? ArrowTypes.default(T) : y[chunk_i]\n    if chunk_i == N\n        chunk += 1\n        chunk_i = 1\n    else\n        chunk_i += 1\n    end\n    return x, (i + 1, chunk, chunk_i, len)\nend\n\narrowvector(::FixedSizeListKind, x::FixedSizeList, i, nl, fi, de, ded, meta; kw...) = x\n\nfunction arrowvector(\n    ::FixedSizeListKind{N,T},\n    x,\n    i,\n    nl,\n    fi,\n    de,\n    ded,\n    meta;\n    kw...,\n) where {N,T}\n    len = length(x)\n    validity = ValidityBitmap(x)\n    flat = ToFixedSizeList(x)\n    if eltype(flat) == UInt8\n        data = flat\n        S = origtype(flat)\n    else\n        data = arrowvector(flat, i, nl + 1, fi, de, ded, nothing; kw...)\n        S = withmissing(eltype(x), NTuple{N,eltype(data)})\n    end\n    return FixedSizeList{S,typeof(data)}(UInt8[], validity, data, len, meta)\nend\n\nfunction compress(Z::Meta.CompressionType.T, comp, x::FixedSizeList{T,A}) where {T,A}\n    len = length(x)\n    nc = nullcount(x)\n    validity = compress(Z, comp, x.validity)\n    buffers = [validity]\n    children = Compressed[]\n    if eltype(A) == UInt8\n        push!(buffers, compress(Z, comp, x.data))\n    else\n        push!(children, compress(Z, comp, x.data))\n    end\n    return Compressed{Z,typeof(x)}(x, buffers, len, nc, children)\nend\n\nfunction makenodesbuffers!(\n    col::FixedSizeList{T,A},\n    fieldnodes,\n    fieldbuffers,\n    bufferoffset,\n    alignment,\n) where {T,A}\n    len = length(col)\n    nc = nullcount(col)\n    push!(fieldnodes, FieldNode(len, nc))\n    @debug \"made field node: nodeidx = $(length(fieldnodes)), col = $(typeof(col)), len = $(fieldnodes[end].length), nc = $(fieldnodes[end].null_count)\"\n    # validity bitmap\n    blen = nc == 0 ? 0 : bitpackedbytes(len, alignment)\n    push!(fieldbuffers, Buffer(bufferoffset, blen))\n    @debug \"made field buffer: bufferidx = $(length(fieldbuffers)), offset = $(fieldbuffers[end].offset), len = $(fieldbuffers[end].length), padded = $(padding(fieldbuffers[end].length, alignment))\"\n    bufferoffset += blen\n    if eltype(A) === UInt8\n        blen = ArrowTypes.getsize(ArrowTypes.ArrowKind(Base.nonmissingtype(T))) * len\n        push!(fieldbuffers, Buffer(bufferoffset, blen))\n        @debug \"made field buffer: bufferidx = $(length(fieldbuffers)), offset = $(fieldbuffers[end].offset), len = $(fieldbuffers[end].length), padded = $(padding(fieldbuffers[end].length, alignment))\"\n        bufferoffset += padding(blen, alignment)\n    else\n        bufferoffset =\n            makenodesbuffers!(col.data, fieldnodes, fieldbuffers, bufferoffset, alignment)\n    end\n    return bufferoffset\nend\n\nfunction writebuffer(io, col::FixedSizeList{T,A}, alignment) where {T,A}\n    @debug \"writebuffer: col = $(typeof(col))\"\n    @debug col\n    writebitmap(io, col, alignment)\n    # write values array\n    if eltype(A) === UInt8\n        n = writearray(io, UInt8, col.data)\n        @debug \"writing array: col = $(typeof(col.data)), n = $n, padded = $(padding(n, alignment))\"\n        writezeros(io, paddinglength(n, alignment))\n    else\n        writebuffer(io, col.data, alignment)\n    end\n    return\nend\n"
  },
  {
    "path": "src/arraytypes/list.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nstruct Offsets{T<:Union{Int32,Int64}} <: ArrowVector{Tuple{T,T}}\n    arrow::Vector{UInt8} # need to hold a reference to arrow memory blob\n    offsets::Vector{T}\nend\n\nBase.size(o::Offsets) = (length(o.offsets) - 1,)\n\n@propagate_inbounds function Base.getindex(o::Offsets, i::Integer)\n    @boundscheck checkbounds(o, i)\n    @inbounds lo = o.offsets[i] + 1\n    @inbounds hi = o.offsets[i + 1]\n    return lo, hi\nend\n\n\"\"\"\n    Arrow.List\n\nAn `ArrowVector` where each element is a variable sized list of some kind, like an `AbstractVector` or `AbstractString`.\n\"\"\"\nstruct List{T,O,A} <: ArrowVector{T}\n    arrow::Vector{UInt8} # need to hold a reference to arrow memory blob\n    validity::ValidityBitmap\n    offsets::Offsets{O}\n    data::A\n    ℓ::Int\n    metadata::Union{Nothing,Base.ImmutableDict{String,String}}\nend\n\nBase.size(l::List) = (l.ℓ,)\n\n@propagate_inbounds function Base.getindex(l::List{T}, i::Integer) where {T}\n    @boundscheck checkbounds(l, i)\n    @inbounds lo, hi = l.offsets[i]\n    S = Base.nonmissingtype(T)\n    K = ArrowTypes.ArrowKind(ArrowTypes.ArrowType(S))\n    # special-case Base.CodeUnits for ArrowTypes compat\n    if ArrowTypes.isstringtype(K) || S <: Base.CodeUnits\n        if S !== T\n            if S <: Base.CodeUnits\n                return l.validity[i] ?\n                       Base.CodeUnits(unsafe_string(pointer(l.data, lo), hi - lo + 1)) :\n                       missing\n            else\n                return l.validity[i] ?\n                       ArrowTypes.fromarrow(T, pointer(l.data, lo), hi - lo + 1) : missing\n            end\n        else\n            if S <: Base.CodeUnits\n                return Base.CodeUnits(unsafe_string(pointer(l.data, lo), hi - lo + 1))\n            else\n                return ArrowTypes.fromarrow(T, pointer(l.data, lo), hi - lo + 1)\n            end\n        end\n    elseif S !== T\n        return l.validity[i] ? ArrowTypes.fromarrow(T, view(l.data, lo:hi)) : missing\n    else\n        return ArrowTypes.fromarrow(T, view(l.data, lo:hi))\n    end\nend\n\n# @propagate_inbounds function Base.setindex!(l::List{T}, v, i::Integer) where {T}\n\n# end\n\n# internal interface definitions to be able to treat AbstractString/CodeUnits similarly\n_ncodeunits(x::AbstractString) = ncodeunits(x)\n_codeunits(x::AbstractString) = codeunits(x)\n_ncodeunits(x::Base.CodeUnits) = length(x)\n_codeunits(x::Base.CodeUnits) = x\n\n# an AbstractVector version of Iterators.flatten\n# code based on SentinelArrays.ChainedVector\nstruct ToList{T,stringtype,A,I} <: AbstractVector{T}\n    data::Vector{A} # A is AbstractVector or AbstractString\n    inds::Vector{I}\nend\n\norigtype(::ToList{T,S,A,I}) where {T,S,A,I} = A\nliststringtype(::Type{ToList{T,S,A,I}}) where {T,S,A,I} = S\nfunction liststringtype(::List{T,O,A}) where {T,O,A}\n    ST = Base.nonmissingtype(T)\n    K = ArrowTypes.ArrowKind(ST)\n    return liststringtype(A) || ArrowTypes.isstringtype(K) || ST <: Base.CodeUnits # add the CodeUnits check for ArrowTypes compat for now\nend\nliststringtype(T) = false\n\nfunction ToList(input; largelists::Bool=false)\n    AT = eltype(input)\n    ST = Base.nonmissingtype(AT)\n    K = ArrowTypes.ArrowKind(ST)\n    stringtype = ArrowTypes.isstringtype(K) || ST <: Base.CodeUnits # add the CodeUnits check for ArrowTypes compat for now\n    T = stringtype ? UInt8 : eltype(ST)\n    len = stringtype ? _ncodeunits : length\n    data = AT[]\n    I = largelists ? Int64 : Int32\n    inds = I[0]\n    sizehint!(data, length(input))\n    sizehint!(inds, length(input))\n    totalsize = I(0)\n    for x in input\n        if x === missing\n            push!(data, missing)\n        else\n            push!(data, x)\n            totalsize += len(x)\n            if I === Int32 && totalsize > 2147483647\n                I = Int64\n                inds = convert(Vector{Int64}, inds)\n            end\n        end\n        push!(inds, totalsize)\n    end\n    return ToList{T,stringtype,AT,I}(data, inds)\nend\n\nBase.IndexStyle(::Type{<:ToList}) = Base.IndexLinear()\nBase.size(x::ToList{T,S,A,I}) where {T,S,A,I} = (isempty(x.inds) ? zero(I) : x.inds[end],)\n\nfunction Base.pointer(A::ToList{UInt8}, i::Integer)\n    chunk = searchsortedfirst(A.inds, i)\n    chunk = chunk > length(A.inds) ? 1 : (chunk - 1)\n    return pointer(A.data[chunk])\nend\n\n@inline function index(A::ToList, i::Integer)\n    chunk = searchsortedfirst(A.inds, i)\n    return chunk - 1, i - (@inbounds A.inds[chunk - 1])\nend\n\nBase.@propagate_inbounds function Base.getindex(\n    A::ToList{T,stringtype},\n    i::Integer,\n) where {T,stringtype}\n    @boundscheck checkbounds(A, i)\n    chunk, ix = index(A, i)\n    @inbounds x = A.data[chunk]\n    return @inbounds stringtype ? _codeunits(x)[ix] : x[ix]\nend\n\nBase.@propagate_inbounds function Base.setindex!(\n    A::ToList{T,stringtype},\n    v,\n    i::Integer,\n) where {T,stringtype}\n    @boundscheck checkbounds(A, i)\n    chunk, ix = index(A, i)\n    @inbounds x = A.data[chunk]\n    if stringtype\n        _codeunits(x)[ix] = v\n    else\n        x[ix] = v\n    end\n    return v\nend\n\n# efficient iteration\n@inline function Base.iterate(A::ToList{T,stringtype}) where {T,stringtype}\n    length(A) == 0 && return nothing\n    i = 1\n    chunk = 2\n    chunk_i = 1\n    chunk_len = A.inds[chunk]\n    while i > chunk_len\n        chunk += 1\n        chunk_len = A.inds[chunk]\n    end\n    val = A.data[chunk - 1]\n    x = stringtype ? _codeunits(val)[1] : val[1]\n    # find next valid index\n    i += 1\n    if i > chunk_len\n        while true\n            chunk += 1\n            chunk > length(A.inds) && break\n            chunk_len = A.inds[chunk]\n            i <= chunk_len && break\n        end\n    else\n        chunk_i += 1\n    end\n    return x, (i, chunk, chunk_i, chunk_len, length(A))\nend\n\n@inline function Base.iterate(\n    A::ToList{T,stringtype},\n    (i, chunk, chunk_i, chunk_len, len),\n) where {T,stringtype}\n    i > len && return nothing\n    @inbounds val = A.data[chunk - 1]\n    @inbounds x = stringtype ? _codeunits(val)[chunk_i] : val[chunk_i]\n    i += 1\n    if i > chunk_len\n        chunk_i = 1\n        while true\n            chunk += 1\n            chunk > length(A.inds) && break\n            @inbounds chunk_len = A.inds[chunk]\n            i <= chunk_len && break\n        end\n    else\n        chunk_i += 1\n    end\n    return x, (i, chunk, chunk_i, chunk_len, len)\nend\n\narrowvector(::ListKind, x::List, i, nl, fi, de, ded, meta; kw...) = x\n\nfunction arrowvector(::ListKind, x, i, nl, fi, de, ded, meta; largelists::Bool=false, kw...)\n    len = length(x)\n    validity = ValidityBitmap(x)\n    flat = ToList(x; largelists=largelists)\n    offsets = Offsets(UInt8[], flat.inds)\n    if liststringtype(typeof(flat)) && eltype(flat) == UInt8 # binary or utf8string\n        data = flat\n        T = origtype(flat)\n    else\n        data =\n            arrowvector(flat, i, nl + 1, fi, de, ded, nothing; largelists=largelists, kw...)\n        T = withmissing(eltype(x), Vector{eltype(data)})\n    end\n    return List{T,eltype(flat.inds),typeof(data)}(\n        UInt8[],\n        validity,\n        offsets,\n        data,\n        len,\n        meta,\n    )\nend\n\nfunction compress(Z::Meta.CompressionType.T, comp, x::List{T,O,A}) where {T,O,A}\n    len = length(x)\n    nc = nullcount(x)\n    validity = compress(Z, comp, x.validity)\n    offsets = compress(Z, comp, x.offsets.offsets)\n    buffers = [validity, offsets]\n    children = Compressed[]\n    if liststringtype(x)\n        push!(buffers, compress(Z, comp, x.data))\n    else\n        push!(children, compress(Z, comp, x.data))\n    end\n    return Compressed{Z,typeof(x)}(x, buffers, len, nc, children)\nend\n"
  },
  {
    "path": "src/arraytypes/map.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"\n    Arrow.Map\n\nAn `ArrowVector` where each element is a \"map\" of some kind, like a `Dict`.\n\"\"\"\nstruct Map{T,O,A} <: ArrowVector{T}\n    validity::ValidityBitmap\n    offsets::Offsets{O}\n    data::A\n    ℓ::Int\n    metadata::Union{Nothing,Base.ImmutableDict{String,String}}\nend\n\nBase.size(l::Map) = (l.ℓ,)\n\n@propagate_inbounds function Base.getindex(l::Map{T}, i::Integer) where {T}\n    @boundscheck checkbounds(l, i)\n    @inbounds lo, hi = l.offsets[i]\n    if Base.nonmissingtype(T) !== T\n        return l.validity[i] ?\n               ArrowTypes.fromarrow(\n            T,\n            Dict(x.key => x.value for x in view(l.data, lo:hi)),\n        ) : missing\n    else\n        return ArrowTypes.fromarrow(T, Dict(x.key => x.value for x in view(l.data, lo:hi)))\n    end\nend\n\nkeyvalues(KT, ::Missing) = missing\nkeyvalues(KT, x::AbstractDict) = [KT(k, v) for (k, v) in pairs(x)]\n\nkeyvaluetypes(::Type{NamedTuple{(:key, :value),Tuple{K,V}}}) where {K,V} = (K, V)\n\narrowvector(::MapKind, x::Map, i, nl, fi, de, ded, meta; kw...) = x\n\nfunction arrowvector(::MapKind, x, i, nl, fi, de, ded, meta; largelists::Bool=false, kw...)\n    len = length(x)\n    validity = ValidityBitmap(x)\n    ET = eltype(x)\n    DT = Base.nonmissingtype(ET)\n    KDT, VDT = keytype(DT), valtype(DT)\n    ArrowTypes.concrete_or_concreteunion(KDT) || throw(\n        ArgumentError(\n            \"`keytype(d)` must be concrete to serialize map-like `d`, but `keytype(d) == $KDT`\",\n        ),\n    )\n    ArrowTypes.concrete_or_concreteunion(VDT) || throw(\n        ArgumentError(\n            \"`valtype(d)` must be concrete to serialize map-like `d`, but `valtype(d) == $VDT`\",\n        ),\n    )\n    KT = KeyValue{KDT,VDT}\n    VT = Vector{KT}\n    T = DT !== ET ? Union{Missing,VT} : VT\n    flat = ToList(T[keyvalues(KT, y) for y in x]; largelists=largelists)\n    offsets = Offsets(UInt8[], flat.inds)\n    data = arrowvector(flat, i, nl + 1, fi, de, ded, nothing; largelists=largelists, kw...)\n    K, V = keyvaluetypes(eltype(data))\n    return Map{withmissing(ET, Dict{K,V}),eltype(flat.inds),typeof(data)}(\n        validity,\n        offsets,\n        data,\n        len,\n        meta,\n    )\nend\n\nfunction compress(Z::Meta.CompressionType.T, comp, x::A) where {A<:Map}\n    len = length(x)\n    nc = nullcount(x)\n    validity = compress(Z, comp, x.validity)\n    offsets = compress(Z, comp, x.offsets.offsets)\n    buffers = [validity, offsets]\n    children = Compressed[]\n    push!(children, compress(Z, comp, x.data))\n    return Compressed{Z,A}(x, buffers, len, nc, children)\nend\n\nfunction makenodesbuffers!(\n    col::Union{Map{T,O,A},List{T,O,A}},\n    fieldnodes,\n    fieldbuffers,\n    bufferoffset,\n    alignment,\n) where {T,O,A}\n    len = length(col)\n    nc = nullcount(col)\n    push!(fieldnodes, FieldNode(len, nc))\n    @debug \"made field node: nodeidx = $(length(fieldnodes)), col = $(typeof(col)), len = $(fieldnodes[end].length), nc = $(fieldnodes[end].null_count)\"\n    # validity bitmap\n    blen = nc == 0 ? 0 : bitpackedbytes(len, alignment)\n    push!(fieldbuffers, Buffer(bufferoffset, blen))\n    @debug \"made field buffer: bufferidx = $(length(fieldbuffers)), offset = $(fieldbuffers[end].offset), len = $(fieldbuffers[end].length), padded = $(padding(fieldbuffers[end].length, alignment))\"\n    # adjust buffer offset, make array buffer\n    bufferoffset += blen\n    blen = sizeof(O) * (len + 1)\n    push!(fieldbuffers, Buffer(bufferoffset, blen))\n    @debug \"made field buffer: bufferidx = $(length(fieldbuffers)), offset = $(fieldbuffers[end].offset), len = $(fieldbuffers[end].length), padded = $(padding(fieldbuffers[end].length, alignment))\"\n    bufferoffset += padding(blen, alignment)\n    if liststringtype(col)\n        blen = length(col.data)\n        push!(fieldbuffers, Buffer(bufferoffset, blen))\n        @debug \"made field buffer: bufferidx = $(length(fieldbuffers)), offset = $(fieldbuffers[end].offset), len = $(fieldbuffers[end].length), padded = $(padding(fieldbuffers[end].length, alignment))\"\n        bufferoffset += padding(blen, alignment)\n    else\n        bufferoffset =\n            makenodesbuffers!(col.data, fieldnodes, fieldbuffers, bufferoffset, alignment)\n    end\n    return bufferoffset\nend\n\nfunction writebuffer(io, col::Union{Map{T,O,A},List{T,O,A}}, alignment) where {T,O,A}\n    @debug \"writebuffer: col = $(typeof(col))\"\n    @debug col\n    writebitmap(io, col, alignment)\n    # write offsets\n    n = writearray(io, O, col.offsets.offsets)\n    @debug \"writing array: col = $(typeof(col.offsets.offsets)), n = $n, padded = $(padding(n, alignment))\"\n    writezeros(io, paddinglength(n, alignment))\n    # write values array\n    if liststringtype(col)\n        n = writearray(io, UInt8, col.data)\n        @debug \"writing array: col = $(typeof(col.data)), n = $n, padded = $(padding(n, alignment))\"\n        writezeros(io, paddinglength(n, alignment))\n    else\n        writebuffer(io, col.data, alignment)\n    end\n    return\nend\n"
  },
  {
    "path": "src/arraytypes/primitive.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"\n    Arrow.Primitive\n\nAn `ArrowVector` where each element is a \"fixed size\" scalar of some kind, like an integer, float, decimal, or time type.\n\"\"\"\nstruct Primitive{T,A} <: ArrowVector{T}\n    arrow::Vector{UInt8} # need to hold a reference to arrow memory blob\n    validity::ValidityBitmap\n    data::A\n    ℓ::Int64\n    metadata::Union{Nothing,Base.ImmutableDict{String,String}}\nend\n\nPrimitive(::Type{T}, b::Vector{UInt8}, v::ValidityBitmap, data::A, l, meta) where {T,A} =\n    Primitive{T,A}(b, v, data, l, meta)\n\nBase.size(p::Primitive) = (p.ℓ,)\n\nfunction Base.copy(p::Primitive{T,A}) where {T,A}\n    if nullcount(p) == 0 && T === eltype(A)\n        return copy(p.data)\n    else\n        return convert(Array, p)\n    end\nend\n\n@propagate_inbounds function Base.getindex(p::Primitive{T}, i::Integer) where {T}\n    @boundscheck checkbounds(p, i)\n    if T >: Missing\n        return @inbounds (p.validity[i] ? ArrowTypes.fromarrow(T, p.data[i]) : missing)\n    else\n        return @inbounds ArrowTypes.fromarrow(T, p.data[i])\n    end\nend\n\n@propagate_inbounds function Base.setindex!(p::Primitive{T}, v, i::Integer) where {T}\n    @boundscheck checkbounds(p, i)\n    if T >: Missing\n        if v === missing\n            @inbounds p.validity[i] = false\n        else\n            @inbounds p.data[i] = convert(Base.nonmissingtype(T), v)\n        end\n    else\n        @inbounds p.data[i] = convert(Base.nonmissingtype(T), v)\n    end\n    return v\nend\n\narrowvector(::PrimitiveKind, x::Primitive, i, nl, fi, de, ded, meta; kw...) = x\n\nfunction arrowvector(::PrimitiveKind, x, i, nl, fi, de, ded, meta; kw...)\n    validity = ValidityBitmap(x)\n    return Primitive(eltype(x), UInt8[], validity, x, length(x), meta)\nend\n\nfunction compress(Z::Meta.CompressionType.T, comp, p::P) where {P<:Primitive}\n    len = length(p)\n    nc = nullcount(p)\n    validity = compress(Z, comp, p.validity)\n    data = compress(Z, comp, p.data)\n    return Compressed{Z,P}(p, [validity, data], len, nc, Compressed[])\nend\n\nfunction makenodesbuffers!(\n    col::Primitive{T},\n    fieldnodes,\n    fieldbuffers,\n    bufferoffset,\n    alignment,\n) where {T}\n    len = length(col)\n    nc = nullcount(col)\n    push!(fieldnodes, FieldNode(len, nc))\n    @debug \"made field node: nodeidx = $(length(fieldnodes)), col = $(typeof(col)), len = $(fieldnodes[end].length), nc = $(fieldnodes[end].null_count)\"\n    # validity bitmap\n    blen = nc == 0 ? 0 : bitpackedbytes(len, alignment)\n    push!(fieldbuffers, Buffer(bufferoffset, blen))\n    @debug \"made field buffer: bufferidx = $(length(fieldbuffers)), offset = $(fieldbuffers[end].offset), len = $(fieldbuffers[end].length), padded = $(padding(fieldbuffers[end].length, alignment))\"\n    # adjust buffer offset, make primitive array buffer\n    bufferoffset += blen\n    blen = len * sizeof(Base.nonmissingtype(T))\n    push!(fieldbuffers, Buffer(bufferoffset, blen))\n    @debug \"made field buffer: bufferidx = $(length(fieldbuffers)), offset = $(fieldbuffers[end].offset), len = $(fieldbuffers[end].length), padded = $(padding(fieldbuffers[end].length, alignment))\"\n    return bufferoffset + padding(blen, alignment)\nend\n\nfunction writebuffer(io, col::Primitive{T}, alignment) where {T}\n    @debug \"writebuffer: col = $(typeof(col))\"\n    @debug col\n    writebitmap(io, col, alignment)\n    n = writearray(io, Base.nonmissingtype(T), col.data)\n    @debug \"writing array: col = $(typeof(col.data)), n = $n, padded = $(padding(n, alignment))\"\n    writezeros(io, paddinglength(n, alignment))\n    return\nend\n"
  },
  {
    "path": "src/arraytypes/struct.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"\n    Arrow.Struct\n\nAn `ArrowVector` where each element is a \"struct\" of some kind with ordered, named fields, like a `NamedTuple{names, types}` or regular julia `struct`.\n\"\"\"\nstruct Struct{T,S,fnames} <: ArrowVector{T}\n    validity::ValidityBitmap\n    data::S # Tuple of ArrowVector\n    ℓ::Int\n    metadata::Union{Nothing,Base.ImmutableDict{String,String}}\nend\n\nBase.size(s::Struct) = (s.ℓ,)\n\nisnamedtuple(::Type{<:NamedTuple}) = true\nisnamedtuple(T) = false\nistuple(::Type{<:Tuple}) = true\nistuple(T) = false\n\nif isdefined(ArrowTypes, :fromarrowstruct)\n    # https://github.com/apache/arrow-julia/pull/493\n    @inline function _fromarrowstruct(T::Type, v::Val, x...)\n        return ArrowTypes.fromarrowstruct(T, v, x...)\n    end\nelse\n    @inline function _fromarrowstruct(T::Type, ::Val, x...)\n        return ArrowTypes.fromarrow(T, x...)\n    end\nend\n\n@propagate_inbounds function Base.getindex(\n    s::Struct{T,S,fnames},\n    i::Integer,\n) where {T,S,fnames}\n    @boundscheck checkbounds(s, i)\n    NT = Base.nonmissingtype(T)\n    NT !== T && (s.validity[i] || return missing)\n    vals = ntuple(j -> s.data[j][i], fieldcount(S))\n    if isnamedtuple(NT) || istuple(NT)\n        return NT(vals)\n    else\n        return _fromarrowstruct(NT, Val{fnames}(), vals...)\n    end\nend\n\n# @propagate_inbounds function Base.setindex!(s::Struct{T}, v::T, i::Integer) where {T}\n#     @boundscheck checkbounds(s, i)\n#     if v === missing\n#         @inbounds s.validity[i] = false\n#     else\n#         NT = Base.nonmissingtype(T)\n#         N = fieldcount(NT)\n#         foreach(1:N) do j\n#             @inbounds s.data[j][i] = getfield(v, j)\n#         end\n#     end\n#     return v\n# end\n\nstruct ToStruct{T,i,A} <: AbstractVector{T}\n    data::A # eltype is NamedTuple or some struct\nend\n\nToStruct(x::A, j::Integer) where {A} =\n    ToStruct{fieldtype(Base.nonmissingtype(eltype(A)), j),j,A}(x)\n\nBase.IndexStyle(::Type{<:ToStruct}) = Base.IndexLinear()\nBase.size(x::ToStruct) = (length(x.data),)\n\nBase.@propagate_inbounds function Base.getindex(A::ToStruct{T,j}, i::Integer) where {T,j}\n    @boundscheck checkbounds(A, i)\n    @inbounds x = A.data[i]\n    return x === missing ? ArrowTypes.default(T) : getfield(x, j)\nend\n\narrowvector(::StructKind, x::Struct, i, nl, fi, de, ded, meta; kw...) = x\n\nnamedtupletype(::Type{NamedTuple{names,types}}, data) where {names,types} =\n    NamedTuple{names,Tuple{(eltype(x) for x in data)...}}\nnamedtupletype(::Type{T}, data) where {T} =\n    NamedTuple{fieldnames(T),Tuple{(eltype(x) for x in data)...}}\nnamedtupletype(::Type{T}, data) where {T<:Tuple} =\n    NamedTuple{map(Symbol, fieldnames(T)),Tuple{(eltype(x) for x in data)...}}\n\nfunction arrowvector(::StructKind, x, i, nl, fi, de, ded, meta; kw...)\n    len = length(x)\n    validity = ValidityBitmap(x)\n    T = Base.nonmissingtype(eltype(x))\n    data = Tuple(\n        arrowvector(ToStruct(x, j), i, nl + 1, j, de, ded, nothing; kw...) for\n        j = 1:fieldcount(T)\n    )\n    NT = namedtupletype(T, data)\n    return Struct{withmissing(eltype(x), NT),typeof(data),fieldnames(NT)}(\n        validity,\n        data,\n        len,\n        meta,\n    )\nend\n\nfunction compress(Z::Meta.CompressionType.T, comp, x::A) where {A<:Struct}\n    len = length(x)\n    nc = nullcount(x)\n    validity = compress(Z, comp, x.validity)\n    buffers = [validity]\n    children = Compressed[]\n    for y in x.data\n        push!(children, compress(Z, comp, y))\n    end\n    return Compressed{Z,A}(x, buffers, len, nc, children)\nend\n\nfunction makenodesbuffers!(\n    col::Struct{T},\n    fieldnodes,\n    fieldbuffers,\n    bufferoffset,\n    alignment,\n) where {T}\n    len = length(col)\n    nc = nullcount(col)\n    push!(fieldnodes, FieldNode(len, nc))\n    @debug \"made field node: nodeidx = $(length(fieldnodes)), col = $(typeof(col)), len = $(fieldnodes[end].length), nc = $(fieldnodes[end].null_count)\"\n    # validity bitmap\n    blen = nc == 0 ? 0 : bitpackedbytes(len, alignment)\n    push!(fieldbuffers, Buffer(bufferoffset, blen))\n    @debug \"made field buffer: bufferidx = $(length(fieldbuffers)), offset = $(fieldbuffers[end].offset), len = $(fieldbuffers[end].length), padded = $(padding(fieldbuffers[end].length, alignment))\"\n    bufferoffset += blen\n    for child in col.data\n        bufferoffset =\n            makenodesbuffers!(child, fieldnodes, fieldbuffers, bufferoffset, alignment)\n    end\n    return bufferoffset\nend\n\nfunction writebuffer(io, col::Struct, alignment)\n    @debug \"writebuffer: col = $(typeof(col))\"\n    @debug col\n    writebitmap(io, col, alignment)\n    # write values arrays\n    for child in col.data\n        writebuffer(io, child, alignment)\n    end\n    return\nend\n"
  },
  {
    "path": "src/arraytypes/unions.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n# Union arrays\n# need a custom representation of Union types since arrow unions\n# are ordered, and possibly indirected via separate typeIds array\n# here, T is Meta.UnionMode.Dense or Meta.UnionMode.Sparse,\n# typeIds is a NTuple{N, Int32}, and U is a Tuple{...} of the\n# unioned types\nstruct UnionT{T,typeIds,U} end\n\nunionmode(::Type{UnionT{T,typeIds,U}}) where {T,typeIds,U} = T\ntypeids(::Type{UnionT{T,typeIds,U}}) where {T,typeIds,U} = typeIds\nBase.eltype(::Type{UnionT{T,typeIds,U}}) where {T,typeIds,U} = U\nuniontypewith(::Type{UnionT{T,typeIds,U}}, ::Type{U2}) where {T,typeIds,U,U2<:Tuple} =\n    UnionT{T,typeIds,U2}\n\nArrowTypes.ArrowKind(::Type{<:UnionT}) = ArrowTypes.UnionKind()\n\n# iterate a Julia Union{...} type, producing an array of unioned types\nfunction eachunion(U::Union, elems=nothing)\n    if elems === nothing\n        return eachunion(U.b, Type[U.a])\n    else\n        push!(elems, U.a)\n        return eachunion(U.b, elems)\n    end\nend\n\nfunction eachunion(T, elems)\n    push!(elems, T)\n    return elems\nend\n\n# produce typeIds, offsets, data tuple for DenseUnion\nisatypeid(x::T, ::Type{types}) where {T,types} = isatypeid(x, fieldtype(types, 1), types, 1)\nisatypeid(x::T, ::Type{S}, ::Type{types}, i) where {T,S,types} =\n    x isa S ? i : isatypeid(x, fieldtype(types, i + 1), types, i + 1)\n\n\"\"\"\n    Arrow.DenseUnion\n\nAn `ArrowVector` where the type of each element is one of a fixed set of types, meaning its eltype is like a julia `Union{type1, type2, ...}`.\nAn `Arrow.DenseUnion`, in comparison to `Arrow.SparseUnion`, stores elements in a set of arrays, one array per possible type, and an \"offsets\"\narray, where each offset element is the index into one of the typed arrays. This allows a sort of \"compression\", where no extra space is\nused/allocated to store all the elements.\n\"\"\"\nstruct DenseUnion{T,U,S} <: ArrowVector{T}\n    arrow::Vector{UInt8} # need to hold a reference to arrow memory blob\n    arrow2::Vector{UInt8} # if arrow blob is compressed, need a 2nd reference for uncompressed offsets bytes\n    typeIds::Vector{UInt8}\n    offsets::Vector{Int32}\n    data::S # Tuple of ArrowVector\n    metadata::Union{Nothing,Base.ImmutableDict{String,String}}\nend\n\nBase.size(s::DenseUnion) = size(s.typeIds)\nnullcount(x::DenseUnion) = 0 # DenseUnion has no validity bitmap; only children do\n\n@propagate_inbounds function Base.getindex(\n    s::DenseUnion{T,UnionT{M,typeIds,U}},\n    i::Integer,\n) where {T,M,typeIds,U}\n    @boundscheck checkbounds(s, i)\n    @inbounds typeId = s.typeIds[i]\n    @inbounds off = s.offsets[i]\n    @inbounds x = s.data[typeId + 1][off + 1]\n    return ArrowTypes.fromarrow(fieldtype(U, typeId + 1), x)\nend\n\n# @propagate_inbounds function Base.setindex!(s::DenseUnion{UnionT{T, typeIds, U}}, v, i::Integer) where {T, typeIds, U}\n#     @boundscheck checkbounds(s, i)\n#     @inbounds typeId = s.typeIds[i]\n#     typeids = typeIds === nothing ? (0:(fieldcount(U) - 1)) : typeIds\n#     vtypeId = Int8(typeids[isatypeid(v, U)])\n#     if typeId == vtypeId\n#         @inbounds off = s.offsets[i]\n#         @inbounds s.data[typeId +1][off + 1] = v\n#     else\n#         throw(ArgumentError(\"type of item to set $(typeof(v)) must match existing item $(fieldtype(U, typeid))\"))\n#     end\n#     return v\n# end\n\n# convenience wrappers for signaling that an array shoudld be written\n# as with dense/sparse union arrow buffers\nstruct DenseUnionVector{T,U} <: AbstractVector{UnionT{Meta.UnionMode.Dense,nothing,U}}\n    itr::T\nend\n\nDenseUnionVector(x::T) where {T} = DenseUnionVector{T,Tuple{eachunion(eltype(x))...}}(x)\nBase.IndexStyle(::Type{<:DenseUnionVector}) = Base.IndexLinear()\nBase.size(x::DenseUnionVector) = (length(x.itr),)\nBase.iterate(x::DenseUnionVector, st...) = iterate(x.itr, st...)\nBase.getindex(x::DenseUnionVector, i::Int) = getindex(x.itr, i)\n\nfunction todense(::Type{UnionT{T,typeIds,U}}, x) where {T,typeIds,U}\n    typeids = typeIds === nothing ? (0:(fieldcount(U) - 1)) : typeIds\n    len = length(x)\n    types = Vector{UInt8}(undef, len)\n    offsets = Vector{Int32}(undef, len)\n    data = Tuple(\n        Vector{i == 1 ? Union{Missing,fieldtype(U, i)} : fieldtype(U, i)}(undef, 0) for\n        i = 1:fieldcount(U)\n    )\n    for (i, y) in enumerate(x)\n        typeid = y === missing ? 0x00 : UInt8(typeids[isatypeid(y, U)])\n        @inbounds types[i] = typeid\n        @inbounds offsets[i] = length(data[typeid + 1])\n        push!(data[typeid + 1], y)\n    end\n    return types, offsets, data\nend\n\nstruct SparseUnionVector{T,U} <: AbstractVector{UnionT{Meta.UnionMode.Sparse,nothing,U}}\n    itr::T\nend\n\nSparseUnionVector(x::T) where {T} = SparseUnionVector{T,Tuple{eachunion(eltype(x))...}}(x)\nBase.IndexStyle(::Type{<:SparseUnionVector}) = Base.IndexLinear()\nBase.size(x::SparseUnionVector) = (length(x.itr),)\nBase.iterate(x::SparseUnionVector, st...) = iterate(x.itr, st...)\nBase.getindex(x::SparseUnionVector, i::Int) = getindex(x.itr, i)\n\n# sparse union child array producer\n# for sparse unions, we split the parent array into\n# N children arrays, each having the same length as the parent\n# but with one child array per unioned type; each child\n# should include the elements from parent of its type\n# and other elements can be missing/default\nfunction sparsetypeids(::Type{UnionT{T,typeIds,U}}, x) where {T,typeIds,U}\n    typeids = typeIds === nothing ? (0:(fieldcount(U) - 1)) : typeIds\n    len = length(x)\n    types = Vector{UInt8}(undef, len)\n    for (i, y) in enumerate(x)\n        typeid = y === missing ? 0x00 : UInt8(typeids[isatypeid(y, U)])\n        @inbounds types[i] = typeid\n    end\n    return types\nend\n\nstruct ToSparseUnion{T,A} <: AbstractVector{T}\n    data::A\nend\n\nToSparseUnion(::Type{T}, data::A) where {T,A} = ToSparseUnion{T,A}(data)\n\nBase.IndexStyle(::Type{<:ToSparseUnion}) = Base.IndexLinear()\nBase.size(x::ToSparseUnion) = (length(x.data),)\n\nBase.@propagate_inbounds function Base.getindex(A::ToSparseUnion{T}, i::Integer) where {T}\n    @boundscheck checkbounds(A, i)\n    @inbounds x = A.data[i]\n    return @inbounds x isa T ? x : ArrowTypes.default(T)\nend\n\nfunction compress(Z::Meta.CompressionType.T, comp, x::A) where {A<:DenseUnion}\n    len = length(x)\n    nc = nullcount(x)\n    typeIds = compress(Z, comp, x.typeIds)\n    offsets = compress(Z, comp, x.offsets)\n    buffers = [typeIds, offsets]\n    children = Compressed[]\n    for y in x.data\n        push!(children, compress(Z, comp, y))\n    end\n    return Compressed{Z,A}(x, buffers, len, nc, children)\nend\n\n\"\"\"\n    Arrow.SparseUnion\n\nAn `ArrowVector` where the type of each element is one of a fixed set of types, meaning its eltype is like a julia `Union{type1, type2, ...}`.\nAn `Arrow.SparseUnion`, in comparison to `Arrow.DenseUnion`, stores elements in a set of arrays, one array per possible type, and each typed\narray has the same length as the full array. This ends up with \"wasted\" space, since only one slot among the typed arrays is valid per full\narray element, but can allow for certain optimizations when each typed array has the same length.\n\"\"\"\nstruct SparseUnion{T,U,S} <: ArrowVector{T}\n    arrow::Vector{UInt8} # need to hold a reference to arrow memory blob\n    typeIds::Vector{UInt8}\n    data::S # Tuple of ArrowVector\n    metadata::Union{Nothing,Base.ImmutableDict{String,String}}\nend\n\nBase.size(s::SparseUnion) = size(s.typeIds)\nnullcount(x::SparseUnion) = 0\n\n@propagate_inbounds function Base.getindex(\n    s::SparseUnion{T,UnionT{M,typeIds,U}},\n    i::Integer,\n) where {T,M,typeIds,U}\n    @boundscheck checkbounds(s, i)\n    @inbounds typeId = s.typeIds[i]\n    @inbounds x = s.data[typeId + 1][i]\n    return ArrowTypes.fromarrow(fieldtype(U, typeId + 1), x)\nend\n\n# @propagate_inbounds function Base.setindex!(s::SparseUnion{UnionT{T, typeIds, U}}, v, i::Integer) where {T, typeIds, U}\n#     @boundscheck checkbounds(s, i)\n#     typeids = typeIds === nothing ? (0:(fieldcount(U) - 1)) : typeIds\n#     vtypeId = Int8(typeids[isatypeid(v, U)])\n#     @inbounds s.typeIds[i] = vtypeId\n#     @inbounds s.data[vtypeId + 1][i] = v\n#     return v\n# end\n\narrowvector(U::Union, x, i, nl, fi, de, ded, meta; denseunions::Bool=true, kw...) =\n    arrowvector(\n        denseunions ? DenseUnionVector(x) : SparseUnionVector(x),\n        i,\n        nl,\n        fi,\n        de,\n        ded,\n        meta;\n        denseunions=denseunions,\n        kw...,\n    )\n\narrowvector(\n    ::UnionKind,\n    x::Union{DenseUnion,SparseUnion},\n    i,\n    nl,\n    fi,\n    de,\n    ded,\n    meta;\n    kw...,\n) = x\n\nfunction arrowvector(::UnionKind, x, i, nl, fi, de, ded, meta; kw...)\n    UT = eltype(x)\n    if unionmode(UT) == Meta.UnionMode.Dense\n        x = x isa DenseUnionVector ? x.itr : x\n        typeids, offsets, data = todense(UT, x)\n        data2 = map(\n            y -> arrowvector(y[2], i, nl + 1, y[1], de, ded, nothing; kw...),\n            enumerate(data),\n        )\n        UT2 = uniontypewith(UT, Tuple{(eltype(x) for x in data2)...})\n        return DenseUnion{Union{(eltype(x) for x in data2)...},UT2,typeof(data2)}(\n            UInt8[],\n            UInt8[],\n            typeids,\n            offsets,\n            data2,\n            meta,\n        )\n    else\n        x = x isa SparseUnionVector ? x.itr : x\n        typeids = sparsetypeids(UT, x)\n        data3 = Tuple(\n            arrowvector(\n                ToSparseUnion(fieldtype(eltype(UT), j), x),\n                i,\n                nl + 1,\n                j,\n                de,\n                ded,\n                nothing;\n                kw...,\n            ) for j = 1:fieldcount(eltype(UT))\n        )\n        UT2 = uniontypewith(UT, Tuple{(eltype(x) for x in data3)...})\n        return SparseUnion{Union{(eltype(x) for x in data3)...},UT2,typeof(data3)}(\n            UInt8[],\n            typeids,\n            data3,\n            meta,\n        )\n    end\nend\n\nfunction compress(Z::Meta.CompressionType.T, comp, x::A) where {A<:SparseUnion}\n    len = length(x)\n    nc = nullcount(x)\n    typeIds = compress(Z, comp, x.typeIds)\n    buffers = [typeIds]\n    children = Compressed[]\n    for y in x.data\n        push!(children, compress(Z, comp, y))\n    end\n    return Compressed{Z,A}(x, buffers, len, nc, children)\nend\n\nfunction makenodesbuffers!(\n    col::Union{DenseUnion,SparseUnion},\n    fieldnodes,\n    fieldbuffers,\n    bufferoffset,\n    alignment,\n)\n    len = length(col)\n    nc = nullcount(col)\n    push!(fieldnodes, FieldNode(len, nc))\n    @debug \"made field node: nodeidx = $(length(fieldnodes)), col = $(typeof(col)), len = $(fieldnodes[end].length), nc = $(fieldnodes[end].null_count)\"\n    # typeIds buffer\n    push!(fieldbuffers, Buffer(bufferoffset, len))\n    @debug \"made field buffer: bufferidx = $(length(fieldbuffers)), offset = $(fieldbuffers[end].offset), len = $(fieldbuffers[end].length), padded = $(padding(fieldbuffers[end].length, alignment))\"\n    bufferoffset += padding(len, alignment)\n    if col isa DenseUnion\n        # offsets buffer\n        blen = sizeof(Int32) * len\n        push!(fieldbuffers, Buffer(bufferoffset, blen))\n        @debug \"made field buffer: bufferidx = $(length(fieldbuffers)), offset = $(fieldbuffers[end].offset), len = $(fieldbuffers[end].length), padded = $(padding(fieldbuffers[end].length, alignment))\"\n        bufferoffset += padding(blen, alignment)\n    end\n    for child in col.data\n        bufferoffset =\n            makenodesbuffers!(child, fieldnodes, fieldbuffers, bufferoffset, alignment)\n    end\n    return bufferoffset\nend\n\nfunction writebuffer(io, col::Union{DenseUnion,SparseUnion}, alignment)\n    @debug \"writebuffer: col = $(typeof(col))\"\n    @debug col\n    # typeIds buffer\n    n = writearray(io, UInt8, col.typeIds)\n    @debug \"writing array: col = $(typeof(col.typeIds)), n = $n, padded = $(padding(n, alignment))\"\n    writezeros(io, paddinglength(n, alignment))\n    if col isa DenseUnion\n        n = writearray(io, Int32, col.offsets)\n        @debug \"writing array: col = $(typeof(col.offsets)), n = $n, padded = $(padding(n, alignment))\"\n        writezeros(io, paddinglength(n, alignment))\n    end\n    for child in col.data\n        writebuffer(io, child, alignment)\n    end\n    return\nend\n"
  },
  {
    "path": "src/arraytypes/views.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nstruct ViewElement\n    length::Int32\n    prefix::Int32\n    bufindex::Int32\n    offset::Int32\nend\n\n\"\"\"\n    Arrow.View\n\nAn `ArrowVector` where each element is a variable sized list of some kind, like an `AbstractVector` or `AbstractString`.\n\"\"\"\nstruct View{T} <: ArrowVector{T}\n    arrow::Vector{UInt8} # need to hold a reference to arrow memory blob\n    validity::ValidityBitmap\n    data::Vector{ViewElement}\n    inline::Vector{UInt8} # `data` field reinterpreted as a byte array\n    buffers::Vector{Vector{UInt8}} # holds non-inlined data\n    ℓ::Int\n    metadata::Union{Nothing,Base.ImmutableDict{String,String}}\nend\n\nBase.size(l::View) = (l.ℓ,)\n\n@propagate_inbounds function Base.getindex(l::View{T}, i::Integer) where {T}\n    @boundscheck checkbounds(l, i)\n    @inbounds v = l.data[i]\n    S = Base.nonmissingtype(T)\n    if S <: Base.CodeUnits\n        # BinaryView\n        return !l.validity[i] ? missing :\n               v.length < 13 ?\n               Base.CodeUnits(\n            StringView(\n                @view l.inline[(((i - 1) * 16) + 5):(((i - 1) * 16) + 5 + v.length - 1)]\n            ),\n        ) :\n               Base.CodeUnits(\n            StringView(\n                @view l.buffers[v.bufindex + 1][(v.offset + 1):(v.offset + v.length)]\n            ),\n        )\n    else\n        # Utf8View\n        return !l.validity[i] ? missing :\n               v.length < 13 ?\n               ArrowTypes.fromarrow(\n            T,\n            StringView(\n                @view l.inline[(((i - 1) * 16) + 5):(((i - 1) * 16) + 5 + v.length - 1)]\n            ),\n        ) :\n               ArrowTypes.fromarrow(\n            T,\n            StringView(\n                @view l.buffers[v.bufindex + 1][(v.offset + 1):(v.offset + v.length)]\n            ),\n        )\n    end\nend\n\n# @propagate_inbounds function Base.setindex!(l::List{T}, v, i::Integer) where {T}\n\n# end\n"
  },
  {
    "path": "src/eltypes.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"\nGiven a flatbuffers metadata type definition (a Field instance from Schema.fbs),\ntranslate to the appropriate Julia storage eltype\n\"\"\"\nfunction juliaeltype end\n\nfinaljuliatype(T) = T\nfinaljuliatype(::Type{Missing}) = Missing\nfinaljuliatype(::Type{Union{T,Missing}}) where {T} = Union{Missing,finaljuliatype(T)}\n\n\"\"\"\nGiven a FlatBuffers.Builder and a Julia column or column eltype,\nWrite the field.type flatbuffer definition of the eltype\n\"\"\"\nfunction arrowtype end\n\narrowtype(b, col::AbstractVector{T}) where {T} = arrowtype(b, maybemissing(T))\narrowtype(b, col::DictEncoded) = arrowtype(b, col.encoding.data)\narrowtype(b, col::Compressed) = arrowtype(b, col.data)\n\nfunction juliaeltype(f::Meta.Field, ::Nothing, convert::Bool)\n    T = juliaeltype(f, convert)\n    return convert ? finaljuliatype(T) : T\nend\n\nfunction juliaeltype(f::Meta.Field, meta::AbstractDict{String,String}, convert::Bool)\n    TT = juliaeltype(f, convert)\n    !convert && return TT\n    T = finaljuliatype(TT)\n    if haskey(meta, \"ARROW:extension:name\")\n        typename = meta[\"ARROW:extension:name\"]\n        metadata = get(meta, \"ARROW:extension:metadata\", \"\")\n        JT = ArrowTypes.JuliaType(Val(Symbol(typename)), maybemissing(TT), metadata)\n        if JT !== nothing\n            return f.nullable ? Union{JT,Missing} : JT\n        else\n            @warn \"unsupported ARROW:extension:name type: \\\"$typename\\\", arrow type = $TT\" maxlog =\n                1 _id = hash((:juliaeltype, typename, TT))\n        end\n    end\n    return something(TT, T)\nend\n\nfunction juliaeltype(f::Meta.Field, convert::Bool)\n    T = juliaeltype(f, f.type, convert)\n    return f.nullable ? Union{T,Missing} : T\nend\n\njuliaeltype(f::Meta.Field, ::Meta.Null, convert) = Missing\n\nfunction arrowtype(b, ::Type{Missing})\n    Meta.nullStart(b)\n    return Meta.Null, Meta.nullEnd(b), nothing\nend\n\nfunction juliaeltype(f::Meta.Field, int::Meta.Int, convert)\n    if int.is_signed\n        if int.bitWidth == 8\n            Int8\n        elseif int.bitWidth == 16\n            Int16\n        elseif int.bitWidth == 32\n            Int32\n        elseif int.bitWidth == 64\n            Int64\n        elseif int.bitWidth == 128\n            Int128\n        else\n            error(\"$int is not valid arrow type metadata\")\n        end\n    else\n        if int.bitWidth == 8\n            UInt8\n        elseif int.bitWidth == 16\n            UInt16\n        elseif int.bitWidth == 32\n            UInt32\n        elseif int.bitWidth == 64\n            UInt64\n        elseif int.bitWidth == 128\n            UInt128\n        else\n            error(\"$int is not valid arrow type metadata\")\n        end\n    end\nend\n\nfunction arrowtype(b, ::Type{T}) where {T<:Integer}\n    Meta.intStart(b)\n    Meta.intAddBitWidth(b, Int32(8 * sizeof(T)))\n    Meta.intAddIsSigned(b, T <: Signed)\n    return Meta.Int, Meta.intEnd(b), nothing\nend\n\n# primitive types\nfunction juliaeltype(f::Meta.Field, fp::Meta.FloatingPoint, convert)\n    if fp.precision == Meta.Precision.HALF\n        Float16\n    elseif fp.precision == Meta.Precision.SINGLE\n        Float32\n    elseif fp.precision == Meta.Precision.DOUBLE\n        Float64\n    end\nend\n\nfunction arrowtype(b, ::Type{T}) where {T<:AbstractFloat}\n    Meta.floatingPointStart(b)\n    Meta.floatingPointAddPrecision(\n        b,\n        T === Float16 ? Meta.Precision.HALF :\n        T === Float32 ? Meta.Precision.SINGLE : Meta.Precision.DOUBLE,\n    )\n    return Meta.FloatingPoint, Meta.floatingPointEnd(b), nothing\nend\n\njuliaeltype(f::Meta.Field, b::Union{Meta.Utf8,Meta.LargeUtf8,Meta.Utf8View}, convert) =\n    String\n\ndatasizeof(x) = sizeof(x)\ndatasizeof(x::AbstractVector) = sum(datasizeof, x)\n\njuliaeltype(\n    f::Meta.Field,\n    b::Union{Meta.Binary,Meta.LargeBinary,Meta.BinaryView},\n    convert,\n) = Base.CodeUnits\n\njuliaeltype(f::Meta.Field, x::Meta.FixedSizeBinary, convert) =\n    NTuple{Int(x.byteWidth),UInt8}\n\n# arggh!\nBase.write(io::IO, x::NTuple{N,T}) where {N,T} = sum(y -> Base.write(io, y), x)\n\njuliaeltype(f::Meta.Field, x::Meta.Bool, convert) = Bool\n\nfunction arrowtype(b, ::Type{Bool})\n    Meta.boolStart(b)\n    return Meta.Bool, Meta.boolEnd(b), nothing\nend\n\nstruct Decimal{P,S,T}\n    value::T # only Int128 or Int256\nend\n\nBase.zero(::Type{Decimal{P,S,T}}) where {P,S,T} = Decimal{P,S,T}(T(0))\n==(a::Decimal{P,S,T}, b::Decimal{P,S,T}) where {P,S,T} = ==(a.value, b.value)\nBase.isequal(a::Decimal{P,S,T}, b::Decimal{P,S,T}) where {P,S,T} = isequal(a.value, b.value)\n\nfunction juliaeltype(f::Meta.Field, x::Meta.Decimal, convert)\n    return Decimal{x.precision,x.scale,x.bitWidth == 256 ? Int256 : Int128}\nend\n\nArrowTypes.ArrowKind(::Type{<:Decimal}) = PrimitiveKind()\n\nfunction arrowtype(b, ::Type{Decimal{P,S,T}}) where {P,S,T}\n    Meta.decimalStart(b)\n    Meta.decimalAddPrecision(b, Int32(P))\n    Meta.decimalAddScale(b, Int32(S))\n    Meta.decimalAddBitWidth(b, Int32(T == Int256 ? 256 : 128))\n    return Meta.Decimal, Meta.decimalEnd(b), nothing\nend\n\nBase.write(io::IO, x::Decimal) = Base.write(io, x.value)\n\nabstract type ArrowTimeType end\nBase.write(io::IO, x::ArrowTimeType) = Base.write(io, x.x)\nArrowTypes.ArrowKind(::Type{<:ArrowTimeType}) = PrimitiveKind()\n\nstruct Date{U,T} <: ArrowTimeType\n    x::T\nend\n\nconst DATE = Date{Meta.DateUnit.DAY,Int32}\nBase.zero(::Type{Date{U,T}}) where {U,T} = Date{U,T}(T(0))\nstoragetype(::Type{Date{U,T}}) where {U,T} = T\nbitwidth(x::Meta.DateUnit.T) = x == Meta.DateUnit.DAY ? Int32 : Int64\nDate{Meta.DateUnit.DAY}(days) = DATE(Int32(days))\nDate{Meta.DateUnit.MILLISECOND}(ms) = Date{Meta.DateUnit.MILLISECOND,Int64}(Int64(ms))\n\njuliaeltype(f::Meta.Field, x::Meta.Date, convert) = Date{x.unit,bitwidth(x.unit)}\nfinaljuliatype(::Type{DATE}) = Dates.Date\nBase.convert(::Type{Dates.Date}, x::DATE) =\n    Dates.Date(Dates.UTD(Int64(x.x + UNIX_EPOCH_DATE)))\nfinaljuliatype(::Type{Date{Meta.DateUnit.MILLISECOND,Int64}}) = Dates.DateTime\nBase.convert(::Type{Dates.DateTime}, x::Date{Meta.DateUnit.MILLISECOND,Int64}) =\n    Dates.DateTime(Dates.UTM(Int64(x.x + UNIX_EPOCH_DATETIME)))\n\nfunction arrowtype(b, ::Type{Date{U,T}}) where {U,T}\n    Meta.dateStart(b)\n    Meta.dateAddUnit(b, U)\n    return Meta.Date, Meta.dateEnd(b), nothing\nend\n\nconst UNIX_EPOCH_DATE = Dates.value(Dates.Date(1970))\nBase.convert(::Type{DATE}, x::Dates.Date) = DATE(Int32(Dates.value(x) - UNIX_EPOCH_DATE))\n\nconst UNIX_EPOCH_DATETIME = Dates.value(Dates.DateTime(1970))\nBase.convert(::Type{Date{Meta.DateUnit.MILLISECOND,Int64}}, x::Dates.DateTime) =\n    Date{Meta.DateUnit.MILLISECOND,Int64}(Int64(Dates.value(x) - UNIX_EPOCH_DATETIME))\n\nArrowTypes.ArrowType(::Type{Dates.Date}) = DATE\nArrowTypes.toarrow(x::Dates.Date) = convert(DATE, x)\nconst DATE_SYMBOL = Symbol(\"JuliaLang.Date\")\nArrowTypes.arrowname(::Type{Dates.Date}) = DATE_SYMBOL\nArrowTypes.JuliaType(::Val{DATE_SYMBOL}, S) = Dates.Date\nArrowTypes.fromarrow(::Type{Dates.Date}, x::DATE) = convert(Dates.Date, x)\nArrowTypes.default(::Type{Dates.Date}) = Dates.Date(1, 1, 1)\n\nstruct Time{U,T} <: ArrowTimeType\n    x::T\nend\n\nBase.zero(::Type{Time{U,T}}) where {U,T} = Time{U,T}(T(0))\nconst TIME = Time{Meta.TimeUnit.NANOSECOND,Int64}\n\nbitwidth(x::Meta.TimeUnit.T) =\n    x == Meta.TimeUnit.SECOND || x == Meta.TimeUnit.MILLISECOND ? Int32 : Int64\nTime{U}(x) where {U<:Meta.TimeUnit.T} = Time{U,bitwidth(U)}(bitwidth(U)(x))\nstoragetype(::Type{Time{U,T}}) where {U,T} = T\njuliaeltype(f::Meta.Field, x::Meta.Time, convert) = Time{x.unit,bitwidth(x.unit)}\nfinaljuliatype(::Type{<:Time}) = Dates.Time\nperiodtype(U::Meta.TimeUnit.T) =\n    U === Meta.TimeUnit.SECOND ? Dates.Second :\n    U === Meta.TimeUnit.MILLISECOND ? Dates.Millisecond :\n    U === Meta.TimeUnit.MICROSECOND ? Dates.Microsecond : Dates.Nanosecond\nBase.convert(::Type{Dates.Time}, x::Time{U,T}) where {U,T} =\n    Dates.Time(Dates.Nanosecond(Dates.tons(periodtype(U)(x.x))))\n\nfunction arrowtype(b, ::Type{Time{U,T}}) where {U,T}\n    Meta.timeStart(b)\n    Meta.timeAddUnit(b, U)\n    Meta.timeAddBitWidth(b, Int32(8 * sizeof(T)))\n    return Meta.Time, Meta.timeEnd(b), nothing\nend\n\nBase.convert(::Type{TIME}, x::Dates.Time) = TIME(Dates.value(x))\n\nArrowTypes.ArrowType(::Type{Dates.Time}) = TIME\nArrowTypes.toarrow(x::Dates.Time) = convert(TIME, x)\nconst TIME_SYMBOL = Symbol(\"JuliaLang.Time\")\nArrowTypes.arrowname(::Type{Dates.Time}) = TIME_SYMBOL\nArrowTypes.JuliaType(::Val{TIME_SYMBOL}, S) = Dates.Time\nArrowTypes.fromarrow(::Type{Dates.Time}, x::Arrow.Time) = convert(Dates.Time, x)\nArrowTypes.default(::Type{Dates.Time}) = Dates.Time(1, 1, 1)\n\nstruct Timestamp{U,TZ} <: ArrowTimeType\n    x::Int64\nend\n\nBase.zero(::Type{Timestamp{U,T}}) where {U,T} = Timestamp{U,T}(Int64(0))\n\nfunction juliaeltype(f::Meta.Field, x::Meta.Timestamp, convert)\n    return Timestamp{x.unit,x.timezone === nothing ? nothing : Symbol(x.timezone)}\nend\n\nconst DATETIME = Timestamp{Meta.TimeUnit.MILLISECOND,nothing}\n\nfinaljuliatype(::Type{Timestamp{U,TZ}}) where {U,TZ} = ZonedDateTime\nfinaljuliatype(::Type{Timestamp{U,nothing}}) where {U} = DateTime\n\n@noinline warntimestamp(U, T) =\n    @warn \"automatically converting Arrow.Timestamp with precision = $U to `$T` which only supports millisecond precision; conversion may be lossy; to avoid converting, pass `Arrow.Table(source; convert=false)\" maxlog =\n        1 _id = hash((:warntimestamp, U, T))\n\nfunction Base.convert(::Type{ZonedDateTime}, x::Timestamp{U,TZ}) where {U,TZ}\n    (U === Meta.TimeUnit.MICROSECOND || U == Meta.TimeUnit.NANOSECOND) &&\n        warntimestamp(U, ZonedDateTime)\n    return ZonedDateTime(\n        Dates.DateTime(\n            Dates.UTM(Int64(Dates.toms(periodtype(U)(x.x)) + UNIX_EPOCH_DATETIME)),\n        ),\n        TimeZone(String(TZ));\n        from_utc=true,\n    )\nend\n\nfunction Base.convert(::Type{DateTime}, x::Timestamp{U,nothing}) where {U}\n    (U === Meta.TimeUnit.MICROSECOND || U == Meta.TimeUnit.NANOSECOND) &&\n        warntimestamp(U, DateTime)\n    return Dates.DateTime(\n        Dates.UTM(Int64(Dates.toms(periodtype(U)(x.x)) + UNIX_EPOCH_DATETIME)),\n    )\nend\n\nBase.convert(::Type{Timestamp{Meta.TimeUnit.MILLISECOND,TZ}}, x::ZonedDateTime) where {TZ} =\n    Timestamp{Meta.TimeUnit.MILLISECOND,TZ}(\n        Int64(Dates.value(DateTime(x, UTC)) - UNIX_EPOCH_DATETIME),\n    )\nBase.convert(::Type{Timestamp{Meta.TimeUnit.MILLISECOND,nothing}}, x::DateTime) =\n    Timestamp{Meta.TimeUnit.MILLISECOND,nothing}(\n        Int64(Dates.value(x) - UNIX_EPOCH_DATETIME),\n    )\n\nfunction arrowtype(b, ::Type{Timestamp{U,TZ}}) where {U,TZ}\n    tz = TZ !== nothing ? FlatBuffers.createstring!(b, String(TZ)) : FlatBuffers.UOffsetT(0)\n    Meta.timestampStart(b)\n    Meta.timestampAddUnit(b, U)\n    Meta.timestampAddTimezone(b, tz)\n    return Meta.Timestamp, Meta.timestampEnd(b), nothing\nend\n\nArrowTypes.ArrowType(::Type{Dates.DateTime}) = DATETIME\nArrowTypes.toarrow(x::Dates.DateTime) = convert(DATETIME, x)\nconst DATETIME_SYMBOL = Symbol(\"JuliaLang.DateTime\")\nArrowTypes.arrowname(::Type{Dates.DateTime}) = DATETIME_SYMBOL\nArrowTypes.JuliaType(::Val{DATETIME_SYMBOL}, S) = Dates.DateTime\nArrowTypes.fromarrow(::Type{Dates.DateTime}, x::Timestamp) = convert(Dates.DateTime, x)\nArrowTypes.fromarrow(::Type{Dates.DateTime}, x::Date{Meta.DateUnit.MILLISECOND,Int64}) =\n    convert(Dates.DateTime, x)\nArrowTypes.default(::Type{Dates.DateTime}) = Dates.DateTime(1, 1, 1, 1, 1, 1)\n\nArrowTypes.ArrowType(::Type{ZonedDateTime}) = Timestamp\nArrowTypes.toarrow(x::ZonedDateTime) =\n    convert(Timestamp{Meta.TimeUnit.MILLISECOND,Symbol(x.timezone)}, x)\nconst ZONEDDATETIME_SYMBOL = Symbol(\"JuliaLang.ZonedDateTime-UTC\")\nArrowTypes.arrowname(::Type{ZonedDateTime}) = ZONEDDATETIME_SYMBOL\nArrowTypes.JuliaType(::Val{ZONEDDATETIME_SYMBOL}, S) = ZonedDateTime\nArrowTypes.fromarrow(::Type{ZonedDateTime}, x::Timestamp) = convert(ZonedDateTime, x)\nArrowTypes.default(::Type{TimeZones.ZonedDateTime}) =\n    TimeZones.ZonedDateTime(1, 1, 1, 1, 1, 1, TimeZones.tz\"UTC\")\n\n# Backwards compatibility: older versions of Arrow saved ZonedDateTime's with this metdata:\nconst OLD_ZONEDDATETIME_SYMBOL = Symbol(\"JuliaLang.ZonedDateTime\")\n# and stored the local time instead of the UTC time.\nstruct LocalZonedDateTime end\nArrowTypes.JuliaType(::Val{OLD_ZONEDDATETIME_SYMBOL}, S) = LocalZonedDateTime\nfunction ArrowTypes.fromarrow(::Type{LocalZonedDateTime}, x::Timestamp{U,TZ}) where {U,TZ}\n    (U === Meta.TimeUnit.MICROSECOND || U == Meta.TimeUnit.NANOSECOND) &&\n        warntimestamp(U, ZonedDateTime)\n    return ZonedDateTime(\n        Dates.DateTime(\n            Dates.UTM(Int64(Dates.toms(periodtype(U)(x.x)) + UNIX_EPOCH_DATETIME)),\n        ),\n        TimeZone(String(TZ)),\n    )\nend\n\n\"\"\"\n    Arrow.ToTimestamp(x::AbstractVector{ZonedDateTime})\n\nWrapper array that provides a more efficient encoding of `ZonedDateTime` elements to the arrow format. In the arrow format,\ntimestamp columns with timezone information are encoded as the arrow equivalent of a Julia type parameter, meaning an entire column\n_should_ have elements all with the same timezone. If a `ZonedDateTime` column is passed to `Arrow.write`, for correctness, it must\nscan each element to check each timezone. `Arrow.ToTimestamp` provides a \"bypass\" of this process by encoding the timezone of the\nfirst element of the `AbstractVector{ZonedDateTime}`, which in turn allows `Arrow.write` to avoid costly checking/conversion and\ncan encode the `ZonedDateTime` as `Arrow.Timestamp` directly.\n\"\"\"\nstruct ToTimestamp{A,TZ} <: AbstractVector{Timestamp{Meta.TimeUnit.MILLISECOND,TZ}}\n    data::A # AbstractVector{ZonedDateTime}\nend\n\nToTimestamp(x::A) where {A<:AbstractVector{ZonedDateTime}} =\n    ToTimestamp{A,Symbol(x[1].timezone)}(x)\nBase.IndexStyle(::Type{<:ToTimestamp}) = Base.IndexLinear()\nBase.size(x::ToTimestamp) = (length(x.data),)\nBase.eltype(::Type{ToTimestamp{A,TZ}}) where {A,TZ} =\n    Timestamp{Meta.TimeUnit.MILLISECOND,TZ}\nBase.getindex(x::ToTimestamp{A,TZ}, i::Integer) where {A,TZ} =\n    convert(Timestamp{Meta.TimeUnit.MILLISECOND,TZ}, getindex(x.data, i))\n\nstruct Interval{U,T} <: ArrowTimeType\n    x::T\nend\n\nBase.zero(::Type{Interval{U,T}}) where {U,T} = Interval{U,T}(T(0))\n\nbitwidth(x::Meta.IntervalUnit.T) = x == Meta.IntervalUnit.YEAR_MONTH ? Int32 : Int64\nInterval{Meta.IntervalUnit.YEAR_MONTH}(x) =\n    Interval{Meta.IntervalUnit.YEAR_MONTH,Int32}(Int32(x))\nInterval{Meta.IntervalUnit.DAY_TIME}(x) =\n    Interval{Meta.IntervalUnit.DAY_TIME,Int64}(Int64(x))\n\nfunction juliaeltype(f::Meta.Field, x::Meta.Interval, convert)\n    return Interval{x.unit,bitwidth(x.unit)}\nend\n\nfunction arrowtype(b, ::Type{Interval{U,T}}) where {U,T}\n    Meta.intervalStart(b)\n    Meta.intervalAddUnit(b, U)\n    return Meta.Interval, Meta.intervalEnd(b), nothing\nend\n\nstruct Duration{U} <: ArrowTimeType\n    x::Int64\nend\n\nBase.zero(::Type{Duration{U}}) where {U} = Duration{U}(Int64(0))\n\nfunction juliaeltype(f::Meta.Field, x::Meta.Duration, convert)\n    return Duration{x.unit}\nend\n\nfinaljuliatype(::Type{Duration{U}}) where {U} = periodtype(U)\nBase.convert(::Type{P}, x::Duration{U}) where {P<:Dates.Period,U} = P(periodtype(U)(x.x))\n\nfunction arrowtype(b, ::Type{Duration{U}}) where {U}\n    Meta.durationStart(b)\n    Meta.durationAddUnit(b, U)\n    return Meta.Duration, Meta.durationEnd(b), nothing\nend\n\narrowtype(b, ::Type{P}) where {P<:Dates.Period} = arrowtype(b, Duration{arrowperiodtype(P)})\n\narrowperiodtype(P) = Meta.TimeUnit.SECOND\narrowperiodtype(::Type{Dates.Millisecond}) = Meta.TimeUnit.MILLISECOND\narrowperiodtype(::Type{Dates.Microsecond}) = Meta.TimeUnit.MICROSECOND\narrowperiodtype(::Type{Dates.Nanosecond}) = Meta.TimeUnit.NANOSECOND\n\nBase.convert(::Type{Duration{U}}, x::Dates.Period) where {U} =\n    Duration{U}(Dates.value(periodtype(U)(x)))\n\nArrowTypes.ArrowType(::Type{P}) where {P<:Dates.Period} = Duration{arrowperiodtype(P)}\nArrowTypes.toarrow(x::P) where {P<:Dates.Period} = convert(Duration{arrowperiodtype(P)}, x)\nconst PERIOD_SYMBOL = Symbol(\"JuliaLang.Dates.Period\")\nArrowTypes.arrowname(::Type{P}) where {P<:Dates.Period} = PERIOD_SYMBOL\nArrowTypes.JuliaType(::Val{PERIOD_SYMBOL}, ::Type{Duration{U}}) where {U} = periodtype(U)\nArrowTypes.fromarrow(::Type{P}, x::Duration{U}) where {P<:Dates.Period,U} = convert(P, x)\n\n# nested types; call juliaeltype recursively on nested children\nfunction juliaeltype(\n    f::Meta.Field,\n    list::Union{Meta.List,Meta.LargeList,Meta.ListView,Meta.LargeListView},\n    convert,\n)\n    return Vector{juliaeltype(f.children[1], buildmetadata(f.children[1]), convert)}\nend\n\n# arrowtype will call fieldoffset recursively for children\nfunction arrowtype(b, x::List{T,O,A}) where {T,O,A}\n    if liststringtype(x)\n        if T <: AbstractString || T <: Union{AbstractString,Missing}\n            if O == Int32\n                Meta.utf8Start(b)\n                return Meta.Utf8, Meta.utf8End(b), nothing\n            else # if O == Int64\n                Meta.largUtf8Start(b)\n                return Meta.LargeUtf8, Meta.largUtf8End(b), nothing\n            end\n        else # if Base.CodeUnits\n            if O == Int32\n                Meta.binaryStart(b)\n                return Meta.Binary, Meta.binaryEnd(b), nothing\n            else # if O == Int64\n                Meta.largeBinaryStart(b)\n                return Meta.LargeBinary, Meta.largeBinaryEnd(b), nothing\n            end\n        end\n    else\n        children = [fieldoffset(b, \"\", x.data)]\n        if O == Int32\n            Meta.listStart(b)\n            return Meta.List, Meta.listEnd(b), children\n        else\n            Meta.largeListStart(b)\n            return Meta.LargeList, Meta.largeListEnd(b), children\n        end\n    end\nend\n\nfunction juliaeltype(f::Meta.Field, list::Meta.FixedSizeList, convert)\n    type = juliaeltype(f.children[1], buildmetadata(f.children[1]), convert)\n    return NTuple{Int(list.listSize),type}\nend\n\nfunction arrowtype(b, x::FixedSizeList{T,A}) where {T,A}\n    N = ArrowTypes.getsize(\n        ArrowTypes.ArrowKind(ArrowTypes.ArrowType(Base.nonmissingtype(T))),\n    )\n    if eltype(A) == UInt8\n        Meta.fixedSizeBinaryStart(b)\n        Meta.fixedSizeBinaryAddByteWidth(b, Int32(N))\n        return Meta.FixedSizeBinary, Meta.fixedSizeBinaryEnd(b), nothing\n    else\n        children = [fieldoffset(b, \"\", x.data)]\n        Meta.fixedSizeListStart(b)\n        Meta.fixedSizeListAddListSize(b, Int32(N))\n        return Meta.FixedSizeList, Meta.fixedSizeListEnd(b), children\n    end\nend\n\nfunction juliaeltype(f::Meta.Field, map::Meta.Map, convert)\n    K = juliaeltype(\n        f.children[1].children[1],\n        buildmetadata(f.children[1].children[1]),\n        convert,\n    )\n    V = juliaeltype(\n        f.children[1].children[2],\n        buildmetadata(f.children[1].children[2]),\n        convert,\n    )\n    return Dict{K,V}\nend\n\nfunction arrowtype(b, x::Map)\n    children = [fieldoffset(b, \"entries\", x.data)]\n    Meta.mapStart(b)\n    return Meta.Map, Meta.mapEnd(b), children\nend\n\nstruct KeyValue{K,V}\n    key::K\n    value::V\nend\nkeyvalueK(::Type{KeyValue{K,V}}) where {K,V} = K\nkeyvalueV(::Type{KeyValue{K,V}}) where {K,V} = V\nBase.length(kv::KeyValue) = 1\nBase.iterate(kv::KeyValue, st=1) = st === nothing ? nothing : (kv, nothing)\nArrowTypes.default(::Type{KeyValue{K,V}}) where {K,V} = KeyValue(default(K), default(V))\n\nfunction arrowtype(b, ::Type{KeyValue{K,V}}) where {K,V}\n    children = [fieldoffset(b, \"key\", K), fieldoffset(b, \"value\", V)]\n    Meta.structStart(b)\n    return Meta.Struct, Meta.structEnd(b), children\nend\n\nfunction juliaeltype(f::Meta.Field, list::Meta.Struct, convert)\n    names = Tuple(Symbol(x.name) for x in f.children)\n    types = Tuple(juliaeltype(x, buildmetadata(x), convert) for x in f.children)\n    return NamedTuple{names,Tuple{types...}}\nend\n\nfunction arrowtype(b, x::Struct{T,S}) where {T,S}\n    names = fieldnames(Base.nonmissingtype(T))\n    children = [fieldoffset(b, names[i], x.data[i]) for i = 1:length(names)]\n    Meta.structStart(b)\n    return Meta.Struct, Meta.structEnd(b), children\nend\n\n# Unions\nfunction UnionT(f::Meta.Field, convert)\n    typeids = f.type.typeIds === nothing ? nothing : Tuple(Int(x) for x in f.type.typeIds)\n    UT = UnionT{\n        f.type.mode,\n        typeids,\n        Tuple{(juliaeltype(x, buildmetadata(x), convert) for x in f.children)...},\n    }\n    return UT\nend\n\njuliaeltype(f::Meta.Field, u::Meta.Union, convert) =\n    Union{(juliaeltype(x, buildmetadata(x), convert) for x in f.children)...}\n\nfunction arrowtype(\n    b,\n    x::Union{DenseUnion{S,UnionT{T,typeIds,U}},SparseUnion{S,UnionT{T,typeIds,U}}},\n) where {S,T,typeIds,U}\n    if typeIds !== nothing\n        Meta.unionStartTypeIdsVector(b, length(typeIds))\n        for id in Iterators.reverse(typeIds)\n            FlatBuffers.prepend!(b, id)\n        end\n        TI = FlatBuffers.endvector!(b, length(typeIds))\n    end\n    children = [fieldoffset(b, \"\", x.data[i]) for i = 1:fieldcount(U)]\n    Meta.unionStart(b)\n    Meta.unionAddMode(b, T)\n    if typeIds !== nothing\n        Meta.unionAddTypeIds(b, TI)\n    end\n    return Meta.Union, Meta.unionEnd(b), children\nend\n"
  },
  {
    "path": "src/metadata/File.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nstruct Footer <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::Footer) =\n    (:version, :schema, :dictionaries, :recordBatches, :custom_metadata)\n\nfunction Base.getproperty(x::Footer, field::Symbol)\n    if field === :version\n        o = FlatBuffers.offset(x, 4)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), MetadataVersion.T)\n        return MetadataVersion.V1\n    elseif field === :schema\n        o = FlatBuffers.offset(x, 6)\n        if o != 0\n            y = FlatBuffers.indirect(x, o + FlatBuffers.pos(x))\n            return FlatBuffers.init(Schema, FlatBuffers.bytes(x), y)\n        end\n    elseif field === :dictionaries\n        o = FlatBuffers.offset(x, 8)\n        if o != 0\n            return FlatBuffers.Array{Block}(x, o)\n        end\n    elseif field === :recordBatches\n        o = FlatBuffers.offset(x, 10)\n        if o != 0\n            return FlatBuffers.Array{Block}(x, o)\n        end\n    elseif field === :custom_metadata\n        o = FlatBuffers.offset(x, 12)\n        if o != 0\n            return FlatBuffers.Array{KeyValue}(x, o)\n        end\n    end\n    return nothing\nend\n\nfooterStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 4)\nfooterAddVersion(b::FlatBuffers.Builder, version::MetadataVersion.T) =\n    FlatBuffers.prependslot!(b, 0, version, 0)\nfooterAddSchema(b::FlatBuffers.Builder, schema::FlatBuffers.UOffsetT) =\n    FlatBuffers.prependoffsetslot!(b, 1, schema, 0)\nfooterAddDictionaries(b::FlatBuffers.Builder, dictionaries::FlatBuffers.UOffsetT) =\n    FlatBuffers.prependoffsetslot!(b, 2, dictionaries, 0)\nfooterStartDictionariesVector(b::FlatBuffers.Builder, numelems) =\n    FlatBuffers.startvector!(b, 24, numelems, 8)\nfooterAddRecordBatches(b::FlatBuffers.Builder, recordbatches::FlatBuffers.UOffsetT) =\n    FlatBuffers.prependoffsetslot!(b, 3, recordbatches, 0)\nfooterStartRecordBatchesVector(b::FlatBuffers.Builder, numelems) =\n    FlatBuffers.startvector!(b, 24, numelems, 8)\nfooterEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\nstruct Block <: FlatBuffers.Struct\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nFlatBuffers.structsizeof(::Base.Type{Block}) = 24\n\nBase.propertynames(x::Block) = (:offset, :metaDataLength, :bodyLength)\n\nfunction Base.getproperty(x::Block, field::Symbol)\n    if field === :offset\n        return FlatBuffers.get(x, FlatBuffers.pos(x), Int64)\n    elseif field === :metaDataLength\n        return FlatBuffers.get(x, FlatBuffers.pos(x) + 8, Int32)\n    elseif field === :bodyLength\n        return FlatBuffers.get(x, FlatBuffers.pos(x) + 16, Int64)\n    end\n    return nothing\nend\n\nfunction createBlock(\n    b::FlatBuffers.Builder,\n    offset::Int64,\n    metadatalength::Int32,\n    bodylength::Int64,\n)\n    FlatBuffers.prep!(b, 8, 24)\n    prepend!(b, bodylength)\n    FlatBuffers.pad!(b, 4)\n    prepend!(b, metadatalength)\n    prepend!(b, offset)\n    return FlatBuffers.offset(b)\nend\n"
  },
  {
    "path": "src/metadata/Flatbuf.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nmodule Flatbuf\n\nusing EnumX\nusing ..FlatBuffers\n\ninclude(\"Schema.jl\")\ninclude(\"File.jl\")\ninclude(\"Message.jl\")\n\nend # module\n"
  },
  {
    "path": "src/metadata/Message.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nstruct FieldNode <: FlatBuffers.Struct\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nFlatBuffers.structsizeof(::Base.Type{FieldNode}) = 16\n\nBase.propertynames(x::FieldNode) = (:length, :null_count)\n\nfunction Base.getproperty(x::FieldNode, field::Symbol)\n    if field === :length\n        return FlatBuffers.get(x, FlatBuffers.pos(x), Int64)\n    elseif field === :null_count\n        return FlatBuffers.get(x, FlatBuffers.pos(x) + 8, Int64)\n    end\n    return nothing\nend\n\nfunction createFieldNode(b::FlatBuffers.Builder, length::Int64, nullCount::Int64)\n    FlatBuffers.prep!(b, 8, 16)\n    prepend!(b, nullCount)\n    prepend!(b, length)\n    return FlatBuffers.offset(b)\nend\n\n@enumx CompressionType::Int8 LZ4_FRAME ZSTD\n\n@enumx BodyCompressionMethod::Int8 BUFFER\n\nstruct BodyCompression <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::BodyCompression) = (:codec, :method)\n\nfunction Base.getproperty(x::BodyCompression, field::Symbol)\n    if field === :codec\n        o = FlatBuffers.offset(x, 4)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), CompressionType.T)\n        return CompressionType.LZ4_FRAME\n    elseif field === :method\n        o = FlatBuffers.offset(x, 6)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), BodyCompressionMethod.T)\n        return BodyCompressionMethod.BUFFER\n    end\n    return nothing\nend\n\nbodyCompressionStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 2)\nbodyCompressionAddCodec(b::FlatBuffers.Builder, codec::CompressionType.T) =\n    FlatBuffers.prependslot!(b, 0, codec, 0)\nbodyCompressionAddMethod(b::FlatBuffers.Builder, method::BodyCompressionMethod.T) =\n    FlatBuffers.prependslot!(b, 1, method, 0)\nbodyCompressionEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\nstruct RecordBatch <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::RecordBatch) =\n    (:length, :nodes, :buffers, :compression, :variadicBufferCounts)\n\nfunction Base.getproperty(x::RecordBatch, field::Symbol)\n    if field === :length\n        o = FlatBuffers.offset(x, 4)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), Int64)\n    elseif field === :nodes\n        o = FlatBuffers.offset(x, 6)\n        if o != 0\n            return FlatBuffers.Array{FieldNode}(x, o)\n        end\n    elseif field === :buffers\n        o = FlatBuffers.offset(x, 8)\n        if o != 0\n            return FlatBuffers.Array{Buffer}(x, o)\n        end\n    elseif field === :compression\n        o = FlatBuffers.offset(x, 10)\n        if o != 0\n            y = FlatBuffers.indirect(x, o + FlatBuffers.pos(x))\n            return FlatBuffers.init(BodyCompression, FlatBuffers.bytes(x), y)\n        end\n    elseif field === :variadicBufferCounts\n        o = FlatBuffers.offset(x, 12)\n        if o != 0\n            return FlatBuffers.Array{Int32}(x, o)\n        end\n    end\n    return nothing\nend\n\nrecordBatchStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 4)\nrecordBatchAddLength(b::FlatBuffers.Builder, length::Int64) =\n    FlatBuffers.prependslot!(b, 0, length, 0)\nrecordBatchAddNodes(b::FlatBuffers.Builder, nodes::FlatBuffers.UOffsetT) =\n    FlatBuffers.prependoffsetslot!(b, 1, nodes, 0)\nrecordBatchStartNodesVector(b::FlatBuffers.Builder, numelems) =\n    FlatBuffers.startvector!(b, 16, numelems, 8)\nrecordBatchAddBuffers(b::FlatBuffers.Builder, buffers::FlatBuffers.UOffsetT) =\n    FlatBuffers.prependoffsetslot!(b, 2, buffers, 0)\nrecordBatchStartBuffersVector(b::FlatBuffers.Builder, numelems) =\n    FlatBuffers.startvector!(b, 16, numelems, 8)\nrecordBatchAddCompression(b::FlatBuffers.Builder, c::FlatBuffers.UOffsetT) =\n    FlatBuffers.prependoffsetslot!(b, 3, c, 0)\nrecordBatchEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\nstruct DictionaryBatch <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::DictionaryBatch) = (:id, :data, :isDelta)\n\nfunction Base.getproperty(x::DictionaryBatch, field::Symbol)\n    if field === :id\n        o = FlatBuffers.offset(x, 4)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), Int64)\n        return Int64(0)\n    elseif field === :data\n        o = FlatBuffers.offset(x, 6)\n        if o != 0\n            y = FlatBuffers.indirect(x, o + FlatBuffers.pos(x))\n            return FlatBuffers.init(RecordBatch, FlatBuffers.bytes(x), y)\n        end\n    elseif field === :isDelta\n        o = FlatBuffers.offset(x, 8)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), Base.Bool)\n        return false\n    end\n    return nothing\nend\n\ndictionaryBatchStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 3)\ndictionaryBatchAddId(b::FlatBuffers.Builder, id::Int64) =\n    FlatBuffers.prependslot!(b, 0, id, 0)\ndictionaryBatchAddData(b::FlatBuffers.Builder, data::FlatBuffers.UOffsetT) =\n    FlatBuffers.prependoffsetslot!(b, 1, data, 0)\ndictionaryBatchAddIsDelta(b::FlatBuffers.Builder, isdelta::Base.Bool) =\n    FlatBuffers.prependslot!(b, 2, isdelta, false)\ndictionaryBatchEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\nfunction MessageHeader(b::UInt8)\n    b == 1 && return Schema\n    b == 2 && return DictionaryBatch\n    b == 3 && return RecordBatch\n    # b == 4 && return Tensor\n    # b == 5 && return SparseTensor\n    return nothing\nend\n\nfunction MessageHeader(::Base.Type{T})::Int16 where {T}\n    T == Schema && return 1\n    T == DictionaryBatch && return 2\n    T == RecordBatch && return 3\n    # T == Tensor && return 4\n    # T == SparseTensor && return 5\n    return 0\nend\n\nstruct Message <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::Message) = (:version, :header, :bodyLength, :custom_metadata)\n\nfunction Base.getproperty(x::Message, field::Symbol)\n    if field === :version\n        o = FlatBuffers.offset(x, 4)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), MetadataVersion.T)\n    elseif field === :header\n        o = FlatBuffers.offset(x, 6)\n        if o != 0\n            T = MessageHeader(FlatBuffers.get(x, o + FlatBuffers.pos(x), UInt8))\n            o = FlatBuffers.offset(x, 8)\n            pos = FlatBuffers.union(x, o)\n            if o != 0\n                return FlatBuffers.init(T, FlatBuffers.bytes(x), pos)\n            end\n        end\n    elseif field === :bodyLength\n        o = FlatBuffers.offset(x, 10)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), Int64)\n        return Int64(0)\n    elseif field === :custom_metadata\n        o = FlatBuffers.offset(x, 12)\n        if o != 0\n            return FlatBuffers.Array{KeyValue}(x, o)\n        end\n    end\n    return nothing\nend\n\nmessageStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 5)\nmessageAddVersion(b::FlatBuffers.Builder, version::MetadataVersion.T) =\n    FlatBuffers.prependslot!(b, 0, version, 0)\nmessageAddHeaderType(b::FlatBuffers.Builder, ::Core.Type{T}) where {T} =\n    FlatBuffers.prependslot!(b, 1, MessageHeader(T), 0)\nmessageAddHeader(b::FlatBuffers.Builder, header::FlatBuffers.UOffsetT) =\n    FlatBuffers.prependoffsetslot!(b, 2, header, 0)\nmessageAddBodyLength(b::FlatBuffers.Builder, bodyLength::Int64) =\n    FlatBuffers.prependslot!(b, 3, bodyLength, 0)\nmessageAddCustomMetadata(b::FlatBuffers.Builder, meta::FlatBuffers.UOffsetT) =\n    FlatBuffers.prependoffsetslot!(b, 4, meta, 0)\nmessageStartCustomMetadataVector(b::FlatBuffers.Builder, numelems) =\n    FlatBuffers.startvector!(b, 4, numelems, 4)\nmessageEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n"
  },
  {
    "path": "src/metadata/Schema.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n@enumx MetadataVersion::Int16 V1 V2 V3 V4 V5\n\nstruct Null <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::Null) = ()\n\nnullStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 0)\nnullEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\nstruct Struct <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::Struct) = ()\n\nstructStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 0)\nstructEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\nstruct List <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::List) = ()\n\nlistStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 0)\nlistEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\nstruct LargeList <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::LargeList) = ()\n\nlargeListStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 0)\nlargeListEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\nstruct FixedSizeList <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::FixedSizeList) = (:listSize,)\n\nfunction Base.getproperty(x::FixedSizeList, field::Symbol)\n    if field === :listSize\n        o = FlatBuffers.offset(x, 4)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), Int32)\n        return Int32(0)\n    end\n    return nothing\nend\n\nfixedSizeListStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 1)\nfixedSizeListAddListSize(b::FlatBuffers.Builder, listSize::Int32) =\n    FlatBuffers.prependslot!(b, 0, listSize, 0)\nfixedSizeListEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\nstruct Map <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::Map) = (:keysSorted,)\n\nfunction Base.getproperty(x::Map, field::Symbol)\n    if field === :keysSorted\n        o = FlatBuffers.offset(x, 4)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), Base.Bool)\n    end\n    return nothing\nend\n\nmapStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 1)\nmapAddKeysSorted(b::FlatBuffers.Builder, keyssorted::Base.Bool) =\n    FlatBuffers.prependslot!(b, 0, keyssorted, 0)\nmapEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\n@enumx UnionMode::Int16 Sparse Dense\n\nstruct Union <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::Union) = (:mode, :typeIds)\n\nfunction Base.getproperty(x::Union, field::Symbol)\n    if field === :mode\n        o = FlatBuffers.offset(x, 4)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), UnionMode.T)\n        return UnionMode.Sparse\n    elseif field === :typeIds\n        o = FlatBuffers.offset(x, 6)\n        o != 0 && return FlatBuffers.Array{Int32}(x, o)\n    end\n    return nothing\nend\n\nunionStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 2)\nunionAddMode(b::FlatBuffers.Builder, mode::UnionMode.T) =\n    FlatBuffers.prependslot!(b, 0, mode, 0)\nunionAddTypeIds(b::FlatBuffers.Builder, typeIds::FlatBuffers.UOffsetT) =\n    FlatBuffers.prependoffsetslot!(b, 1, typeIds, 0)\nunionStartTypeIdsVector(b::FlatBuffers.Builder, numelems) =\n    FlatBuffers.startvector!(b, 4, numelems, 4)\nunionEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\nstruct Int <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::Int) = (:bitWidth, :is_signed)\n\nfunction Base.getproperty(x::Int, field::Symbol)\n    if field === :bitWidth\n        o = FlatBuffers.offset(x, 4)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), Int32)\n    elseif field === :is_signed\n        o = FlatBuffers.offset(x, 6)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), Base.Bool)\n        return false\n    end\n    return nothing\nend\n\nintStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 2)\nintAddBitWidth(b::FlatBuffers.Builder, bitwidth::Int32) =\n    FlatBuffers.prependslot!(b, 0, bitwidth, 0)\nintAddIsSigned(b::FlatBuffers.Builder, issigned::Base.Bool) =\n    FlatBuffers.prependslot!(b, 1, issigned, 0)\nintEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\n@enumx Precision::Int16 HALF SINGLE DOUBLE\n\nstruct FloatingPoint <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::FloatingPoint) = (:precision,)\n\nfunction Base.getproperty(x::FloatingPoint, field::Symbol)\n    if field === :precision\n        o = FlatBuffers.offset(x, 4)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), Precision.T)\n        return Precision.HALF\n    end\n    return nothing\nend\n\nfloatingPointStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 1)\nfloatingPointAddPrecision(b::FlatBuffers.Builder, precision::Precision.T) =\n    FlatBuffers.prependslot!(b, 0, precision, 0)\nfloatingPointEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\nstruct Utf8 <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::Utf8) = ()\n\nutf8Start(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 0)\nutf8End(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\nstruct Binary <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::Binary) = ()\n\nbinaryStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 0)\nbinaryEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\nstruct LargeUtf8 <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::LargeUtf8) = ()\n\nlargUtf8Start(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 0)\nlargUtf8End(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\nstruct LargeBinary <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::LargeBinary) = ()\n\nlargeBinaryStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 0)\nlargeBinaryEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\nstruct FixedSizeBinary <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::FixedSizeBinary) = (:byteWidth,)\n\nfunction Base.getproperty(x::FixedSizeBinary, field::Symbol)\n    if field === :byteWidth\n        o = FlatBuffers.offset(x, 4)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), Int32)\n    end\n    return nothing\nend\n\nfixedSizeBinaryStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 1)\nfixedSizeBinaryAddByteWidth(b::FlatBuffers.Builder, bytewidth::Int32) =\n    FlatBuffers.prependslot!(b, 0, bytewidth, 0)\nfixedSizeBinaryEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\nstruct Bool <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::Bool) = ()\n\nboolStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 0)\nboolEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\nstruct Decimal <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::Decimal) = (:precision, :scale, :bitWidth)\n\nfunction Base.getproperty(x::Decimal, field::Symbol)\n    if field === :precision\n        o = FlatBuffers.offset(x, 4)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), Int32)\n        return Int32(0)\n    elseif field === :scale\n        o = FlatBuffers.offset(x, 6)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), Int32)\n        return Int32(0)\n    elseif field === :bitWidth\n        o = FlatBuffers.offset(x, 8)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), Int32)\n        return Int32(128)\n    end\n    return nothing\nend\n\ndecimalStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 3)\ndecimalAddPrecision(b::FlatBuffers.Builder, precision::Int32) =\n    FlatBuffers.prependslot!(b, 0, precision, 0)\ndecimalAddScale(b::FlatBuffers.Builder, scale::Int32) =\n    FlatBuffers.prependslot!(b, 1, scale, 0)\ndecimalAddBitWidth(b::FlatBuffers.Builder, bitWidth::Int32) =\n    FlatBuffers.prependslot!(b, 2, bitWidth, Int32(128))\ndecimalEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\n@enumx DateUnit::Int16 DAY MILLISECOND\n\nstruct Date <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::Date) = (:unit,)\n\nfunction Base.getproperty(x::Date, field::Symbol)\n    if field === :unit\n        o = FlatBuffers.offset(x, 4)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), DateUnit.T)\n        return DateUnit.MILLISECOND\n    end\n    return nothing\nend\n\ndateStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 1)\ndateAddUnit(b::FlatBuffers.Builder, unit::DateUnit.T) =\n    FlatBuffers.prependslot!(b, 0, unit, 1)\ndateEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\n@enumx TimeUnit::Int16 SECOND MILLISECOND MICROSECOND NANOSECOND\n\nstruct Time <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::Time) = (:unit, :bitWidth)\n\nfunction Base.getproperty(x::Time, field::Symbol)\n    if field === :unit\n        o = FlatBuffers.offset(x, 4)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), TimeUnit.T)\n        return TimeUnit.MILLISECOND\n    elseif field === :bitWidth\n        o = FlatBuffers.offset(x, 6)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), Int32)\n        return 32\n    end\n    return nothing\nend\n\ntimeStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 2)\ntimeAddUnit(b::FlatBuffers.Builder, unit::TimeUnit.T) =\n    FlatBuffers.prependslot!(b, 0, unit, 1)\ntimeAddBitWidth(b::FlatBuffers.Builder, bitwidth::Int32) =\n    FlatBuffers.prependslot!(b, 1, bitwidth, 32)\ntimeEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\nstruct Timestamp <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::Timestamp) = (:unit, :timezone)\n\nfunction Base.getproperty(x::Timestamp, field::Symbol)\n    if field === :unit\n        o = FlatBuffers.offset(x, 4)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), TimeUnit.T)\n        return TimeUnit.SECOND\n    elseif field === :timezone\n        o = FlatBuffers.offset(x, 6)\n        o != 0 && return String(x, o + FlatBuffers.pos(x))\n    end\n    return nothing\nend\n\ntimestampStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 2)\ntimestampAddUnit(b::FlatBuffers.Builder, unit::TimeUnit.T) =\n    FlatBuffers.prependslot!(b, 0, unit, 0)\ntimestampAddTimezone(b::FlatBuffers.Builder, timezone::FlatBuffers.UOffsetT) =\n    FlatBuffers.prependoffsetslot!(b, 1, timezone, 0)\ntimestampEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\n@enumx IntervalUnit::Int16 YEAR_MONTH DAY_TIME\n\nstruct Interval <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::Interval) = (:unit,)\n\nfunction Base.getproperty(x::Interval, field::Symbol)\n    if field === :unit\n        o = FlatBuffers.offset(x, 4)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), IntervalUnit.T)\n        return IntervalUnit.YEAR_MONTH\n    end\n    return nothing\nend\n\nintervalStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 1)\nintervalAddUnit(b::FlatBuffers.Builder, unit::IntervalUnit.T) =\n    FlatBuffers.prependslot!(b, 0, unit, 0)\nintervalEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\nstruct Duration <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::Duration) = (:unit,)\n\nfunction Base.getproperty(x::Duration, field::Symbol)\n    if field === :unit\n        o = FlatBuffers.offset(x, 4)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), TimeUnit.T)\n        return TimeUnit.MILLISECOND\n    end\n    return nothing\nend\n\ndurationStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 1)\ndurationAddUnit(b::FlatBuffers.Builder, unit::TimeUnit.T) =\n    FlatBuffers.prependslot!(b, 0, unit, 1)\ndurationEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\n# /// Contains two child arrays, run_ends and values.\n# /// The run_ends child array must be a 16/32/64-bit integer array\n# /// which encodes the indices at which the run with the value in \n# /// each corresponding index in the values child array ends.\n# /// Like list/struct types, the value array can be of any type.\n# table RunEndEncoded {\n# }\nstruct RunEndEncoded <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::RunEndEncoded) = ()\n\nrunEndEncodedStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 0)\nrunEndEncodedEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\n# /// Logically the same as Binary, but the internal representation uses a view\n# /// struct that contains the string length and either the string's entire data\n# /// inline (for small strings) or an inlined prefix, an index of another buffer,\n# /// and an offset pointing to a slice in that buffer (for non-small strings).\n# ///\n# /// Since it uses a variable number of data buffers, each Field with this type\n# /// must have a corresponding entry in `variadicBufferCounts`.\n# table BinaryView {\n# }\nstruct BinaryView <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::BinaryView) = ()\n\nbinaryViewStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 0)\nbinaryViewEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\n# /// Logically the same as Utf8, but the internal representation uses a view\n# /// struct that contains the string length and either the string's entire data\n# /// inline (for small strings) or an inlined prefix, an index of another buffer,\n# /// and an offset pointing to a slice in that buffer (for non-small strings).\n# ///\n# /// Since it uses a variable number of data buffers, each Field with this type\n# /// must have a corresponding entry in `variadicBufferCounts`.\n# table Utf8View {\n# }\nstruct Utf8View <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::Utf8View) = ()\n\nutf8ViewStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 0)\nutf8ViewEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\n# /// Represents the same logical types that List can, but contains offsets and\n# /// sizes allowing for writes in any order and sharing of child values among\n# /// list values.\n# table ListView {\n# }\nstruct ListView <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::ListView) = ()\n\nlistViewStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 0)\nlistViewEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\n# /// Represents the same logical types that LargeList can, but contains offsets\n# /// and sizes allowing for writes in any order and sharing of child values among\n# /// list values.\n# table LargeListView {\n# }\nstruct LargeListView <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::LargeListView) = ()\n\nlargeListViewStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 0)\nlargeListViewEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\n# Ensure this binding is distinct from `Base.Type` by forward-declaring it. Otherwise, in\n# Julia 1.12, defining a function called `Type` by simply defining methods ends up actually\n# defining methods for `Base.Type`.\nfunction Type end\n\nfunction Type(b::UInt8)\n    b == 1 && return Null\n    b == 2 && return Int\n    b == 3 && return FloatingPoint\n    b == 4 && return Binary\n    b == 5 && return Utf8\n    b == 6 && return Bool\n    b == 7 && return Decimal\n    b == 8 && return Date\n    b == 9 && return Time\n    b == 10 && return Timestamp\n    b == 11 && return Interval\n    b == 12 && return List\n    b == 13 && return Struct\n    b == 14 && return Union\n    b == 15 && return FixedSizeBinary\n    b == 16 && return FixedSizeList\n    b == 17 && return Map\n    b == 18 && return Duration\n    b == 19 && return LargeBinary\n    b == 20 && return LargeUtf8\n    b == 21 && return LargeList\n    b == 22 && return RunEndEncoded\n    b == 23 && return BinaryView\n    b == 24 && return Utf8View\n    b == 25 && return ListView\n    b == 26 && return LargeListView\n    return nothing\nend\n\nfunction Type(::Base.Type{T})::Int16 where {T}\n    T == Null && return 1\n    T == Int && return 2\n    T == FloatingPoint && return 3\n    T == Binary && return 4\n    T == Utf8 && return 5\n    T == Bool && return 6\n    T == Decimal && return 7\n    T == Date && return 8\n    T == Time && return 9\n    T == Timestamp && return 10\n    T == Interval && return 11\n    T == List && return 12\n    T == Struct && return 13\n    T == Union && return 14\n    T == FixedSizeBinary && return 15\n    T == FixedSizeList && return 16\n    T == Map && return 17\n    T == Duration && return 18\n    T == LargeBinary && return 19\n    T == LargeUtf8 && return 20\n    T == LargeList && return 21\n    return 0\nend\n\nstruct KeyValue <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::KeyValue) = (:key, :value)\n\nfunction Base.getproperty(x::KeyValue, field::Symbol)\n    if field === :key\n        o = FlatBuffers.offset(x, 4)\n        o != 0 && return String(x, o + FlatBuffers.pos(x))\n    elseif field === :value\n        o = FlatBuffers.offset(x, 6)\n        o != 0 && return String(x, o + FlatBuffers.pos(x))\n    end\n    return nothing\nend\n\nkeyValueStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 2)\nkeyValueAddKey(b::FlatBuffers.Builder, key::FlatBuffers.UOffsetT) =\n    FlatBuffers.prependoffsetslot!(b, 0, key, 0)\nkeyValueAddValue(b::FlatBuffers.Builder, value::FlatBuffers.UOffsetT) =\n    FlatBuffers.prependoffsetslot!(b, 1, value, 0)\nkeyValueEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\n@enumx DictionaryKind::Int16 DenseArray\n\nstruct DictionaryEncoding <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::DictionaryEncoding) = (:id, :indexType, :isOrdered, :dictionaryKind)\n\nfunction Base.getproperty(x::DictionaryEncoding, field::Symbol)\n    if field === :id\n        o = FlatBuffers.offset(x, 4)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), Int64)\n        return Int64(0)\n    elseif field === :indexType\n        o = FlatBuffers.offset(x, 6)\n        if o != 0\n            y = FlatBuffers.indirect(x, o + FlatBuffers.pos(x))\n            return FlatBuffers.init(Int, FlatBuffers.bytes(x), y)\n        end\n    elseif field === :isOrdered\n        o = FlatBuffers.offset(x, 8)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), Base.Bool)\n        return false\n    elseif field === :dictionaryKind\n        o = FlatBuffers.offset(x, 10)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), DictionaryKind.T)\n    end\n    return nothing\nend\n\ndictionaryEncodingStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 3)\ndictionaryEncodingAddId(b::FlatBuffers.Builder, id::Int64) =\n    FlatBuffers.prependslot!(b, 0, id, 0)\ndictionaryEncodingAddIndexType(b::FlatBuffers.Builder, indextype::FlatBuffers.UOffsetT) =\n    FlatBuffers.prependoffsetslot!(b, 1, indextype, 0)\ndictionaryEncodingAddIsOrdered(b::FlatBuffers.Builder, isordered::Base.Bool) =\n    FlatBuffers.prependslot!(b, 1, isordered, 0)\ndictionaryEncodingEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\nstruct Field <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::Field) =\n    (:name, :nullable, :type, :dictionary, :children, :custom_metadata)\n\nfunction Base.getproperty(x::Field, field::Symbol)\n    if field === :name\n        o = FlatBuffers.offset(x, 4)\n        o != 0 && return String(x, o + FlatBuffers.pos(x))\n    elseif field === :nullable\n        o = FlatBuffers.offset(x, 6)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), Base.Bool)\n        return false\n    elseif field === :type\n        o = FlatBuffers.offset(x, 8)\n        if o != 0\n            T = Type(FlatBuffers.get(x, o + FlatBuffers.pos(x), UInt8))\n            o = FlatBuffers.offset(x, 10)\n            pos = FlatBuffers.union(x, o)\n            if o != 0\n                return FlatBuffers.init(T, FlatBuffers.bytes(x), pos)\n            end\n        end\n    elseif field === :dictionary\n        o = FlatBuffers.offset(x, 12)\n        if o != 0\n            y = FlatBuffers.indirect(x, o + FlatBuffers.pos(x))\n            return FlatBuffers.init(DictionaryEncoding, FlatBuffers.bytes(x), y)\n        end\n    elseif field === :children\n        o = FlatBuffers.offset(x, 14)\n        if o != 0\n            return FlatBuffers.Array{Field}(x, o)\n        end\n    elseif field === :custom_metadata\n        o = FlatBuffers.offset(x, 16)\n        if o != 0\n            return FlatBuffers.Array{KeyValue}(x, o)\n        end\n    end\n    return nothing\nend\n\nfieldStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 7)\nfieldAddName(b::FlatBuffers.Builder, name::FlatBuffers.UOffsetT) =\n    FlatBuffers.prependoffsetslot!(b, 0, name, 0)\nfieldAddNullable(b::FlatBuffers.Builder, nullable::Base.Bool) =\n    FlatBuffers.prependslot!(b, 1, nullable, false)\nfieldAddTypeType(b::FlatBuffers.Builder, ::Core.Type{T}) where {T} =\n    FlatBuffers.prependslot!(b, 2, Type(T), 0)\nfieldAddType(b::FlatBuffers.Builder, type::FlatBuffers.UOffsetT) =\n    FlatBuffers.prependoffsetslot!(b, 3, type, 0)\nfieldAddDictionary(b::FlatBuffers.Builder, dictionary::FlatBuffers.UOffsetT) =\n    FlatBuffers.prependoffsetslot!(b, 4, dictionary, 0)\nfieldAddChildren(b::FlatBuffers.Builder, children::FlatBuffers.UOffsetT) =\n    FlatBuffers.prependoffsetslot!(b, 5, children, 0)\nfieldStartChildrenVector(b::FlatBuffers.Builder, numelems) =\n    FlatBuffers.startvector!(b, 4, numelems, 4)\nfieldAddCustomMetadata(b::FlatBuffers.Builder, custommetadata::FlatBuffers.UOffsetT) =\n    FlatBuffers.prependoffsetslot!(b, 6, custommetadata, 0)\nfieldStartCustomMetadataVector(b::FlatBuffers.Builder, numelems) =\n    FlatBuffers.startvector!(b, 4, numelems, 4)\nfieldEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n\n@enumx Endianness::Int16 Little Big\n\nstruct Buffer <: FlatBuffers.Struct\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nFlatBuffers.structsizeof(::Base.Type{Buffer}) = 16\n\nBase.propertynames(x::Buffer) = (:offset, :length)\n\nfunction Base.getproperty(x::Buffer, field::Symbol)\n    if field === :offset\n        return FlatBuffers.get(x, FlatBuffers.pos(x), Int64)\n    elseif field === :length\n        return FlatBuffers.get(x, FlatBuffers.pos(x) + 8, Int64)\n    end\n    return nothing\nend\n\nfunction createBuffer(b::FlatBuffers.Builder, offset::Int64, length::Int64)\n    FlatBuffers.prep!(b, 8, 16)\n    prepend!(b, length)\n    prepend!(b, offset)\n    return FlatBuffers.offset(b)\nend\n\nstruct Schema <: FlatBuffers.Table\n    bytes::Vector{UInt8}\n    pos::Base.Int\nend\n\nBase.propertynames(x::Schema) = (:endianness, :fields, :custom_metadata)\n\nfunction Base.getproperty(x::Schema, field::Symbol)\n    if field === :endianness\n        o = FlatBuffers.offset(x, 4)\n        o != 0 && return FlatBuffers.get(x, o + FlatBuffers.pos(x), Endianness.T)\n    elseif field === :fields\n        o = FlatBuffers.offset(x, 6)\n        if o != 0\n            return FlatBuffers.Array{Field}(x, o)\n        end\n    elseif field === :custom_metadata\n        o = FlatBuffers.offset(x, 8)\n        if o != 0\n            return FlatBuffers.Array{KeyValue}(x, o)\n        end\n    end\n    return nothing\nend\n\nschemaStart(b::FlatBuffers.Builder) = FlatBuffers.startobject!(b, 3)\nschemaAddEndianness(b::FlatBuffers.Builder, endianness::Endianness.T) =\n    FlatBuffers.prependslot!(b, 0, endianness, 0)\nschemaAddFields(b::FlatBuffers.Builder, fields::FlatBuffers.UOffsetT) =\n    FlatBuffers.prependoffsetslot!(b, 1, fields, 0)\nschemaStartFieldsVector(b::FlatBuffers.Builder, numelems) =\n    FlatBuffers.startvector!(b, 4, numelems, 4)\nschemaAddCustomMetadata(b::FlatBuffers.Builder, custommetadata::FlatBuffers.UOffsetT) =\n    FlatBuffers.prependoffsetslot!(b, 2, custommetadata, 0)\nschemaStartCustomMetadataVector(b::FlatBuffers.Builder, numelems) =\n    FlatBuffers.startvector!(b, 4, numelems, 4)\nschemaEnd(b::FlatBuffers.Builder) = FlatBuffers.endobject!(b)\n"
  },
  {
    "path": "src/show.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\n# 2-arg show: show schema and list # of metadata entries if non-zero\nfunction Base.show(io::IO, table::Table)\n    ncols = length(Tables.columnnames(table))\n    print(io, \"$(typeof(table)) with $(Tables.rowcount(table)) rows, $(ncols) columns,\")\n    meta = getmetadata(table)\n    if meta !== nothing && !isempty(meta)\n        print(io, \" \", length(meta), \" metadata entries,\")\n    end\n    sch = Tables.schema(table)\n    print(io, \" and schema:\\n\")\n    show(IOContext(io, :print_schema_header => false), sch)\n    return nothing\nend\n\n# 3-arg show: show schema and show metadata entries adaptively according to `displaysize`\nfunction Base.show(io::IO, mime::MIME\"text/plain\", table::Table)\n    display_rows, display_cols = displaysize(io)\n    ncols = length(Tables.columnnames(table))\n    meta = getmetadata(table)\n    if meta !== nothing\n        display_rows -= 1 # decrement for metadata header line\n        display_rows -= min(length(meta), 2) # decrement so we can show at least 2 lines of metadata\n    end\n    print(\n        io,\n        \"$(typeof(table)) with $(Tables.rowcount(table)) rows, $(ncols) columns, and \",\n    )\n    sch = Tables.schema(table)\n    print(io, \"schema:\\n\")\n    schema_context = IOContext(\n        io,\n        :print_schema_header => false,\n        :displaysize => (max(display_rows, 3), display_cols),\n    )\n    schema_str = sprint(show, mime, sch; context=schema_context)\n    print(io, schema_str)\n    display_rows -= (count(\"\\n\", schema_str) + 1) # decrement for number of lines printed\n    if meta !== nothing\n        print(io, \"\\n\\nwith metadata given by a \")\n        show(\n            IOContext(io, :displaysize => (max(display_rows, 5), display_cols)),\n            mime,\n            meta,\n        )\n    end\n    return nothing\nend\n"
  },
  {
    "path": "src/table.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nstruct ArrowBlob\n    bytes::Vector{UInt8}\n    pos::Int\n    len::Int\nend\n\nArrowBlob(bytes::Vector{UInt8}, pos::Int, len::Nothing) =\n    ArrowBlob(bytes, pos, length(bytes))\n\ntobytes(bytes::Vector{UInt8}) = bytes\ntobytes(io::IO) = Base.read(io)\ntobytes(io::IOStream) = Mmap.mmap(io)\ntobytes(file_path) = open(tobytes, file_path, \"r\")\n\nstruct BatchIterator\n    bytes::Vector{UInt8}\n    startpos::Int\n    function BatchIterator(blob::ArrowBlob)\n        bytes, pos, len = blob.bytes, blob.pos, blob.len\n        if len > 24 && _startswith(bytes, pos, FILE_FORMAT_MAGIC_BYTES)\n            pos += 8 # skip past magic bytes + padding\n        end\n        new(bytes, pos)\n    end\nend\n\n\"\"\"\n    Arrow.Stream(io::IO; convert::Bool=true)\n    Arrow.Stream(file::String; convert::Bool=true)\n    Arrow.Stream(bytes::Vector{UInt8}, pos=1, len=nothing; convert::Bool=true)\n    Arrow.Stream(inputs::Vector; convert::Bool=true)\n\nStart reading an arrow formatted table, from:\n * `io`, bytes will be read all at once via `read(io)`\n * `file`, bytes will be read via `Mmap.mmap(file)`\n * `bytes`, a byte vector directly, optionally allowing specifying the starting byte position `pos` and `len`\n * A `Vector` of any of the above, in which each input should be an IPC or arrow file and must match schema\n\nReads the initial schema message from the arrow stream/file, then returns an `Arrow.Stream` object\nwhich will iterate over record batch messages, producing an [`Arrow.Table`](@ref) on each iteration.\n\nBy iterating [`Arrow.Table`](@ref), `Arrow.Stream` satisfies the `Tables.partitions` interface, and as such can\nbe passed to Tables.jl-compatible sink functions.\n\nThis allows iterating over extremely large \"arrow tables\" in chunks represented as record batches.\n\nSupports the `convert` keyword argument which controls whether certain arrow primitive types will be\nlazily converted to more friendly Julia defaults; by default, `convert=true`.\n\"\"\"\nmutable struct Stream\n    inputs::Vector{ArrowBlob}\n    inputindex::Int\n    batchiterator::Union{Nothing,BatchIterator}\n    names::Vector{Symbol}\n    types::Vector{Type}\n    schema::Union{Nothing,Meta.Schema}\n    dictencodings::Lockable{Dict{Int64,DictEncoding}} # dictionary id => DictEncoding\n    dictencoded::Dict{Int64,Meta.Field} # dictionary id => field\n    convert::Bool\n    compression::Ref{Union{Symbol,Nothing}}\nend\n\nfunction Stream(inputs::Vector{ArrowBlob}; convert::Bool=true)\n    inputindex = 1\n    batchiterator = nothing\n    names = Symbol[]\n    types = Type[]\n    schema = nothing\n    dictencodings = Lockable(Dict{Int64,DictEncoding}())\n    dictencoded = Dict{Int64,Meta.Field}()\n    compression = Ref{Union{Symbol,Nothing}}(nothing)\n    Stream(\n        inputs,\n        inputindex,\n        batchiterator,\n        names,\n        types,\n        schema,\n        dictencodings,\n        dictencoded,\n        convert,\n        compression,\n    )\nend\n\nfunction Stream(input, pos::Integer=1, len=nothing; kw...)\n    b = tobytes(input)\n    isempty(b) ? Stream(ArrowBlob[]; kw...) : Stream([ArrowBlob(b, pos, len)]; kw...)\nend\n\nfunction Stream(input::Vector{UInt8}, pos::Integer=1, len=nothing; kw...)\n    b = tobytes(input)\n    isempty(b) ? Stream(ArrowBlob[]; kw...) : Stream([ArrowBlob(b, pos, len)]; kw...)\nend\n\nfunction Stream(inputs::AbstractVector; kw...)\n    blobs = ArrowBlob[]\n    for x in inputs\n        b = tobytes(x)\n        isempty(b) && continue\n        push!(blobs, ArrowBlob(b, 1, nothing))\n    end\n    Stream(blobs; kw...)\nend\n\nfunction initialize!(x::Stream)\n    isempty(getfield(x, :names)) || return\n    # Initialize member fields using iteration and reset state\n    lastinputindex = x.inputindex\n    lastbatchiterator = x.batchiterator\n    iterate(x)\n    x.inputindex = lastinputindex\n    x.batchiterator = lastbatchiterator\n    nothing\nend\n\nTables.partitions(x::Stream) = x\n\nfunction Tables.columnnames(x::Stream)\n    initialize!(x)\n    getfield(x, :names)\nend\n\nfunction Tables.schema(x::Stream)\n    initialize!(x)\n    Tables.Schema(Tables.columnnames(x), getfield(x, :types))\nend\n\nBase.IteratorSize(::Type{Stream}) = Base.SizeUnknown()\nBase.eltype(::Type{Stream}) = Table\nBase.isdone(x::Stream) = x.inputindex > length(x.inputs)\n\nfunction Base.iterate(x::Stream, (pos, id)=(1, 0))\n    if Base.isdone(x)\n        x.inputindex = 1\n        x.batchiterator = nothing\n        return nothing\n    end\n    if isnothing(x.batchiterator)\n        blob = x.inputs[x.inputindex]\n        x.batchiterator = BatchIterator(blob)\n        pos = x.batchiterator.startpos\n    end\n\n    columns = AbstractVector[]\n    compression = nothing\n\n    while true\n        state = iterate(x.batchiterator, (pos, id))\n        # check for additional inputs\n        while state === nothing\n            x.inputindex += 1\n            if Base.isdone(x)\n                x.inputindex = 1\n                x.batchiterator = nothing\n                return nothing\n            end\n            blob = x.inputs[x.inputindex]\n            x.batchiterator = BatchIterator(blob)\n            pos = x.batchiterator.startpos\n            state = iterate(x.batchiterator, (pos, id))\n        end\n        batch, (pos, id) = state\n        header = batch.msg.header\n        if isnothing(x.schema) && !isa(header, Meta.Schema)\n            throw(ArgumentError(\"first arrow ipc message MUST be a schema message\"))\n        end\n        if header isa Meta.Schema\n            if isnothing(x.schema)\n                x.schema = header\n                # assert endianness?\n                # store custom_metadata?\n                for (i, field) in enumerate(x.schema.fields)\n                    push!(x.names, Symbol(field.name))\n                    push!(\n                        x.types,\n                        juliaeltype(field, buildmetadata(field.custom_metadata), x.convert),\n                    )\n                    # recursively find any dictionaries for any fields\n                    getdictionaries!(x.dictencoded, field)\n                    @debug \"parsed column from schema: field = $field\"\n                end\n            elseif header != x.schema\n                throw(\n                    ArgumentError(\n                        \"mismatched schemas between different arrow batches: $(x.schema) != $header\",\n                    ),\n                )\n            end\n        elseif header isa Meta.DictionaryBatch\n            id = header.id\n            recordbatch = header.data\n            @debug \"parsing dictionary batch message: id = $id, compression = $(recordbatch.compression)\"\n            if recordbatch.compression !== nothing\n                compression = recordbatch.compression\n            end\n            @lock x.dictencodings begin\n                dictencodings = x.dictencodings[]\n                if haskey(dictencodings, id) && header.isDelta\n                    # delta\n                    field = x.dictencoded[id]\n                    values, _, _, _ = build(\n                        field,\n                        field.type,\n                        batch,\n                        recordbatch,\n                        x.dictencodings,\n                        Int64(1),\n                        Int64(1),\n                        Int64(1),\n                        x.convert,\n                    )\n                    dictencoding = dictencodings[id]\n                    append!(dictencoding.data, values)\n                    continue\n                end\n                # new dictencoding or replace\n                field = x.dictencoded[id]\n                values, _, _, _ = build(\n                    field,\n                    field.type,\n                    batch,\n                    recordbatch,\n                    x.dictencodings,\n                    Int64(1),\n                    Int64(1),\n                    Int64(1),\n                    x.convert,\n                )\n                A = ChainedVector([values])\n                S =\n                    field.dictionary.indexType === nothing ? Int32 :\n                    juliaeltype(field, field.dictionary.indexType, false)\n                dictencodings[id] = DictEncoding{eltype(A),S,typeof(A)}(\n                    id,\n                    A,\n                    field.dictionary.isOrdered,\n                    values.metadata,\n                )\n            end # lock\n            @debug \"parsed dictionary batch message: id=$id, data=$values\\n\"\n        elseif header isa Meta.RecordBatch\n            @debug \"parsing record batch message: compression = $(header.compression)\"\n            if header.compression !== nothing\n                compression = header.compression\n            end\n            for vec in VectorIterator(x.schema, batch, x.dictencodings, x.convert)\n                push!(columns, vec)\n            end\n            break\n        else\n            throw(ArgumentError(\"unsupported arrow message type: $(typeof(header))\"))\n        end\n    end\n\n    if compression !== nothing\n        if compression.codec == Flatbuf.CompressionType.ZSTD\n            x.compression[] = :zstd\n        elseif compression.codec == Flatbuf.CompressionType.LZ4_FRAME\n            x.compression[] = :lz4\n        else\n            throw(ArgumentError(\"unsupported compression codec: $(compression.codec)\"))\n        end\n    end\n\n    lookup = Dict{Symbol,AbstractVector}()\n    types = Type[]\n    for (nm, col) in zip(x.names, columns)\n        lookup[nm] = col\n        push!(types, eltype(col))\n    end\n    return Table(x.names, types, columns, lookup, Ref(x.schema)), (pos, id)\nend\n\n\"\"\"\n    Arrow.Table(io::IO; convert::Bool=true)\n    Arrow.Table(file::String; convert::Bool=true)\n    Arrow.Table(bytes::Vector{UInt8}, pos=1, len=nothing; convert::Bool=true)\n    Arrow.Table(inputs::Vector; convert::Bool=true)\n\nRead an arrow formatted table, from:\n * `io`, bytes will be read all at once via `read(io)`\n * `file`, bytes will be read via `Mmap.mmap(file)`\n * `bytes`, a byte vector directly, optionally allowing specifying the starting byte position `pos` and `len`\n * A `Vector` of any of the above, in which each input should be an IPC or arrow file and must match schema\n\nReturns a `Arrow.Table` object that allows column access via `table.col1`, `table[:col1]`, or `table[1]`.\n\nNOTE: the columns in an `Arrow.Table` are views into the original arrow memory, and hence are not easily\nmodifiable (with e.g. `push!`, `append!`, etc.). To mutate arrow columns, call `copy(x)` to materialize\nthe arrow data as a normal Julia array.\n\n`Arrow.Table` also satisfies the [Tables.jl](https://github.com/JuliaData/Tables.jl) interface, and so can easily be materialied via any supporting\nsink function: e.g. `DataFrame(Arrow.Table(file))`, `SQLite.load!(db, \"table\", Arrow.Table(file))`, etc.\n\nSupports the `convert` keyword argument which controls whether certain arrow primitive types will be\nlazily converted to more friendly Julia defaults; by default, `convert=true`.\n\"\"\"\nstruct Table <: Tables.AbstractColumns\n    names::Vector{Symbol}\n    types::Vector{Type}\n    columns::Vector{AbstractVector}\n    lookup::Dict{Symbol,AbstractVector}\n    schema::Ref{Meta.Schema}\n    metadata::Ref{Union{Nothing,Base.ImmutableDict{String,String}}}\nend\n\nTable() = Table(\n    Symbol[],\n    Type[],\n    AbstractVector[],\n    Dict{Symbol,AbstractVector}(),\n    Ref{Meta.Schema}(),\n    Ref{Union{Nothing,Base.ImmutableDict{String,String}}}(nothing),\n)\n\nfunction Table(names, types, columns, lookup, schema)\n    m = isassigned(schema) ? buildmetadata(schema[]) : nothing\n    return Table(\n        names,\n        types,\n        columns,\n        lookup,\n        schema,\n        Ref{Union{Nothing,Base.ImmutableDict{String,String}}}(m),\n    )\nend\n\nnames(t::Table) = getfield(t, :names)\ntypes(t::Table) = getfield(t, :types)\ncolumns(t::Table) = getfield(t, :columns)\nlookup(t::Table) = getfield(t, :lookup)\nschema(t::Table) = getfield(t, :schema)\nmetadata(t::Table) = getfield(t, :metadata)\n\n\"\"\"\n    Arrow.getmetadata(x)\n\nIf `x isa Arrow.Table` return a `Base.ImmutableDict{String,String}` representation of `x`'s\n`Schema` `custom_metadata`, or `nothing` if no such metadata exists.\n\nIf `x isa Arrow.ArrowVector`, return a `Base.ImmutableDict{String,String}` representation of `x`'s\n`Field` `custom_metadata`, or `nothing` if no such metadata exists.\n\nOtherwise, return `nothing`.\n\nSee [the official Arrow documentation for more details on custom application metadata](https://arrow.apache.org/docs/format/Columnar.html#custom-application-metadata).\n\"\"\"\ngetmetadata(t::Table) = getfield(t, :metadata)[]\ngetmetadata(::Any) = nothing\n\nDataAPI.metadatasupport(::Type{Table}) = (read=true, write=false)\nDataAPI.colmetadatasupport(::Type{Table}) = (read=true, write=false)\n\nfunction DataAPI.metadata(t::Table, key::AbstractString; style::Bool=false)\n    meta = getmetadata(t)[key]\n    return style ? (meta, :default) : meta\nend\n\nfunction DataAPI.metadata(t::Table, key::AbstractString, default; style::Bool=false)\n    meta = getmetadata(t)\n    if meta !== nothing\n        haskey(meta, key) && return style ? meta[key] : (meta[key], :default)\n    end\n    return style ? (default, :default) : default\nend\n\nfunction DataAPI.metadatakeys(t::Table)\n    meta = getmetadata(t)\n    meta === nothing && return ()\n    return keys(meta)\nend\n\nfunction DataAPI.colmetadata(t::Table, col, key::AbstractString; style::Bool=false)\n    meta = getmetadata(t[col])[key]\n    return style ? (meta, :default) : meta\nend\n\nfunction DataAPI.colmetadata(t::Table, col, key::AbstractString, default; style::Bool=false)\n    meta = getmetadata(t[col])\n    if meta !== nothing\n        haskey(meta, key) && return style ? (meta[key], :default) : meta[key]\n    end\n    return style ? (default, :default) : default\nend\n\nfunction DataAPI.colmetadatakeys(t::Table, col)\n    meta = getmetadata(t[col])\n    meta === nothing && return ()\n    return keys(meta)\nend\n\nfunction DataAPI.colmetadatakeys(t::Table)\n    return (\n        col => DataAPI.colmetadatakeys(t, col) for\n        col in Tables.columnnames(t) if getmetadata(t[col]) !== nothing\n    )\nend\n\nTables.istable(::Table) = true\nTables.columnaccess(::Table) = true\nTables.columns(t::Table) = Tables.CopiedColumns(t)\nTables.schema(t::Table) = Tables.Schema(names(t), types(t))\nTables.columnnames(t::Table) = names(t)\nTables.getcolumn(t::Table, i::Int) = columns(t)[i]\nTables.getcolumn(t::Table, nm::Symbol) = lookup(t)[nm]\n\nstruct TablePartitions\n    table::Table\n    npartitions::Int\nend\n\nfunction TablePartitions(table::Table)\n    cols = columns(table)\n    npartitions = if length(cols) == 0\n        0\n    elseif cols[1] isa ChainedVector\n        length(cols[1].arrays)\n    else\n        1\n    end\n    return TablePartitions(table, npartitions)\nend\n\nfunction Base.iterate(tp::TablePartitions, i=1)\n    i > tp.npartitions && return nothing\n    tp.npartitions == 1 && return tp.table, i + 1\n    cols = columns(tp.table)\n    newcols = AbstractVector[cols[j].arrays[i] for j = 1:length(cols)]\n    nms = names(tp.table)\n    tbl = Table(\n        nms,\n        types(tp.table),\n        newcols,\n        Dict{Symbol,AbstractVector}(nms[i] => newcols[i] for i = 1:length(nms)),\n        schema(tp.table),\n    )\n    return tbl, i + 1\nend\n\nTables.partitions(t::Table) = TablePartitions(t)\n\n# high-level user API functions\nTable(input, pos::Integer=1, len=nothing; kw...) =\n    Table([ArrowBlob(tobytes(input), pos, len)]; kw...)\nTable(input::Vector{UInt8}, pos::Integer=1, len=nothing; kw...) =\n    Table([ArrowBlob(tobytes(input), pos, len)]; kw...)\nTable(inputs::Vector; kw...) =\n    Table([ArrowBlob(tobytes(x), 1, nothing) for x in inputs]; kw...)\n\n# will detect whether we're reading a Table from a file or stream\nfunction Table(blobs::Vector{ArrowBlob}; convert::Bool=true)\n    t = Table()\n    sch = nothing\n    dictencodingslockable = Lockable(Dict{Int64,DictEncoding}()) # dictionary id => DictEncoding\n    dictencoded = Dict{Int64,Meta.Field}() # dictionary id => field\n    # we'll grow/add a record batch set of columns as they're constructed\n    # must be holding the lock while growing/adding\n    # starts at 0-length because we don't know how many record batches there will be\n    rb_cols = []\n    rb_cols_lock = ReentrantLock()\n    rbi = 1\n    tasks = Task[]\n    for blob in blobs\n        for batch in BatchIterator(blob)\n            # store custom_metadata of batch.msg?\n            header = batch.msg.header\n            if header isa Meta.Schema\n                @debug \"parsing schema message\"\n                # assert endianness?\n                # store custom_metadata?\n                if sch === nothing\n                    for (i, field) in enumerate(header.fields)\n                        push!(names(t), Symbol(field.name))\n                        # recursively find any dictionaries for any fields\n                        getdictionaries!(dictencoded, field)\n                        @debug \"parsed column from schema: field = $field\"\n                    end\n                    sch = header\n                    schema(t)[] = sch\n                elseif sch != header\n                    throw(\n                        ArgumentError(\n                            \"mismatched schemas between different arrow batches: $sch != $header\",\n                        ),\n                    )\n                end\n            elseif header isa Meta.DictionaryBatch\n                id = header.id\n                recordbatch = header.data\n                @debug \"parsing dictionary batch message: id = $id, compression = $(recordbatch.compression)\"\n                @lock dictencodingslockable begin\n                    dictencodings = dictencodingslockable[]\n                    if haskey(dictencodings, id) && header.isDelta\n                        # delta\n                        field = dictencoded[id]\n                        values, _, _, _ = build(\n                            field,\n                            field.type,\n                            batch,\n                            recordbatch,\n                            dictencodingslockable,\n                            Int64(1),\n                            Int64(1),\n                            Int64(1),\n                            convert,\n                        )\n                        dictencoding = dictencodings[id]\n                        if typeof(dictencoding.data) <: ChainedVector\n                            append!(dictencoding.data, values)\n                        else\n                            A = ChainedVector([dictencoding.data, values])\n                            S =\n                                field.dictionary.indexType === nothing ? Int32 :\n                                juliaeltype(field, field.dictionary.indexType, false)\n                            dictencodings[id] = DictEncoding{eltype(A),S,typeof(A)}(\n                                id,\n                                A,\n                                field.dictionary.isOrdered,\n                                values.metadata,\n                            )\n                        end\n                        continue\n                    end\n                    # new dictencoding or replace\n                    field = dictencoded[id]\n                    values, _, _, _ = build(\n                        field,\n                        field.type,\n                        batch,\n                        recordbatch,\n                        dictencodingslockable,\n                        Int64(1),\n                        Int64(1),\n                        Int64(1),\n                        convert,\n                    )\n                    A = values\n                    S =\n                        field.dictionary.indexType === nothing ? Int32 :\n                        juliaeltype(field, field.dictionary.indexType, false)\n                    dictencodings[id] = DictEncoding{eltype(A),S,typeof(A)}(\n                        id,\n                        A,\n                        field.dictionary.isOrdered,\n                        values.metadata,\n                    )\n                end # lock\n                @debug \"parsed dictionary batch message: id=$id, data=$values\\n\"\n            elseif header isa Meta.RecordBatch\n                @debug \"parsing record batch message: compression = $(header.compression)\"\n                push!(\n                    tasks,\n                    collect_cols!(\n                        rbi,\n                        rb_cols_lock,\n                        rb_cols,\n                        sch,\n                        batch,\n                        dictencodingslockable,\n                        convert,\n                    ),\n                )\n                rbi += 1\n            else\n                throw(ArgumentError(\"unsupported arrow message type: $(typeof(header))\"))\n            end\n        end\n    end\n    _waitall(tasks)\n    lu = lookup(t)\n    ty = types(t)\n    # 158; some implementations may send 0 record batches\n    # no more multithreading, so no need to take the lock now\n    if length(rb_cols) == 0 && !isnothing(sch)\n        for field in sch.fields\n            T = juliaeltype(field, buildmetadata(field), convert)\n            push!(columns(t), T[])\n        end\n    end\n    if length(rb_cols) > 0\n        foreach(x -> push!(columns(t), x), rb_cols[1])\n    end\n    if length(rb_cols) > 1\n        foreach(enumerate(rb_cols[2])) do (i, x)\n            columns(t)[i] = ChainedVector([columns(t)[i], x])\n        end\n        foreach(3:length(rb_cols)) do j\n            foreach(enumerate(rb_cols[j])) do (i, x)\n                append!(columns(t)[i], x)\n            end\n        end\n    end\n    for (nm, col) in zip(names(t), columns(t))\n        lu[nm] = col\n        push!(ty, eltype(col))\n    end\n    getfield(t, :metadata)[] = buildmetadata(sch)\n    return t\nend\n\nfunction collect_cols!(\n    rbi,\n    rb_cols_lock,\n    rb_cols,\n    sch,\n    batch,\n    dictencodingslockable,\n    convert,\n)\n    @wkspawn begin\n        cols = collect(VectorIterator(sch, batch, dictencodingslockable, convert))\n        @lock rb_cols_lock begin\n            if length(rb_cols) < rbi\n                resize!(rb_cols, rbi)\n            end\n            rb_cols[rbi] = cols\n        end\n    end\nend\n\nfunction getdictionaries!(dictencoded, field)\n    d = field.dictionary\n    if d !== nothing\n        dictencoded[d.id] = field\n    end\n    if field.children !== nothing\n        for child in field.children\n            getdictionaries!(dictencoded, child)\n        end\n    end\n    return\nend\n\nstruct Batch\n    msg::Meta.Message\n    bytes::Vector{UInt8}\n    pos::Int\n    id::Int\nend\n\nfunction Base.iterate(x::BatchIterator, (pos, id)=(x.startpos, 0))\n    @debug \"checking for next arrow message: pos = $pos\"\n    if pos + 3 > length(x.bytes)\n        @debug \"not enough bytes left for another batch message\"\n        return nothing\n    end\n    if readbuffer(x.bytes, pos, UInt32) != CONTINUATION_INDICATOR_BYTES\n        @debug \"didn't find continuation byte to keep parsing messages: $(readbuffer(x.bytes, pos, UInt32))\"\n        return nothing\n    end\n    pos += 4\n    if pos + 3 > length(x.bytes)\n        @debug \"not enough bytes left to read length of another batch message\"\n        return nothing\n    end\n    msglen = readbuffer(x.bytes, pos, Int32)\n    if msglen == 0\n        @debug \"message has 0 length; terminating message parsing\"\n        return nothing\n    end\n    pos += 4\n    if pos + msglen - 1 > length(x.bytes)\n        @debug \"not enough bytes left to read Meta.Message\"\n        return nothing\n    end\n    msg = FlatBuffers.getrootas(Meta.Message, x.bytes, pos - 1)\n    pos += msglen\n    # pos now points to message body\n    @debug \"parsing message: pos = $pos, msglen = $msglen, bodyLength = $(msg.bodyLength)\"\n    if pos + msg.bodyLength - 1 > length(x.bytes)\n        @debug \"not enough bytes left to read message body\"\n        return nothing\n    end\n    return Batch(msg, x.bytes, pos, id), (pos + msg.bodyLength, id + 1)\nend\n\nstruct VectorIterator\n    schema::Meta.Schema\n    batch::Batch # batch.msg.header MUST BE RecordBatch\n    dictencodings::Lockable{Dict{Int64,DictEncoding}}\n    convert::Bool\nend\n\nbuildmetadata(f::Union{Meta.Field,Meta.Schema}) = buildmetadata(f.custom_metadata)\nbuildmetadata(meta) = toidict(String(kv.key) => String(kv.value) for kv in meta)\nbuildmetadata(::Nothing) = nothing\nbuildmetadata(x::AbstractDict) = x\n\nfunction Base.iterate(\n    x::VectorIterator,\n    (columnidx, nodeidx, bufferidx, varbufferidx)=(Int64(1), Int64(1), Int64(1), Int64(1)),\n)\n    columnidx > length(x.schema.fields) && return nothing\n    field = x.schema.fields[columnidx]\n    @debug \"building top-level column: field = $(field), columnidx = $columnidx, nodeidx = $nodeidx, bufferidx = $bufferidx, varbufferidx = $varbufferidx\"\n    A, nodeidx, bufferidx, varbufferidx = build(\n        field,\n        x.batch,\n        x.batch.msg.header,\n        x.dictencodings,\n        nodeidx,\n        bufferidx,\n        varbufferidx,\n        x.convert,\n    )\n    @debug \"built top-level column: A = $(typeof(A)), columnidx = $columnidx, nodeidx = $nodeidx, bufferidx = $bufferidx, varbufferidx = $varbufferidx\"\n    @debug A\n    return A, (columnidx + 1, nodeidx, bufferidx, varbufferidx)\nend\n\nBase.length(x::VectorIterator) = length(x.schema.fields)\n\nconst ListTypes =\n    Union{Meta.Utf8,Meta.LargeUtf8,Meta.Binary,Meta.LargeBinary,Meta.List,Meta.LargeList}\nconst LargeLists = Union{Meta.LargeUtf8,Meta.LargeBinary,Meta.LargeList,Meta.LargeListView}\nconst ViewTypes = Union{Meta.Utf8View,Meta.BinaryView,Meta.ListView,Meta.LargeListView}\n\nfunction build(field::Meta.Field, batch, rb, de, nodeidx, bufferidx, varbufferidx, convert)\n    d = field.dictionary\n    if d !== nothing\n        validity = buildbitmap(batch, rb, nodeidx, bufferidx)\n        bufferidx += 1\n        buffer = rb.buffers[bufferidx]\n        S = d.indexType === nothing ? Int32 : juliaeltype(field, d.indexType, false)\n        bytes, indices = reinterp(S, batch, buffer, rb.compression)\n        @lock de begin\n            encoding = de[][d.id]\n            A = DictEncoded(\n                bytes,\n                validity,\n                indices,\n                encoding,\n                buildmetadata(field.custom_metadata),\n            )\n        end\n        nodeidx += 1\n        bufferidx += 1\n    else\n        A, nodeidx, bufferidx, varbufferidx = build(\n            field,\n            field.type,\n            batch,\n            rb,\n            de,\n            nodeidx,\n            bufferidx,\n            varbufferidx,\n            convert,\n        )\n    end\n    return A, nodeidx, bufferidx, varbufferidx\nend\n\nfunction buildbitmap(batch, rb, nodeidx, bufferidx)\n    buffer = rb.buffers[bufferidx]\n    voff = batch.pos + buffer.offset\n    node = rb.nodes[nodeidx]\n    if rb.compression === nothing\n        return ValidityBitmap(batch.bytes, voff, node.length, node.null_count)\n    else\n        # compressed\n        ptr = pointer(batch.bytes, voff)\n        _, decodedbytes = uncompress(ptr, buffer, rb.compression)\n        return ValidityBitmap(decodedbytes, 1, node.length, node.null_count)\n    end\nend\n\nfunction uncompress(ptr::Ptr{UInt8}, buffer, compression)\n    buffer.length == 0 && return 0, UInt8[]\n    len = unsafe_load(convert(Ptr{Int64}, ptr))\n    len == 0 && return 0, UInt8[]\n    ptr += 8 # skip past uncompressed length as Int64\n    encodedbytes = unsafe_wrap(Array, ptr, buffer.length - 8)\n    if len == -1\n        # len = -1 means data is not compressed\n        # it's unclear why other language implementations allow this\n        # but we support to be able to read data produced as such\n        return length(encodedbytes), copy(encodedbytes)\n    end\n    decodedbytes = Vector{UInt8}(undef, len)\n    if compression.codec === Meta.CompressionType.LZ4_FRAME\n        comp = lz4_frame_decompressor()\n        Base.@lock comp begin\n            transcode(comp[], encodedbytes, decodedbytes)\n        end\n    elseif compression.codec === Meta.CompressionType.ZSTD\n        comp = zstd_decompressor()\n        Base.@lock comp begin\n            transcode(comp[], encodedbytes, decodedbytes)\n        end\n    else\n        error(\n            \"unsupported compression type when reading arrow buffers: $(typeof(compression.codec))\",\n        )\n    end\n    return len, decodedbytes\nend\n\nfunction reinterp(::Type{T}, batch, buf, compression) where {T}\n    ptr = pointer(batch.bytes, batch.pos + buf.offset)\n    bytes = batch.bytes\n    len = buf.length\n    if compression !== nothing\n        len, bytes = uncompress(ptr, buf, compression)\n        ptr = pointer(bytes)\n    end\n    # it would be technically more correct to check that T.layout->alignment > 8\n    # but the datatype alignment isn't officially exported, so we're using\n    # primitive types w/ sizeof(T) >= 16 as a proxy for types that need 16-byte alignment\n    if sizeof(T) >= 16 && (UInt(ptr) & 15) != 0\n        # https://github.com/apache/arrow-julia/issues/345\n        # https://github.com/JuliaLang/julia/issues/42326\n        # need to ensure that the data/pointers are aligned to 16 bytes\n        # so we can't use unsafe_wrap here, but do an extra allocation\n        # to avoid the allocation, user needs to ensure input buffer is\n        # 16-byte aligned (somehow, it's not super straightforward how to ensure that)\n        A = Vector{T}(undef, div(len, sizeof(T)))\n        unsafe_copyto!(Ptr{UInt8}(pointer(A)), ptr, len)\n        return bytes, A\n    else\n        return bytes, unsafe_wrap(Array, convert(Ptr{T}, ptr), div(len, sizeof(T)))\n    end\nend\n\nconst SubVector{T,P} = SubArray{T,1,P,Tuple{UnitRange{Int64}},true}\n\nfunction build(\n    f::Meta.Field,\n    L::ListTypes,\n    batch,\n    rb,\n    de,\n    nodeidx,\n    bufferidx,\n    varbufferidx,\n    convert,\n)\n    @debug \"building array: L = $L\"\n    validity = buildbitmap(batch, rb, nodeidx, bufferidx)\n    bufferidx += 1\n    buffer = rb.buffers[bufferidx]\n    ooff = batch.pos + buffer.offset\n    OT = L isa LargeLists ? Int64 : Int32\n    bytes, offs = reinterp(OT, batch, buffer, rb.compression)\n    offsets = Offsets(bytes, offs)\n    bufferidx += 1\n    len = rb.nodes[nodeidx].length\n    nodeidx += 1\n    meta = buildmetadata(f.custom_metadata)\n    T = juliaeltype(f, meta, convert)\n    if L isa Meta.Utf8 ||\n       L isa Meta.Utf8View ||\n       L isa Meta.LargeUtf8 ||\n       L isa Meta.Binary ||\n       L isa Meta.BinaryView ||\n       L isa Meta.LargeBinary\n        buffer = rb.buffers[bufferidx]\n        bytes, A = reinterp(UInt8, batch, buffer, rb.compression)\n        bufferidx += 1\n    else\n        bytes = UInt8[]\n        A, nodeidx, bufferidx, varbufferidx =\n            build(f.children[1], batch, rb, de, nodeidx, bufferidx, varbufferidx, convert)\n        # juliaeltype returns Vector for List, translate to SubArray\n        S = Base.nonmissingtype(T)\n        if S <: Vector\n            ST = SubVector{eltype(A),typeof(A)}\n            T = S == T ? ST : Union{Missing,ST}\n        end\n    end\n    return List{T,OT,typeof(A)}(bytes, validity, offsets, A, len, meta),\n    nodeidx,\n    bufferidx,\n    varbufferidx\nend\n\nfunction build(\n    f::Meta.Field,\n    L::ViewTypes,\n    batch,\n    rb,\n    de,\n    nodeidx,\n    bufferidx,\n    varbufferidx,\n    convert,\n)\n    @debug \"building array: L = $L\"\n    validity = buildbitmap(batch, rb, nodeidx, bufferidx)\n    bufferidx += 1\n    buffer = rb.buffers[bufferidx]\n    _, views = reinterp(ViewElement, batch, buffer, rb.compression)\n    inline = reinterpret(UInt8, views)  # reuse the (possibly realigned) memory backing `views`\n    bufferidx += 1\n    buffers = Vector{UInt8}[]\n    for i = 1:rb.variadicBufferCounts[varbufferidx]\n        buffer = rb.buffers[bufferidx]\n        _, A = reinterp(UInt8, batch, buffer, rb.compression)\n        push!(buffers, A)\n        bufferidx += 1\n    end\n    varbufferidx += 1\n    len = rb.nodes[nodeidx].length\n    nodeidx += 1\n    meta = buildmetadata(f.custom_metadata)\n    T = juliaeltype(f, meta, convert)\n    return View{T}(batch.bytes, validity, views, inline, buffers, len, meta),\n    nodeidx,\n    bufferidx,\n    varbufferidx\nend\n\nfunction build(\n    f::Meta.Field,\n    L::Union{Meta.FixedSizeBinary,Meta.FixedSizeList},\n    batch,\n    rb,\n    de,\n    nodeidx,\n    bufferidx,\n    varbufferidx,\n    convert,\n)\n    @debug \"building array: L = $L\"\n    validity = buildbitmap(batch, rb, nodeidx, bufferidx)\n    bufferidx += 1\n    len = rb.nodes[nodeidx].length\n    nodeidx += 1\n    if L isa Meta.FixedSizeBinary\n        buffer = rb.buffers[bufferidx]\n        bytes, A = reinterp(UInt8, batch, buffer, rb.compression)\n        bufferidx += 1\n    else\n        bytes = UInt8[]\n        A, nodeidx, bufferidx, varbufferidx =\n            build(f.children[1], batch, rb, de, nodeidx, bufferidx, varbufferidx, convert)\n    end\n    meta = buildmetadata(f.custom_metadata)\n    T = juliaeltype(f, meta, convert)\n    return FixedSizeList{T,typeof(A)}(bytes, validity, A, len, meta),\n    nodeidx,\n    bufferidx,\n    varbufferidx\nend\n\nfunction build(\n    f::Meta.Field,\n    L::Meta.Map,\n    batch,\n    rb,\n    de,\n    nodeidx,\n    bufferidx,\n    varbufferidx,\n    convert,\n)\n    @debug \"building array: L = $L\"\n    validity = buildbitmap(batch, rb, nodeidx, bufferidx)\n    bufferidx += 1\n    buffer = rb.buffers[bufferidx]\n    ooff = batch.pos + buffer.offset\n    OT = Int32\n    bytes, offs = reinterp(OT, batch, buffer, rb.compression)\n    offsets = Offsets(bytes, offs)\n    bufferidx += 1\n    len = rb.nodes[nodeidx].length\n    nodeidx += 1\n    A, nodeidx, bufferidx, varbufferidx =\n        build(f.children[1], batch, rb, de, nodeidx, bufferidx, varbufferidx, convert)\n    meta = buildmetadata(f.custom_metadata)\n    T = juliaeltype(f, meta, convert)\n    return Map{T,OT,typeof(A)}(validity, offsets, A, len, meta),\n    nodeidx,\n    bufferidx,\n    varbufferidx\nend\n\nfunction build(\n    f::Meta.Field,\n    L::Meta.Struct,\n    batch,\n    rb,\n    de,\n    nodeidx,\n    bufferidx,\n    varbufferidx,\n    convert,\n)\n    @debug \"building array: L = $L\"\n    validity = buildbitmap(batch, rb, nodeidx, bufferidx)\n    bufferidx += 1\n    len = rb.nodes[nodeidx].length\n    vecs = []\n    nodeidx += 1\n    for child in f.children\n        A, nodeidx, bufferidx, varbufferidx =\n            build(child, batch, rb, de, nodeidx, bufferidx, varbufferidx, convert)\n        push!(vecs, A)\n    end\n    data = Tuple(vecs)\n    meta = buildmetadata(f.custom_metadata)\n    T = juliaeltype(f, meta, convert)\n    fnames = ntuple(i -> Symbol(f.children[i].name), length(f.children))\n    return Struct{T,typeof(data),fnames}(validity, data, len, meta),\n    nodeidx,\n    bufferidx,\n    varbufferidx\nend\n\nfunction build(\n    f::Meta.Field,\n    L::Meta.Union,\n    batch,\n    rb,\n    de,\n    nodeidx,\n    bufferidx,\n    varbufferidx,\n    convert,\n)\n    @debug \"building array: L = $L\"\n    buffer = rb.buffers[bufferidx]\n    bytes, typeIds = reinterp(UInt8, batch, buffer, rb.compression)\n    bufferidx += 1\n    if L.mode == Meta.UnionMode.Dense\n        buffer = rb.buffers[bufferidx]\n        bytes2, offsets = reinterp(Int32, batch, buffer, rb.compression)\n        bufferidx += 1\n    end\n    vecs = []\n    nodeidx += 1\n    for child in f.children\n        A, nodeidx, bufferidx, varbufferidx =\n            build(child, batch, rb, de, nodeidx, bufferidx, varbufferidx, convert)\n        push!(vecs, A)\n    end\n    data = Tuple(vecs)\n    meta = buildmetadata(f.custom_metadata)\n    T = juliaeltype(f, meta, convert)\n    UT = UnionT(f, convert)\n    if L.mode == Meta.UnionMode.Dense\n        B = DenseUnion{T,UT,typeof(data)}(bytes, bytes2, typeIds, offsets, data, meta)\n    else\n        B = SparseUnion{T,UT,typeof(data)}(bytes, typeIds, data, meta)\n    end\n    return B, nodeidx, bufferidx, varbufferidx\nend\n\nfunction build(\n    f::Meta.Field,\n    L::Meta.Null,\n    batch,\n    rb,\n    de,\n    nodeidx,\n    bufferidx,\n    varbufferidx,\n    convert,\n)\n    @debug \"building array: L = $L\"\n    meta = buildmetadata(f.custom_metadata)\n    T = juliaeltype(f, meta, convert)\n    return NullVector{maybemissing(T)}(MissingVector(rb.nodes[nodeidx].length), meta),\n    nodeidx + 1,\n    bufferidx,\n    varbufferidx\nend\n\n# primitives\nfunction build(\n    f::Meta.Field,\n    ::L,\n    batch,\n    rb,\n    de,\n    nodeidx,\n    bufferidx,\n    varbufferidx,\n    convert,\n) where {L}\n    @debug \"building array: L = $L\"\n    validity = buildbitmap(batch, rb, nodeidx, bufferidx)\n    bufferidx += 1\n    buffer = rb.buffers[bufferidx]\n    meta = buildmetadata(f.custom_metadata)\n    # get storage type (non-converted)\n    T = juliaeltype(f, nothing, false)\n    @debug \"storage type for primitive: T = $T\"\n    bytes, A = reinterp(Base.nonmissingtype(T), batch, buffer, rb.compression)\n    len = rb.nodes[nodeidx].length\n    T = juliaeltype(f, meta, convert)\n    @debug \"final julia type for primitive: T = $T\"\n    return Primitive(T, bytes, validity, A, len, meta),\n    nodeidx + 1,\n    bufferidx + 1,\n    varbufferidx\nend\n\nfunction build(\n    f::Meta.Field,\n    L::Meta.Bool,\n    batch,\n    rb,\n    de,\n    nodeidx,\n    bufferidx,\n    varbufferidx,\n    convert,\n)\n    @debug \"building array: L = $L\"\n    validity = buildbitmap(batch, rb, nodeidx, bufferidx)\n    bufferidx += 1\n    buffer = rb.buffers[bufferidx]\n    meta = buildmetadata(f.custom_metadata)\n    # get storage type (non-converted)\n    T = juliaeltype(f, nothing, false)\n    @debug \"storage type for primitive: T = $T\"\n    buffer = rb.buffers[bufferidx]\n    voff = batch.pos + buffer.offset\n    node = rb.nodes[nodeidx]\n    if rb.compression === nothing\n        decodedbytes = batch.bytes\n        pos = voff\n        # return ValidityBitmap(batch.bytes, voff, node.length, node.null_count)\n    else\n        # compressed\n        ptr = pointer(batch.bytes, voff)\n        _, decodedbytes = uncompress(ptr, buffer, rb.compression)\n        pos = 1\n        # return ValidityBitmap(decodedbytes, 1, node.length, node.null_count)\n    end\n    len = rb.nodes[nodeidx].length\n    T = juliaeltype(f, meta, convert)\n    return BoolVector{T}(decodedbytes, pos, validity, len, meta),\n    nodeidx + 1,\n    bufferidx + 1,\n    varbufferidx\nend\n"
  },
  {
    "path": "src/utils.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n# Determines the total number of bytes needed to store `n` bytes with padding.\n# Note that the Arrow standard requires buffers to be aligned to 8-byte boundaries.\npadding(n::Integer, alignment) = ((n + alignment - 1) ÷ alignment) * alignment\n\npaddinglength(n::Integer, alignment) = padding(n, alignment) - n\n\nfunction writezeros(io::IO, n::Integer)\n    s = 0\n    for i ∈ 1:n\n        s += Base.write(io, 0x00)\n    end\n    s\nend\n\nif isdefined(Base, :waitall)\n    const _waitall = waitall\nelse\n    _waitall(tasks) = foreach(wait, tasks)\nend\n\n# efficient writing of arrays\nwritearray(io, col) = writearray(io, maybemissing(eltype(col)), col)\n\nfunction writearray(io::IO, ::Type{T}, col) where {T}\n    if col isa Vector{T}\n        n = Base.write(io, col)\n    elseif isbitstype(T) && (\n        col isa Vector{Union{T,Missing}} || col isa SentinelVector{T,T,Missing,Vector{T}}\n    )\n        # need to write the non-selector bytes of isbits Union Arrays\n        n = Base.unsafe_write(io, pointer(col), sizeof(T) * length(col))\n    elseif col isa ChainedVector\n        n = 0\n        for A in col.arrays\n            n += writearray(io, T, A)\n        end\n    else\n        n = 0\n        data = Vector{UInt8}(undef, sizeof(col))\n        buf = IOBuffer(data; write=true)\n        for x in col\n            n += Base.write(buf, coalesce(x, ArrowTypes.default(T)))\n        end\n        n = Base.write(io, take!(buf))\n    end\n    return n\nend\n\ngetbit(v::UInt8, n::Integer) = (v & (1 << (n - 1))) > 0x00\n\nfunction setbit(v::UInt8, b::Bool, n::Integer)\n    if b\n        v | 0x02^(n - 1)\n    else\n        v & (0xff ⊻ 0x02^(n - 1))\n    end\nend\n\n# Determines the number of bytes used by `n` bits, optionally with padding.\nfunction bitpackedbytes(n::Integer, alignment)\n    ℓ = cld(n, 8)\n    return ℓ + paddinglength(ℓ, alignment)\nend\n\n# count # of missing elements in an iterable\nnullcount(col) = count(ismissing, col)\n\n# like startswith for strings, but on byte buffers\nfunction _startswith(a::AbstractVector{UInt8}, pos::Integer, b::AbstractVector{UInt8})\n    for i = 1:length(b)\n        @inbounds check = a[pos + i - 1] == b[i]\n        check || return false\n    end\n    return true\nend\n\n# read a single element from a byte vector\n# copied from read(::IOBuffer, T) in Base\nfunction readbuffer(t::AbstractVector{UInt8}, pos::Integer, ::Type{T}) where {T}\n    GC.@preserve t begin\n        ptr::Ptr{T} = pointer(t, pos)\n        x = unsafe_load(ptr)\n    end\nend\n\n# given a number of unique values; what dict encoding _index_ type is most appropriate\nencodingtype(n) =\n    n < div(typemax(Int8), 2) ? Int8 :\n    n < div(typemax(Int16), 2) ? Int16 : n < div(typemax(Int32), 2) ? Int32 : Int64\n\nmaybemissing(::Type{T}) where {T} = T === Missing ? Missing : Base.nonmissingtype(T)\nwithmissing(U::Union, S) = U >: Missing ? Union{Missing,S} : S\nwithmissing(T, S) = T === Missing ? Union{Missing,S} : S\n\nfunction getfooter(filebytes)\n    len = readbuffer(filebytes, length(filebytes) - 9, Int32)\n    FlatBuffers.getrootas(Meta.Footer, filebytes[(end - (9 + len)):(end - 10)], 0)\nend\n\nfunction getrb(filebytes)\n    f = getfooter(filebytes)\n    rb = f.recordBatches[1]\n    return filebytes[(rb.offset + 1):(rb.offset + 1 + rb.metaDataLength)]\n    # FlatBuffers.getrootas(Meta.Message, filebytes, rb.offset)\nend\n\nfunction readmessage(filebytes, off=9)\n    @assert readbuffer(filebytes, off, UInt32) === 0xFFFFFFFF\n    len = readbuffer(filebytes, off + 4, Int32)\n\n    FlatBuffers.getrootas(Meta.Message, filebytes, off + 8)\nend\n\nfunction tobuffer(data; kwargs...)\n    io = IOBuffer()\n    write(io, data; kwargs...)\n    seekstart(io)\n    return io\nend\n\ntoidict(x::Base.ImmutableDict) = x\n\n# ref https://github.com/apache/arrow-julia/pull/238#issuecomment-919415809\nfunction toidict(pairs)\n    isempty(pairs) && return Base.ImmutableDict{String,String}()\n    dict = Base.ImmutableDict(first(pairs))\n    for pair in Iterators.drop(pairs, 1)\n        dict = Base.ImmutableDict(dict, pair)\n    end\n    return dict\nend\n"
  },
  {
    "path": "src/write.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nconst DEFAULT_MAX_DEPTH = 6\n\n\"\"\"\n    Arrow.write(io::IO, tbl)\n    Arrow.write(file::String, tbl)\n    tbl |> Arrow.write(io_or_file)\n\nWrite any [Tables.jl](https://github.com/JuliaData/Tables.jl)-compatible `tbl` out as arrow formatted data.\nProviding an `io::IO` argument will cause the data to be written to it\nin the [\"streaming\" format](https://arrow.apache.org/docs/format/Columnar.html#ipc-streaming-format), unless `file=true` keyword argument is passed.\nProviding a `file::String` argument will result in the [\"file\" format](https://arrow.apache.org/docs/format/Columnar.html#ipc-file-format) being written.\n\nMultiple record batches will be written based on the number of\n`Tables.partitions(tbl)` that are provided; by default, this is just\none for a given table, but some table sources support automatic\npartitioning. Note you can turn multiple table objects into partitions\nby doing `Tables.partitioner([tbl1, tbl2, ...])`, but note that\neach table must have the exact same `Tables.Schema`.\n\nBy default, `Arrow.write` will use multiple threads to write multiple\nrecord batches simultaneously (e.g. if julia is started with `julia -t 8` or the `JULIA_NUM_THREADS` environment variable is set).\n\nSupported keyword arguments to `Arrow.write` include:\n  * `colmetadata=nothing`: the metadata that should be written as the table's columns' `custom_metadata` fields; must either be `nothing` or an `AbstractDict` of `column_name::Symbol => column_metadata` where `column_metadata` is an iterable of `<:AbstractString` pairs.\n  * `compress`: possible values include `:lz4`, `:zstd`, or your own initialized `LZ4FrameCompressor` or `ZstdCompressor` objects; will cause all buffers in each record batch to use the respective compression encoding\n  * `alignment::Int=8`: specify the number of bytes to align buffers to when written in messages; strongly recommended to only use alignment values of 8 or 64 for modern memory cache line optimization\n  * `dictencode::Bool=false`: whether all columns should use dictionary encoding when being written; to dict encode specific columns, wrap the column/array in `Arrow.DictEncode(col)`\n  * `dictencodenested::Bool=false`: whether nested data type columns should also dict encode nested arrays/buffers; other language implementations [may not support this](https://arrow.apache.org/docs/status.html)\n  * `denseunions::Bool=true`: whether Julia `Vector{<:Union}` arrays should be written using the dense union layout; passing `false` will result in the sparse union layout\n  * `largelists::Bool=false`: causes list column types to be written with Int64 offset arrays; mainly for testing purposes; by default, Int64 offsets will be used only if needed\n  * `maxdepth::Int=$DEFAULT_MAX_DEPTH`: deepest allowed nested serialization level; this is provided by default to prevent accidental infinite recursion with mutually recursive data structures\n  * `metadata=Arrow.getmetadata(tbl)`: the metadata that should be written as the table's schema's `custom_metadata` field; must either be `nothing` or an iterable of `<:AbstractString` pairs.\n  * `ntasks::Int`: number of buffered threaded tasks to allow while writing input partitions out as arrow record batches; default is no limit; for unbuffered writing, pass `ntasks=0`\n  * `file::Bool=false`: if a an `io` argument is being written to, passing `file=true` will cause the arrow file format to be written instead of just IPC streaming\n\"\"\"\nfunction write end\n\nwrite(io_or_file; kw...) = x -> write(io_or_file, x; kw...)\n\nfunction write(file_path, tbl; kwargs...)\n    open(Writer, file_path; file=true, kwargs...) do writer\n        write(writer, tbl)\n    end\n    file_path\nend\n\nstruct Message\n    msgflatbuf::Any\n    columns::Any\n    bodylen::Any\n    isrecordbatch::Bool\n    blockmsg::Bool\n    headerType::Any\nend\n\nstruct Block\n    offset::Int64\n    metaDataLength::Int32\n    bodyLength::Int64\nend\n\n\"\"\"\n    Arrow.Writer{T<:IO}\n\nAn object that can be used to incrementally write Arrow partitions\n\n# Examples\n```julia\njulia> writer = open(Arrow.Writer, tempname())\n\njulia> partition1 = (col1 = [1, 2], col2 = [\"A\", \"B\"])\n(col1 = [1, 2], col2 = [\"A\", \"B\"])\n\njulia> Arrow.write(writer, partition1)\n\njulia> partition2 = (col1 = [3, 4], col2 = [\"C\", \"D\"])\n(col1 = [3, 4], col2 = [\"C\", \"D\"])\n\njulia> Arrow.write(writer, partition2)\n\njulia> close(writer)\n```\n\nIt's also possible to automatically close the Writer using a do-block:\n\n```julia\njulia> open(Arrow.Writer, tempname()) do writer\n           partition1 = (col1 = [1, 2], col2 = [\"A\", \"B\"])\n           Arrow.write(writer, partition1)\n           partition2 = (col1 = [3, 4], col2 = [\"C\", \"D\"])\n           Arrow.write(writer, partition2)\n       end\n```\n\"\"\"\nmutable struct Writer{T<:IO}\n    io::T\n    closeio::Bool\n    compress::Union{Nothing,Symbol,LZ4FrameCompressor,ZstdCompressor}\n    writetofile::Bool\n    largelists::Bool\n    denseunions::Bool\n    dictencode::Bool\n    dictencodenested::Bool\n    threaded::Bool\n    alignment::Int32\n    maxdepth::Int64\n    meta::Union{Nothing,Base.ImmutableDict{String,String}}\n    colmeta::Union{Nothing,Base.ImmutableDict{Symbol,Base.ImmutableDict{String,String}}}\n    sync::OrderedSynchronizer\n    msgs::Channel{Message}\n    schema::Ref{Tables.Schema}\n    firstcols::Ref{Any}\n    dictencodings::Dict{Int64,Any}\n    blocks::NTuple{2,Vector{Block}}\n    task::Task\n    anyerror::Threads.Atomic{Bool}\n    errorref::Ref{Any}\n    partition_count::Int32\n    isclosed::Bool\nend\n\nfunction Base.open(\n    ::Type{Writer},\n    io::T,\n    compress::Union{Nothing,Symbol,LZ4FrameCompressor,ZstdCompressor},\n    writetofile::Bool,\n    largelists::Bool,\n    denseunions::Bool,\n    dictencode::Bool,\n    dictencodenested::Bool,\n    alignment::Integer,\n    maxdepth::Integer,\n    ntasks::Integer,\n    meta::Union{Nothing,Any},\n    colmeta::Union{Nothing,Any},\n    closeio::Bool,\n) where {T<:IO}\n    if compress isa Symbol && compress !== :lz4 && compress !== :zstd\n        throw(\n            ArgumentError(\n                \"unsupported compress keyword argument value: $compress. Valid values include `:lz4` or `:zstd`\",\n            ),\n        )\n    end\n    sync = OrderedSynchronizer(2)\n    msgs = Channel{Message}(ntasks)\n    schema = Ref{Tables.Schema}()\n    firstcols = Ref{Any}()\n    dictencodings = Dict{Int64,Any}() # Lockable{DictEncoding}\n    blocks = (Block[], Block[])\n    # start message writing from channel\n    threaded = Threads.nthreads() > 1\n    task =\n        threaded ? (@wkspawn for msg in msgs\n            Base.write(io, msg, blocks, schema, alignment)\n        end) : (@async for msg in msgs\n            Base.write(io, msg, blocks, schema, alignment)\n        end)\n    anyerror = Threads.Atomic{Bool}(false)\n    errorref = Ref{Any}()\n    meta = _normalizemeta(meta)\n    colmeta = _normalizecolmeta(colmeta)\n    return Writer{T}(\n        io,\n        closeio,\n        compress,\n        writetofile,\n        largelists,\n        denseunions,\n        dictencode,\n        dictencodenested,\n        threaded,\n        alignment,\n        maxdepth,\n        meta,\n        colmeta,\n        sync,\n        msgs,\n        schema,\n        firstcols,\n        dictencodings,\n        blocks,\n        task,\n        anyerror,\n        errorref,\n        1,\n        false,\n    )\nend\n\nfunction Base.open(\n    ::Type{Writer},\n    io::IO;\n    compress::Union{Nothing,Symbol,LZ4FrameCompressor,ZstdCompressor}=nothing,\n    file::Bool=true,\n    largelists::Bool=false,\n    denseunions::Bool=true,\n    dictencode::Bool=false,\n    dictencodenested::Bool=false,\n    alignment::Integer=8,\n    maxdepth::Integer=DEFAULT_MAX_DEPTH,\n    ntasks::Integer=typemax(Int32),\n    metadata::Union{Nothing,Any}=nothing,\n    colmetadata::Union{Nothing,Any}=nothing,\n    closeio::Bool=false,\n)\n    open(\n        Writer,\n        io,\n        compress,\n        file,\n        largelists,\n        denseunions,\n        dictencode,\n        dictencodenested,\n        alignment,\n        maxdepth,\n        ntasks,\n        metadata,\n        colmetadata,\n        closeio,\n    )\nend\n\nBase.open(::Type{Writer}, file_path; kwargs...) =\n    open(Writer, open(file_path, \"w\"); kwargs..., closeio=true)\n\nfunction check_errors(writer::Writer)\n    if writer.anyerror[]\n        errorref = writer.errorref[]\n        @error \"error writing arrow data on partition = $(errorref[3])\" exception =\n            (errorref[1], errorref[2])\n        error(\"fatal error writing arrow data\")\n    end\nend\n\nfunction write(writer::Writer, source)\n    @sync for tbl in Tables.partitions(source)\n        check_errors(writer)\n        @debug \"processing table partition $(writer.partition_count)\"\n        tblcols = Tables.columns(tbl)\n        if !isassigned(writer.firstcols)\n            if writer.writetofile\n                @debug \"starting write of arrow formatted file\"\n                Base.write(writer.io, FILE_FORMAT_MAGIC_BYTES, b\"\\0\\0\")\n            end\n            meta = isnothing(writer.meta) ? getmetadata(source) : writer.meta\n            cols = toarrowtable(\n                tblcols,\n                writer.dictencodings,\n                writer.largelists,\n                writer.compress,\n                writer.denseunions,\n                writer.dictencode,\n                writer.dictencodenested,\n                writer.maxdepth,\n                meta,\n                writer.colmeta,\n            )\n            writer.schema[] = Tables.schema(cols)\n            writer.firstcols[] = cols\n            put!(writer.msgs, makeschemamsg(writer.schema[], cols))\n            if !isempty(writer.dictencodings)\n                des = sort!(collect(writer.dictencodings); by=x -> x.first, rev=true)\n                for (id, delock) in des\n                    # assign dict encoding ids\n                    de = delock.value\n                    dictsch = Tables.Schema((:col,), (eltype(de.data),))\n                    dictbatchmsg = makedictionarybatchmsg(\n                        dictsch,\n                        (col=de.data,),\n                        id,\n                        false,\n                        writer.alignment,\n                    )\n                    put!(writer.msgs, dictbatchmsg)\n                end\n            end\n            recbatchmsg = makerecordbatchmsg(writer.schema[], cols, writer.alignment)\n            put!(writer.msgs, recbatchmsg)\n        else\n            # XXX There is a race condition in the processing of dict encodings\n            # so we disable multithreaded writing until that can be addressed. See #582\n            # if writer.threaded\n            #     @wkspawn process_partition(\n            #         tblcols,\n            #         writer.dictencodings,\n            #         writer.largelists,\n            #         writer.compress,\n            #         writer.denseunions,\n            #         writer.dictencode,\n            #         writer.dictencodenested,\n            #         writer.maxdepth,\n            #         writer.sync,\n            #         writer.msgs,\n            #         writer.alignment,\n            #         $(writer.partition_count),\n            #         writer.schema,\n            #         writer.errorref,\n            #         writer.anyerror,\n            #         writer.meta,\n            #         writer.colmeta,\n            #     )\n            # else\n            @async process_partition(\n                tblcols,\n                writer.dictencodings,\n                writer.largelists,\n                writer.compress,\n                writer.denseunions,\n                writer.dictencode,\n                writer.dictencodenested,\n                writer.maxdepth,\n                writer.sync,\n                writer.msgs,\n                writer.alignment,\n                $(writer.partition_count),\n                writer.schema,\n                writer.errorref,\n                writer.anyerror,\n                writer.meta,\n                writer.colmeta,\n            )\n            # end\n        end\n        writer.partition_count += 1\n    end\n    check_errors(writer)\n    return\nend\n\nfunction Base.close(writer::Writer)\n    writer.isclosed && return\n    # close our message-writing channel, no further put!-ing is allowed\n    close(writer.msgs)\n    # now wait for our message-writing task to finish writing\n    !istaskfailed(writer.task) && wait(writer.task)\n    if (!isassigned(writer.schema) || !isassigned(writer.firstcols))\n        writer.closeio && close(writer.io)\n        writer.isclosed = true\n        return\n    end\n    # write empty message\n    if !writer.writetofile\n        msg = Message(UInt8[], nothing, 0, true, false, Meta.Schema)\n        Base.write(writer.io, msg, writer.blocks, writer.schema, writer.alignment)\n        writer.closeio && close(writer.io)\n        writer.isclosed = true\n        return\n    end\n    b = FlatBuffers.Builder(1024)\n    schfoot = makeschema(b, writer.schema[], writer.firstcols[])\n    recordbatches = if !isempty(writer.blocks[1])\n        N = length(writer.blocks[1])\n        Meta.footerStartRecordBatchesVector(b, N)\n        for blk in Iterators.reverse(writer.blocks[1])\n            Meta.createBlock(b, blk.offset, blk.metaDataLength, blk.bodyLength)\n        end\n        FlatBuffers.endvector!(b, N)\n    else\n        FlatBuffers.UOffsetT(0)\n    end\n    dicts = if !isempty(writer.blocks[2])\n        N = length(writer.blocks[2])\n        Meta.footerStartDictionariesVector(b, N)\n        for blk in Iterators.reverse(writer.blocks[2])\n            Meta.createBlock(b, blk.offset, blk.metaDataLength, blk.bodyLength)\n        end\n        FlatBuffers.endvector!(b, N)\n    else\n        FlatBuffers.UOffsetT(0)\n    end\n    Meta.footerStart(b)\n    Meta.footerAddVersion(b, Meta.MetadataVersion.V5)\n    Meta.footerAddSchema(b, schfoot)\n    Meta.footerAddDictionaries(b, dicts)\n    Meta.footerAddRecordBatches(b, recordbatches)\n    foot = Meta.footerEnd(b)\n    FlatBuffers.finish!(b, foot)\n    footer = FlatBuffers.finishedbytes(b)\n    Base.write(writer.io, footer)\n    Base.write(writer.io, Int32(length(footer)))\n    Base.write(writer.io, \"ARROW1\")\n    writer.closeio && close(writer.io)\n    writer.isclosed = true\n    nothing\nend\n\nfunction write(io::IO, tbl; kwargs...)\n    open(Writer, io; file=false, kwargs...) do writer\n        write(writer, tbl)\n    end\n    io\nend\n\nfunction write(\n    io,\n    source,\n    writetofile,\n    largelists,\n    compress,\n    denseunions,\n    dictencode,\n    dictencodenested,\n    alignment,\n    maxdepth,\n    ntasks,\n    meta,\n    colmeta,\n)\n    open(\n        Writer,\n        io,\n        compress,\n        writetofile,\n        largelists,\n        denseunions,\n        dictencode,\n        dictencodenested,\n        alignment,\n        maxdepth,\n        ntasks,\n        meta,\n        colmeta,\n    ) do writer\n        write(writer, source)\n    end\n    io\nend\n\nfunction process_partition(\n    cols,\n    dictencodings,\n    largelists,\n    compress,\n    denseunions,\n    dictencode,\n    dictencodenested,\n    maxdepth,\n    sync,\n    msgs,\n    alignment,\n    i,\n    sch,\n    errorref,\n    anyerror,\n    meta,\n    colmeta,\n)\n    try\n        cols = toarrowtable(\n            cols,\n            dictencodings,\n            largelists,\n            compress,\n            denseunions,\n            dictencode,\n            dictencodenested,\n            maxdepth,\n            meta,\n            colmeta,\n        )\n        dictmsgs = nothing\n        if !isempty(cols.dictencodingdeltas)\n            dictmsgs = []\n            for de in cols.dictencodingdeltas\n                dictsch = Tables.Schema((:col,), (eltype(de.data),))\n                push!(\n                    dictmsgs,\n                    makedictionarybatchmsg(dictsch, (col=de.data,), de.id, true, alignment),\n                )\n            end\n        end\n        put!(sync, i) do\n            if !isnothing(dictmsgs)\n                foreach(msg -> put!(msgs, msg), dictmsgs)\n            end\n            put!(msgs, makerecordbatchmsg(sch[], cols, alignment))\n        end\n    catch e\n        errorref[] = (e, catch_backtrace(), i)\n        anyerror[] = true\n    end\n    return\nend\n\nstruct ToArrowTable\n    sch::Tables.Schema\n    cols::Vector{Any}\n    metadata::Union{Nothing,Base.ImmutableDict{String,String}}\n    dictencodingdeltas::Vector{DictEncoding}\nend\n\nfunction toarrowtable(\n    cols,\n    dictencodings,\n    largelists,\n    compress,\n    denseunions,\n    dictencode,\n    dictencodenested,\n    maxdepth,\n    meta,\n    colmeta,\n)\n    @debug \"converting input table to arrow formatted columns\"\n    sch = Tables.schema(cols)\n    types = collect(sch.types)\n    N = length(types)\n    newcols = Vector{Any}(undef, N)\n    newtypes = Vector{Type}(undef, N)\n    dictencodingdeltas = DictEncoding[]\n    Tables.eachcolumn(sch, cols) do col, i, nm\n        oldcolmeta = getmetadata(col)\n        newcolmeta = isnothing(colmeta) ? oldcolmeta : get(colmeta, nm, oldcolmeta)\n        newcol = toarrowvector(\n            col,\n            i,\n            dictencodings,\n            dictencodingdeltas,\n            newcolmeta;\n            compression=compress,\n            largelists=largelists,\n            denseunions=denseunions,\n            dictencode=dictencode,\n            dictencodenested=dictencodenested,\n            maxdepth=maxdepth,\n        )\n        newtypes[i] = eltype(newcol)\n        newcols[i] = newcol\n    end\n    minlen, maxlen = isempty(newcols) ? (0, 0) : extrema(length, newcols)\n    minlen == maxlen ||\n        throw(ArgumentError(\"columns with unequal lengths detected: $minlen < $maxlen\"))\n    meta = _normalizemeta(meta)\n    return ToArrowTable(\n        Tables.Schema(sch.names, newtypes),\n        newcols,\n        meta,\n        dictencodingdeltas,\n    )\nend\n\nTables.columns(x::ToArrowTable) = x\nTables.rowcount(x::ToArrowTable) = length(x.cols) == 0 ? 0 : length(x.cols[1])\nTables.schema(x::ToArrowTable) = x.sch\nTables.columnnames(x::ToArrowTable) = x.sch.names\nTables.getcolumn(x::ToArrowTable, i::Int) = x.cols[i]\n\nfunction Base.write(io::IO, msg::Message, blocks, sch, alignment)\n    metalen = padding(length(msg.msgflatbuf), alignment)\n    @debug \"writing message: metalen = $metalen, bodylen = $(msg.bodylen), isrecordbatch = $(msg.isrecordbatch), headerType = $(msg.headerType)\"\n    if msg.blockmsg\n        push!(\n            blocks[msg.isrecordbatch ? 1 : 2],\n            Block(position(io), metalen + 8, msg.bodylen),\n        )\n    end\n    # now write the final message spec out\n    # continuation byte\n    n = Base.write(io, CONTINUATION_INDICATOR_BYTES)\n    # metadata length\n    n += Base.write(io, Int32(metalen))\n    # message flatbuffer\n    n += Base.write(io, msg.msgflatbuf)\n    n += writezeros(io, paddinglength(length(msg.msgflatbuf), alignment))\n    # message body\n    if msg.columns !== nothing\n        # write out buffers\n        for col in Tables.Columns(msg.columns)\n            writebuffer(io, col, alignment)\n        end\n    end\n    return n\nend\n\nfunction makemessage(b, headerType, header, columns=nothing, bodylen=0)\n    # write the message flatbuffer object\n    Meta.messageStart(b)\n    Meta.messageAddVersion(b, Meta.MetadataVersion.V5)\n    Meta.messageAddHeaderType(b, headerType)\n    Meta.messageAddHeader(b, header)\n    Meta.messageAddBodyLength(b, Int64(bodylen))\n    # Meta.messageAddCustomMetadata(b, meta)\n    # Meta.messageStartCustomMetadataVector(b, num_meta_elems)\n    msg = Meta.messageEnd(b)\n    FlatBuffers.finish!(b, msg)\n    return Message(\n        FlatBuffers.finishedbytes(b),\n        columns,\n        bodylen,\n        headerType == Meta.RecordBatch,\n        headerType == Meta.RecordBatch || headerType == Meta.DictionaryBatch,\n        headerType,\n    )\nend\n\nfunction makeschema(b, sch::Tables.Schema, columns)\n    # build Field objects\n    names = sch.names\n    N = length(names)\n    fieldoffsets = [fieldoffset(b, names[i], columns.cols[i]) for i = 1:N]\n    Meta.schemaStartFieldsVector(b, N)\n    for off in Iterators.reverse(fieldoffsets)\n        FlatBuffers.prependoffset!(b, off)\n    end\n    fields = FlatBuffers.endvector!(b, N)\n    if columns.metadata !== nothing\n        kvs = columns.metadata\n        kvoffs = Vector{FlatBuffers.UOffsetT}(undef, length(kvs))\n        for (i, (k, v)) in enumerate(kvs)\n            koff = FlatBuffers.createstring!(b, String(k))\n            voff = FlatBuffers.createstring!(b, String(v))\n            Meta.keyValueStart(b)\n            Meta.keyValueAddKey(b, koff)\n            Meta.keyValueAddValue(b, voff)\n            kvoffs[i] = Meta.keyValueEnd(b)\n        end\n        Meta.schemaStartCustomMetadataVector(b, length(kvs))\n        for off in Iterators.reverse(kvoffs)\n            FlatBuffers.prependoffset!(b, off)\n        end\n        meta = FlatBuffers.endvector!(b, length(kvs))\n    else\n        meta = FlatBuffers.UOffsetT(0)\n    end\n    # write schema object\n    Meta.schemaStart(b)\n    Meta.schemaAddEndianness(b, Meta.Endianness.Little)\n    Meta.schemaAddFields(b, fields)\n    Meta.schemaAddCustomMetadata(b, meta)\n    return Meta.schemaEnd(b)\nend\n\nfunction makeschemamsg(sch::Tables.Schema, columns)\n    @debug \"building schema message: sch = $sch\"\n    b = FlatBuffers.Builder(1024)\n    schema = makeschema(b, sch, columns)\n    return makemessage(b, Meta.Schema, schema)\nend\n\nfunction fieldoffset(b, name, col)\n    nameoff = FlatBuffers.createstring!(b, string(name))\n    T = eltype(col)\n    nullable = T >: Missing\n    # check for custom metadata\n    if getmetadata(col) !== nothing\n        kvs = getmetadata(col)\n        kvoffs = Vector{FlatBuffers.UOffsetT}(undef, length(kvs))\n        for (i, (k, v)) in enumerate(kvs)\n            koff = FlatBuffers.createstring!(b, String(k))\n            voff = FlatBuffers.createstring!(b, String(v))\n            Meta.keyValueStart(b)\n            Meta.keyValueAddKey(b, koff)\n            Meta.keyValueAddValue(b, voff)\n            kvoffs[i] = Meta.keyValueEnd(b)\n        end\n        Meta.fieldStartCustomMetadataVector(b, length(kvs))\n        for off in Iterators.reverse(kvoffs)\n            FlatBuffers.prependoffset!(b, off)\n        end\n        meta = FlatBuffers.endvector!(b, length(kvs))\n    else\n        meta = FlatBuffers.UOffsetT(0)\n    end\n    # build dictionary\n    if isdictencoded(col)\n        encodingtype = indtype(col)\n        IT, inttype, _ = arrowtype(b, encodingtype)\n        Meta.dictionaryEncodingStart(b)\n        Meta.dictionaryEncodingAddId(b, Int64(getid(col)))\n        Meta.dictionaryEncodingAddIndexType(b, inttype)\n        # TODO: support isOrdered?\n        Meta.dictionaryEncodingAddIsOrdered(b, false)\n        dict = Meta.dictionaryEncodingEnd(b)\n    else\n        dict = FlatBuffers.UOffsetT(0)\n    end\n    type, typeoff, children = arrowtype(b, col)\n    if children !== nothing\n        Meta.fieldStartChildrenVector(b, length(children))\n        for off in Iterators.reverse(children)\n            FlatBuffers.prependoffset!(b, off)\n        end\n        children = FlatBuffers.endvector!(b, length(children))\n    else\n        Meta.fieldStartChildrenVector(b, 0)\n        children = FlatBuffers.endvector!(b, 0)\n    end\n    # build field object\n    if isdictencoded(col)\n        @debug \"building field: name = $name, nullable = $nullable, T = $T, type = $type, inttype = $IT, dictionary id = $(getid(col))\"\n    else\n        @debug \"building field: name = $name, nullable = $nullable, T = $T, type = $type\"\n    end\n    Meta.fieldStart(b)\n    Meta.fieldAddName(b, nameoff)\n    Meta.fieldAddNullable(b, nullable)\n    Meta.fieldAddTypeType(b, type)\n    Meta.fieldAddType(b, typeoff)\n    Meta.fieldAddDictionary(b, dict)\n    Meta.fieldAddChildren(b, children)\n    Meta.fieldAddCustomMetadata(b, meta)\n    return Meta.fieldEnd(b)\nend\n\nstruct FieldNode\n    length::Int64\n    null_count::Int64\nend\n\nstruct Buffer\n    offset::Int64\n    length::Int64\nend\n\nfunction makerecordbatchmsg(\n    sch::Tables.Schema{names,types},\n    columns,\n    alignment,\n) where {names,types}\n    b = FlatBuffers.Builder(1024)\n    recordbatch, bodylen = makerecordbatch(b, sch, columns, alignment)\n    return makemessage(b, Meta.RecordBatch, recordbatch, columns, bodylen)\nend\n\nfunction makerecordbatch(\n    b,\n    sch::Tables.Schema{names,types},\n    columns,\n    alignment,\n) where {names,types}\n    nrows = Tables.rowcount(columns)\n\n    compress = nothing\n    fieldnodes = FieldNode[]\n    fieldbuffers = Buffer[]\n    bufferoffset = 0\n    for col in Tables.Columns(columns)\n        if col isa Compressed\n            compress = compressiontype(col)\n        end\n        bufferoffset =\n            makenodesbuffers!(col, fieldnodes, fieldbuffers, bufferoffset, alignment)\n    end\n    @debug \"building record batch message: nrows = $nrows, sch = $sch, compress = $compress\"\n\n    # write field nodes objects\n    FN = length(fieldnodes)\n    Meta.recordBatchStartNodesVector(b, FN)\n    for fn in Iterators.reverse(fieldnodes)\n        Meta.createFieldNode(b, fn.length, fn.null_count)\n    end\n    nodes = FlatBuffers.endvector!(b, FN)\n\n    # write buffer objects\n    bodylen = 0\n    BN = length(fieldbuffers)\n    Meta.recordBatchStartBuffersVector(b, BN)\n    for buf in Iterators.reverse(fieldbuffers)\n        Meta.createBuffer(b, buf.offset, buf.length)\n        bodylen += padding(buf.length, alignment)\n    end\n    buffers = FlatBuffers.endvector!(b, BN)\n\n    # compression\n    if compress !== nothing\n        Meta.bodyCompressionStart(b)\n        Meta.bodyCompressionAddCodec(b, compress)\n        Meta.bodyCompressionAddMethod(b, Meta.BodyCompressionMethod.BUFFER)\n        compression = Meta.bodyCompressionEnd(b)\n    else\n        compression = FlatBuffers.UOffsetT(0)\n    end\n\n    # write record batch object\n    @debug \"built record batch message: nrows = $nrows, nodes = $fieldnodes, buffers = $fieldbuffers, compress = $compress, bodylen = $bodylen\"\n    Meta.recordBatchStart(b)\n    Meta.recordBatchAddLength(b, Int64(nrows))\n    Meta.recordBatchAddNodes(b, nodes)\n    Meta.recordBatchAddBuffers(b, buffers)\n    Meta.recordBatchAddCompression(b, compression)\n    return Meta.recordBatchEnd(b), bodylen\nend\n\nfunction makedictionarybatchmsg(sch, columns, id, isdelta, alignment)\n    @debug \"building dictionary message: id = $id, sch = $sch, isdelta = $isdelta\"\n    b = FlatBuffers.Builder(1024)\n    recordbatch, bodylen = makerecordbatch(b, sch, columns, alignment)\n    Meta.dictionaryBatchStart(b)\n    Meta.dictionaryBatchAddId(b, Int64(id))\n    Meta.dictionaryBatchAddData(b, recordbatch)\n    Meta.dictionaryBatchAddIsDelta(b, isdelta)\n    dictionarybatch = Meta.dictionaryBatchEnd(b)\n    return makemessage(b, Meta.DictionaryBatch, dictionarybatch, columns, bodylen)\nend\n"
  },
  {
    "path": "test/Project.toml",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n[deps]\nArrowTypes = \"31f734f8-188a-4ce0-8406-c8a06bd891cd\"\nCategoricalArrays = \"324d7699-5711-5eae-9e2f-1d82baa6b597\"\nDataAPI = \"9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a\"\nDataFrames = \"a93c6f00-e57d-5684-b7b6-d8193f3e46c0\"\nDates = \"ade2ca70-3891-5945-98fb-dc099432e06a\"\nFilePathsBase = \"48062228-2e41-5def-b9a4-89aafe57970f\"\nJSON3 = \"0f8b85d8-7281-11e9-16c2-39a750bddbf1\"\nMmap = \"a63ad114-7e13-5084-954f-fe012c677804\"\nOffsetArrays = \"6fe1bfb0-de20-5000-8ca7-80f57d26f881\"\nPooledArrays = \"2dfb63ee-cc39-5dd5-95bd-886bf059d720\"\nRandom = \"9a3f8284-a2c9-5f02-9a11-845980a1fd5c\"\nSockets = \"6462fe0b-24de-5631-8697-dd941f90decc\"\nStructTypes = \"856f2bd8-1eba-4b0a-8007-ebc267875bd4\"\nSentinelArrays = \"91c51154-3ec4-41a3-a24f-3f23e20d615c\"\nTables = \"bd369af6-aec1-5ad0-b16a-f7cc5008161c\"\nTimeZones = \"f269a46b-ccf7-5d73-abea-4c690281aa53\"\nTest = \"8dfed614-e22c-5e08-85e1-65c5234f0b40\"\nTestSetExtensions = \"98d24dd4-01ad-11ea-1b02-c9a08f80db04\"\nUUIDs = \"cf7118a7-6976-5b1a-9a39-7adc72f591a4\"\n\n[compat]\nArrowTypes = \"2.3\"\nCategoricalArrays = \"1\"\nDataAPI = \"1\"\nDataFrames = \"1\"\nFilePathsBase = \"0.9\"\nJSON3 = \"1\"\nOffsetArrays = \"1\"\nPooledArrays = \"1\"\nStructTypes = \"1\"\nSentinelArrays = \"1\"\nTables = \"1\"\nTestSetExtensions = \"3\"\nTimeZones = \"1\"\n"
  },
  {
    "path": "test/arrowjson/datetime.json",
    "content": "{\n  \"schema\": {\n    \"fields\": [\n      {\n        \"name\": \"f0\",\n        \"type\": {\n          \"name\": \"date\",\n          \"unit\": \"DAY\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f1\",\n        \"type\": {\n          \"name\": \"date\",\n          \"unit\": \"MILLISECOND\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f2\",\n        \"type\": {\n          \"name\": \"time\",\n          \"unit\": \"SECOND\",\n          \"bitWidth\": 32\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f3\",\n        \"type\": {\n          \"name\": \"time\",\n          \"unit\": \"MILLISECOND\",\n          \"bitWidth\": 32\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f4\",\n        \"type\": {\n          \"name\": \"time\",\n          \"unit\": \"MICROSECOND\",\n          \"bitWidth\": 64\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f5\",\n        \"type\": {\n          \"name\": \"time\",\n          \"unit\": \"NANOSECOND\",\n          \"bitWidth\": 64\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f6\",\n        \"type\": {\n          \"name\": \"timestamp\",\n          \"unit\": \"SECOND\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f7\",\n        \"type\": {\n          \"name\": \"timestamp\",\n          \"unit\": \"MILLISECOND\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f8\",\n        \"type\": {\n          \"name\": \"timestamp\",\n          \"unit\": \"MICROSECOND\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f9\",\n        \"type\": {\n          \"name\": \"timestamp\",\n          \"unit\": \"NANOSECOND\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f10\",\n        \"type\": {\n          \"name\": \"timestamp\",\n          \"unit\": \"MILLISECOND\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f11\",\n        \"type\": {\n          \"name\": \"timestamp\",\n          \"unit\": \"SECOND\",\n          \"timezone\": \"UTC\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f12\",\n        \"type\": {\n          \"name\": \"timestamp\",\n          \"unit\": \"MILLISECOND\",\n          \"timezone\": \"US/Eastern\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f13\",\n        \"type\": {\n          \"name\": \"timestamp\",\n          \"unit\": \"MICROSECOND\",\n          \"timezone\": \"Europe/Paris\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f14\",\n        \"type\": {\n          \"name\": \"timestamp\",\n          \"unit\": \"NANOSECOND\",\n          \"timezone\": \"US/Pacific\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      }\n    ]\n  },\n  \"batches\": [\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            -719162,\n            2932896,\n            1251583,\n            -354578,\n            1947695,\n            -669151,\n            26653\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-62135596800000\",\n            \"253402214400000\",\n            \"-2820221740189\",\n            \"71549882314362\",\n            \"125067746235030\",\n            \"-27038791348254\",\n            \"42137473450326\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            0,\n            86400,\n            76127,\n            6700,\n            27103,\n            56151,\n            56654\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            0,\n            86400000,\n            17984286,\n            76370591,\n            60937117,\n            2240575,\n            8788989\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"0\",\n            \"86400000000\",\n            \"74085029005\",\n            \"23058796418\",\n            \"5827157574\",\n            \"30753386088\",\n            \"41165364667\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"0\",\n            \"86400000000000\",\n            \"23907445718784\",\n            \"74345421086418\",\n            \"75233481254444\",\n            \"82172159793710\",\n            \"58497242525071\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-62135596800\",\n            \"253402214400\",\n            \"-61131551586\",\n            \"109841560561\",\n            \"-3916465142\",\n            \"146694684650\",\n            \"138850275868\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-62135596800000\",\n            \"253402214400000\",\n            \"73881152631437\",\n            \"69908713976427\",\n            \"252339755754438\",\n            \"-24746530024729\",\n            \"169302540975380\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-62135596800000000\",\n            \"253402214400000000\",\n            \"201464679490582249\",\n            \"168126161155504013\",\n            \"-23403778250906066\",\n            \"205706554937392102\",\n            \"45776665091115087\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-9223372036854775808\",\n            \"9223372036854775807\",\n            \"-6357255048670867880\",\n            \"-8661447973993819541\",\n            \"-8212788386909103318\",\n            \"-8530954041419345600\",\n            \"-4218486829304453721\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-62135596800000\",\n            \"253402214400000\",\n            \"206983911256609\",\n            \"94973546379549\",\n            \"-18473207641060\",\n            \"36529119814530\",\n            \"143273969098011\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-62135596800\",\n            \"253402214400\",\n            \"225567855249\",\n            \"18090198256\",\n            \"-18645631593\",\n            \"1683299996\",\n            \"240974238031\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-62135596800000\",\n            \"253402214400000\",\n            \"-41888047432132\",\n            \"142167692985706\",\n            \"96450253340232\",\n            \"-28800292871111\",\n            \"31551906541089\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-62135596800000000\",\n            \"253402214400000000\",\n            \"-55035741541368439\",\n            \"110555619232926841\",\n            \"13584197914180451\",\n            \"-40099398122556776\",\n            \"154575532939365500\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-9223372036854775808\",\n            \"9223372036854775807\",\n            \"5175948389020765869\",\n            \"5557679156666679724\",\n            \"4250919303876106324\",\n            \"9160676477011889469\",\n            \"8585006913301874724\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            -719162,\n            2932896,\n            1879965,\n            -566367,\n            37728,\n            1761040,\n            279144,\n            1056794,\n            756303,\n            525725\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-62135596800000\",\n            \"253402214400000\",\n            \"-38092110755085\",\n            \"-28445105640862\",\n            \"82150583163219\",\n            \"54419670636015\",\n            \"157522888788052\",\n            \"-41135178703404\",\n            \"-55692081078291\",\n            \"23161948344048\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            0,\n            86400,\n            68158,\n            43645,\n            82390,\n            63272,\n            8687,\n            73663,\n            41080,\n            16606\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            0,\n            86400000,\n            4300160,\n            71414742,\n            77204018,\n            20632726,\n            31365614,\n            66601445,\n            59573489,\n            62138475\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"0\",\n            \"86400000000\",\n            \"28651881349\",\n            \"76962235570\",\n            \"72557141940\",\n            \"81551970477\",\n            \"20740172257\",\n            \"69927019990\",\n            \"76743031592\",\n            \"82821335874\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"0\",\n            \"86400000000000\",\n            \"69757112637445\",\n            \"57552711513942\",\n            \"29426946816946\",\n            \"34878855922929\",\n            \"33344575898987\",\n            \"80887006335433\",\n            \"34037765279999\",\n            \"51577535310194\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-62135596800\",\n            \"253402214400\",\n            \"17362133914\",\n            \"-45891238920\",\n            \"184875963653\",\n            \"189805054827\",\n            \"-58368591641\",\n            \"11979945774\",\n            \"-42159999942\",\n            \"-40114167869\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-62135596800000\",\n            \"253402214400000\",\n            \"228991365143433\",\n            \"169961535994833\",\n            \"200469360821110\",\n            \"69234108321383\",\n            \"198319780924526\",\n            \"191497586634193\",\n            \"175427870270356\",\n            \"57342673854963\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-62135596800000000\",\n            \"253402214400000000\",\n            \"56980200145982394\",\n            \"181929648203745781\",\n            \"139102923751831867\",\n            \"208997257530770666\",\n            \"16136961511557279\",\n            \"41555612864958844\",\n            \"13419848118557598\",\n            \"87383692083185618\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-9223372036854775808\",\n            \"9223372036854775807\",\n            \"-7031715621840828119\",\n            \"6059066797068981521\",\n            \"-1646261793033501417\",\n            \"-4220806875454311426\",\n            \"-5197114782094970725\",\n            \"-8786449967831538943\",\n            \"2974021310284646715\",\n            \"-8065049992539820014\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-62135596800000\",\n            \"253402214400000\",\n            \"178310981489839\",\n            \"-57632494932898\",\n            \"-49036210908585\",\n            \"52895117552494\",\n            \"171282515196488\",\n            \"132014017559614\",\n            \"37589110284897\",\n            \"-58565057255450\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-62135596800\",\n            \"253402214400\",\n            \"-25861647763\",\n            \"225566577159\",\n            \"239974631847\",\n            \"9594019763\",\n            \"195861877033\",\n            \"-19961060193\",\n            \"75621579368\",\n            \"-37516489502\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-62135596800000\",\n            \"253402214400000\",\n            \"197770622812426\",\n            \"195993483135189\",\n            \"187243903796151\",\n            \"193213107363200\",\n            \"83570298570259\",\n            \"252571502045214\",\n            \"129428288356579\",\n            \"-6553516468568\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-62135596800000000\",\n            \"253402214400000000\",\n            \"227405247332731417\",\n            \"-23876629555725661\",\n            \"172967389442803645\",\n            \"214366955371313241\",\n            \"86933375268516953\",\n            \"162567381239071692\",\n            \"40270626452354761\",\n            \"-9766478375147980\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-9223372036854775808\",\n            \"9223372036854775807\",\n            \"-3367778002617009344\",\n            \"-921482854487607004\",\n            \"1280046021732622411\",\n            \"-2084512789553264359\",\n            \"6774927372092824293\",\n            \"2301253808511314195\",\n            \"-447823511949250637\",\n            \"-9137589927882857097\"\n          ]\n        }\n      ]\n    }\n  ]\n}\n"
  },
  {
    "path": "test/arrowjson/decimal.json",
    "content": "{\n  \"schema\": {\n    \"fields\": [\n      {\n        \"name\": \"f0\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 3,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f1\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 4,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f2\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 5,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f3\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 6,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f4\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 7,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f5\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 8,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f6\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 9,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f7\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 10,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f8\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 11,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f9\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 12,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f10\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 13,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f11\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 14,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f12\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 15,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f13\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 16,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f14\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 17,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f15\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 18,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f16\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 19,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f17\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 20,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f18\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 21,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f19\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 22,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f20\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 23,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f21\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 24,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f22\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 25,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f23\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 26,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f24\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 27,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f25\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 28,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f26\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 29,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f27\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 30,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f28\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 31,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f29\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 32,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f30\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 33,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f31\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 34,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f32\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 35,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f33\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 36,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f34\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 37,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"f35\",\n        \"type\": {\n          \"name\": \"decimal\",\n          \"precision\": 38,\n          \"scale\": 2\n        },\n        \"nullable\": true,\n        \"children\": []\n      }\n    ]\n  },\n  \"batches\": [\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-14265\",\n            \"-3301\",\n            \"-20359\",\n            \"5259\",\n            \"-10833\",\n            \"-19794\",\n            \"22904\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-7020\",\n            \"7396\",\n            \"9702\",\n            \"-29862\",\n            \"25915\",\n            \"17934\",\n            \"23441\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-6799031\",\n            \"-6350361\",\n            \"-7919057\",\n            \"-2688856\",\n            \"-2460218\",\n            \"-5498780\",\n            \"5580928\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-3533649\",\n            \"643928\",\n            \"2739361\",\n            \"-2006582\",\n            \"7501109\",\n            \"-2029241\",\n            \"-6554749\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-1383097445\",\n            \"-317364446\",\n            \"39137303\",\n            \"-203304373\",\n            \"284864794\",\n            \"-1902924832\",\n            \"694509255\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1445584597\",\n            \"-1479256303\",\n            \"1986678586\",\n            \"653640925\",\n            \"-1377647126\",\n            \"163472005\",\n            \"-985666433\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-1032313347\",\n            \"1968833128\",\n            \"2108909581\",\n            \"1727353475\",\n            \"912414766\",\n            \"-635823470\",\n            \"1712241290\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"154945363887\",\n            \"416184610386\",\n            \"339640718067\",\n            \"517615365091\",\n            \"-225329280656\",\n            \"170183803130\",\n            \"-151819857736\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"415862710871\",\n            \"-497367616337\",\n            \"-513589024815\",\n            \"365532163027\",\n            \"162771025458\",\n            \"-217545761908\",\n            \"-177764161272\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"139749710369981\",\n            \"-83794245890178\",\n            \"-91856283653391\",\n            \"136480936919831\",\n            \"139751556918685\",\n            \"-128711073562986\",\n            \"57528145123438\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"52917228652967\",\n            \"-94943960868145\",\n            \"-95787469176401\",\n            \"138513251818631\",\n            \"72391840904205\",\n            \"15456369093039\",\n            \"43627762817987\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-55939733680307\",\n            \"109774177882810\",\n            \"-18751094013174\",\n            \"66217182114674\",\n            \"54552088012955\",\n            \"10184533351464\",\n            \"-42623419179005\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"5323426016158598\",\n            \"-14889118959500841\",\n            \"17725275930019497\",\n            \"8976278451851381\",\n            \"-13047873474817232\",\n            \"-35698038632707430\",\n            \"35553131382011652\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"22248347423524568\",\n            \"21382628128477388\",\n            \"10729166497278728\",\n            \"33552782977485637\",\n            \"-27049764851522362\",\n            \"-22662588671534830\",\n            \"34450594992450092\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"1793092340943680288\",\n            \"6687492261570159758\",\n            \"-8215335212004105263\",\n            \"4478178378408252470\",\n            \"163214921176454093\",\n            \"8663994206540321487\",\n            \"-7336047061160684053\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-8553613303342920727\",\n            \"2303004565228604365\",\n            \"4387581718276767427\",\n            \"-9190240538897215152\",\n            \"-2359611618219705826\",\n            \"-4394705260138635628\",\n            \"-5098494694180487526\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-2066857943452927830158\",\n            \"903014216615599800157\",\n            \"-550458216531247342288\",\n            \"2017634601926315282348\",\n            \"848752616371714143556\",\n            \"1142061465959813542452\",\n            \"1385502695475659971908\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-2114118262682166206082\",\n            \"1902359162690886678168\",\n            \"416686278682682920537\",\n            \"1670406372017974831657\",\n            \"1672178198289799650411\",\n            \"1290828393749566925129\",\n            \"477509832520793484657\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-761286776745227142069\",\n            \"-519173571795485925518\",\n            \"-1152371818412313184820\",\n            \"-1693854308571834153795\",\n            \"-2338147549154180008842\",\n            \"-722980793690531284755\",\n            \"-308453791763555488903\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-363139155978036972417607\",\n            \"-67592154020748584606597\",\n            \"229641197562527780640996\",\n            \"-346708211516644122649482\",\n            \"-1250859224618770910347\",\n            \"-324094365896255288686912\",\n            \"587754147918610672847722\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-260044582391618089260319\",\n            \"-571174996847059618302630\",\n            \"-109712997473546598340520\",\n            \"-504887878361994310822232\",\n            \"-79933142040493800702044\",\n            \"391593215117382882517477\",\n            \"253411954510878438009626\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"78355683904145007775288840\",\n            \"-119384708322041630321535990\",\n            \"-100920737167981116982294279\",\n            \"83826802691186830123887155\",\n            \"-142861875795075155563507787\",\n            \"-145798388286082279657253594\",\n            \"-25329913740178438718347749\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"2728894406873273319876599\",\n            \"-26824077854062930008319059\",\n            \"59282342970725803527905051\",\n            \"-102858143095488614827267122\",\n            \"-86746033992194633744162126\",\n            \"151758737255322612002715481\",\n            \"-7882766239372883938103148\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-79786812518583385435068134\",\n            \"-60631765880118763666388680\",\n            \"-6864681441231111204611249\",\n            \"13050926774682302829016376\",\n            \"-70829524080848069150697712\",\n            \"-82269446396753351313982437\",\n            \"-64035656687419899366647308\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"3955725931924121460907631531\",\n            \"-21274213085809772733586643935\",\n            \"-12093030231048856037056919233\",\n            \"1591415318816864321772119800\",\n            \"15686477033795236409156083537\",\n            \"35545421326820517900037881163\",\n            \"22425766368694890650567525141\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"29018707613584242707294878326\",\n            \"17791141760763489912825555133\",\n            \"16531138885547875931113958621\",\n            \"-30513053118126324165999828125\",\n            \"15960846333545963474586001659\",\n            \"36917332355702074649716398096\",\n            \"-23564003365919469704120973292\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"9213099815853647106837374141135\",\n            \"-2927321977169069503340222047887\",\n            \"6334956127042213437236348937051\",\n            \"421008034487997672364705982278\",\n            \"-8216535847017377542720322569325\",\n            \"9010595708854142678424220967811\",\n            \"4188490944857456828411574213081\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-8400462145843923761912990483225\",\n            \"-9532520685799568447195818877630\",\n            \"6941627626857671447061360399506\",\n            \"-1279966284289260405732779325351\",\n            \"1498483597016609631513149683949\",\n            \"-1529118713555007787773854671666\",\n            \"8107117611898163619507416633696\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-2915756808824546582752189119657\",\n            \"689849096940399949037495607644\",\n            \"6949792968358403147068782203692\",\n            \"-9209851065708847333103701669232\",\n            \"-9846735769797668003358129310662\",\n            \"-828325389508874726576445634733\",\n            \"-548287410953591263203641276502\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"2329344668638312257280241058269271\",\n            \"-752344765844397811032529707212356\",\n            \"147451832276294483763966453842451\",\n            \"2043297198679260475716881353145488\",\n            \"-1700852196536476328772217191241342\",\n            \"395231723125832272118398102832808\",\n            \"1021064751191444192162606435133102\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1059349538643979619795009909676873\",\n            \"1077517333972932491341963859241254\",\n            \"-1269329697335528941024149247301687\",\n            \"1492334714292199711015081732157237\",\n            \"1164940978846205931486582828955479\",\n            \"1226701026828005364221866490976254\",\n            \"-2246642220670050837117291416085961\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-453427466718461089284644212936857043\",\n            \"401968647744354893846373970134628607\",\n            \"296564973980089833086319484394180932\",\n            \"300255396607176659100995955356045655\",\n            \"-128210286701929565620215086982795175\",\n            \"-76575845460847329054975157675278272\",\n            \"150610860039362064995272346289079343\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"421046835537097379208584523685561537\",\n            \"-12336249922904854000276177315936166\",\n            \"-643245709818789885569562430725515554\",\n            \"28125849177083902136768190312091645\",\n            \"-144070901322770869842559076535428168\",\n            \"404632889001498427711768281303970316\",\n            \"484413224979251839912542328701460679\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-74076465584946023556734876157740408561\",\n            \"48775465105440153520372738047296715437\",\n            \"-27256511570535798216063178902711504522\",\n            \"17556306662405983159878112274642973563\",\n            \"-100278707484244689483962841662232621044\",\n            \"61342616787415403733699116416597761322\",\n            \"65469616326882669620827062523697818819\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"160988666415816646705442929165000844171\",\n            \"-150079614246235114587531344502672720143\",\n            \"130458754430497218349443163826152965786\",\n            \"162593370774960128510764087469483971628\",\n            \"100335479568560073327353331226427021396\",\n            \"154469868317889131666703500879972187378\",\n            \"109851602321776291877341624608658829262\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"90507703396950205824782315866890653146\",\n            \"33101701517846982239639071710846694736\",\n            \"-162364169137146690363873495754205930932\",\n            \"6552361136224904568043204720462599330\",\n            \"55934073603932057089039430724186991179\",\n            \"-40518421289171987097923903446970623529\",\n            \"21964873705187790865866750301783750442\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-4326\",\n            \"-4742\",\n            \"24127\",\n            \"-28455\",\n            \"-25093\",\n            \"18893\",\n            \"6010\",\n            \"18847\",\n            \"-29502\",\n            \"32119\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-4350\",\n            \"6406\",\n            \"-22249\",\n            \"-3026\",\n            \"-27892\",\n            \"12582\",\n            \"-26038\",\n            \"-26810\",\n            \"-10412\",\n            \"12059\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-5437050\",\n            \"-2975935\",\n            \"-2708551\",\n            \"5905122\",\n            \"7598831\",\n            \"1837938\",\n            \"3161296\",\n            \"4144482\",\n            \"7971237\",\n            \"3812932\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"8307058\",\n            \"5437059\",\n            \"7848415\",\n            \"210888\",\n            \"-7438002\",\n            \"1251661\",\n            \"1558298\",\n            \"-8295786\",\n            \"-1337540\",\n            \"4329127\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"2143281149\",\n            \"1036205716\",\n            \"-483960365\",\n            \"464783350\",\n            \"44702295\",\n            \"1500496151\",\n            \"2007499481\",\n            \"-1980167635\",\n            \"-491561248\",\n            \"137927958\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"385115557\",\n            \"-468314229\",\n            \"-1806182189\",\n            \"826968059\",\n            \"1973820915\",\n            \"-1678321968\",\n            \"282860534\",\n            \"-429116070\",\n            \"-485370474\",\n            \"-1175964348\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1660401943\",\n            \"858637970\",\n            \"1954585251\",\n            \"896247082\",\n            \"-1324508546\",\n            \"1856733620\",\n            \"-508486488\",\n            \"-2144890404\",\n            \"-595464217\",\n            \"-541883970\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-475292084638\",\n            \"-151527930749\",\n            \"-136244496864\",\n            \"475724641544\",\n            \"490808185901\",\n            \"-380524076056\",\n            \"347742169602\",\n            \"-208359763265\",\n            \"500407573029\",\n            \"-390649746248\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-463878565883\",\n            \"-440350084389\",\n            \"-489309228695\",\n            \"403236358497\",\n            \"22420180364\",\n            \"461550541832\",\n            \"166802945594\",\n            \"-75395045157\",\n            \"349097107753\",\n            \"-31923850582\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"13351341741346\",\n            \"132672835377977\",\n            \"-104121852651737\",\n            \"-116578873884859\",\n            \"-93368786381550\",\n            \"-130866514927019\",\n            \"-130245922532357\",\n            \"119422720388976\",\n            \"39514069962031\",\n            \"129449354245745\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"117562734639864\",\n            \"-69335041870511\",\n            \"88065868490266\",\n            \"-88825080775852\",\n            \"-33000609471354\",\n            \"45253821354104\",\n            \"-19572766862990\",\n            \"-20998291433421\",\n            \"-138710717300131\",\n            \"105346771642837\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"23613726765605\",\n            \"-122540956874454\",\n            \"43298244246934\",\n            \"38914627030131\",\n            \"-96822287655033\",\n            \"-117561922155895\",\n            \"-116901550232631\",\n            \"-33238646153535\",\n            \"87255230245952\",\n            \"-103811103056354\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"14326292611678389\",\n            \"11679216137082255\",\n            \"30602968082225040\",\n            \"-35083463698552038\",\n            \"13793460528237121\",\n            \"29475754221579432\",\n            \"11956818381525770\",\n            \"25264515687485849\",\n            \"-9442305734363215\",\n            \"32709604673194504\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"10752127983223695\",\n            \"-17671172332493417\",\n            \"23204581064269137\",\n            \"25912317958066911\",\n            \"-6684281122027701\",\n            \"-5393708227406178\",\n            \"-705876736520327\",\n            \"-8271615012961841\",\n            \"-2359308340581953\",\n            \"-10178212042804721\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-785858494820999025\",\n            \"-1596606269767712061\",\n            \"-1418974761760001783\",\n            \"5406463592868106826\",\n            \"8383949914321587435\",\n            \"-8953833508549969767\",\n            \"7221522693757617783\",\n            \"7517732845880583602\",\n            \"-919064621805709634\",\n            \"-5495596733594283265\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-8483275882311463690\",\n            \"8973190785377545539\",\n            \"5542339023127975216\",\n            \"-1516710247958149161\",\n            \"-6505879801430717005\",\n            \"2140391223240971073\",\n            \"-582269641777058598\",\n            \"-5184242226957355683\",\n            \"5206992463328246120\",\n            \"-6079741749013867959\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"1593226799266187966947\",\n            \"-1812161934828717889262\",\n            \"-2122590131716118763227\",\n            \"-1027437168205961683538\",\n            \"1846540008444089681004\",\n            \"-1156292451907349126710\",\n            \"-1957435108076953499486\",\n            \"-950458759560036353191\",\n            \"-1125440584483224915212\",\n            \"2247219347276423832973\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-635230024201890240957\",\n            \"180963226287776474583\",\n            \"-1878152791054730240606\",\n            \"-1904422293952570992101\",\n            \"1052835439226626094544\",\n            \"-1858821189756108906198\",\n            \"1853668161015001150059\",\n            \"511899624049166705494\",\n            \"610084498432376101375\",\n            \"-1029828641365425116105\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1885658882244978382784\",\n            \"565125911580367694969\",\n            \"-1652560178353597573029\",\n            \"2133173545067165238416\",\n            \"-486940365592293262895\",\n            \"-2060709217874894710408\",\n            \"1586493850244052619259\",\n            \"2178470762303491581080\",\n            \"-1293832362817784170345\",\n            \"-1858110114261315174517\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-369225411953896208185462\",\n            \"-432125813663454581808312\",\n            \"-144256737060926287909147\",\n            \"437531850902150565537267\",\n            \"-135152047695882388519227\",\n            \"200989985671128391254839\",\n            \"412064182108667107703143\",\n            \"155783836458581176854752\",\n            \"-227172778832455276260133\",\n            \"212767460062823457968604\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"403503153546865033134324\",\n            \"286440584824595490396339\",\n            \"191634056603308191156299\",\n            \"530416421236246257260161\",\n            \"-317587706869080743041040\",\n            \"-171530648886789759204250\",\n            \"222798032246148363279215\",\n            \"72219173848107712300756\",\n            \"-281960273386152702267354\",\n            \"-495494776734887426338667\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"122137352759155073399221518\",\n            \"-78109201384474477075454853\",\n            \"-119068241308521301444272353\",\n            \"-108756965225823937786847241\",\n            \"-15428358494009873779245484\",\n            \"19614899796809003767318009\",\n            \"-115295286224016867112586811\",\n            \"-8633742807795124483538483\",\n            \"-150410722825301769338372723\",\n            \"124250719445278286695627796\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-99183180993590467578076798\",\n            \"-36808132925962854413539892\",\n            \"-125679607816807665333773367\",\n            \"-136622111609623584591267546\",\n            \"-17266188400280841341905013\",\n            \"-71769330665427864647331885\",\n            \"-145814031084605056753603019\",\n            \"-125056942233093610827766296\",\n            \"9249166279701860198655516\",\n            \"126878824313892664602568663\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"69744825329510933906746340\",\n            \"-30122586028854363823971329\",\n            \"22212149164944035060004867\",\n            \"-25973928380545009708020589\",\n            \"50567555142199657207098957\",\n            \"-40021098669624532176421808\",\n            \"-33330934345289112585983041\",\n            \"-124012214741805393399462125\",\n            \"-138226312121129798637686830\",\n            \"2273005251425309465489619\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"26842282533862498382939405997\",\n            \"17787994211657168910392131484\",\n            \"7523952681100831594207033636\",\n            \"18257283108725825658512455316\",\n            \"-15469531382712880431453128966\",\n            \"-5009369258227088832031787745\",\n            \"-35598690213497115663830724084\",\n            \"22246953732785347649151349772\",\n            \"9330915514049730010034508310\",\n            \"-26800441656550330938009306707\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-36331212919615640889272411104\",\n            \"36192450254329815033783240839\",\n            \"37749265523377026412760210674\",\n            \"1776086174556031952147671519\",\n            \"15362218353534633991283119679\",\n            \"34413146026389235392142970662\",\n            \"14292777901465553588604435837\",\n            \"-17090082469158479303098433453\",\n            \"18688801441734020761551793736\",\n            \"-23859805527670127110643731069\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"2220103303731789573334199701663\",\n            \"6237111177014715580774407162796\",\n            \"-6338471790385983381447055194941\",\n            \"2250388387229112362557012222382\",\n            \"-3919498269201660475165992143963\",\n            \"-1799934177913445118487985955729\",\n            \"-2323304519983949754039480799426\",\n            \"-1301131662575316944670816531905\",\n            \"-4265160933868529886993472786495\",\n            \"-4292953046034527295812111533975\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-3484925219213002239805523064883\",\n            \"6528552859477682991951516050785\",\n            \"-765962107198382441283095455373\",\n            \"-1397137479831402026027607048248\",\n            \"3961682476407229854971103624981\",\n            \"5975195883181022585096451556775\",\n            \"-9676800477604513004081790052790\",\n            \"-5703219619447316623534739055181\",\n            \"6129137758274201914352345247446\",\n            \"771936840958552475578155475366\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"7726836802487400261012835642739\",\n            \"-2899737712900797452349686903367\",\n            \"-4699841764135292946953397202917\",\n            \"7418179251651709234455608105088\",\n            \"8120397131521471010221697932900\",\n            \"6526213244777384369820937871939\",\n            \"-3774567743925527043971960901589\",\n            \"-8873736034246294395374537274419\",\n            \"488289844645088756680442972516\",\n            \"-2388144175550709792515001316277\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-47477340538926222211104914237698\",\n            \"320639937921939986635581989855928\",\n            \"861736289842228881011999521004060\",\n            \"-1205256013177842982651274099236361\",\n            \"-39643995957385740378372042150003\",\n            \"-1210790336528949301250817830946444\",\n            \"1182423445445031739603473987778350\",\n            \"-640337212803879852231150942968813\",\n            \"-567587726713873060654848198630762\",\n            \"280641360776654488558911759135115\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-866285575875610221959113146637304\",\n            \"2344770413948196340883160931087052\",\n            \"1889857580890564350097047877514790\",\n            \"-2568726710340227178480991779371723\",\n            \"-2485213596075291138559974328614959\",\n            \"-62378076407090361966505761644273\",\n            \"-2113433394374145039336066697772466\",\n            \"-2389429054181728925012886258903305\",\n            \"-2525262726376576108925615177598533\",\n            \"-604526323558062739370715910785200\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-411175611485478784812936027850047826\",\n            \"457804241550769132910430204506150717\",\n            \"1549607974636127184352732575182742\",\n            \"390025168459008888512891394303962448\",\n            \"-490664276836807094735857019444661312\",\n            \"-450640457243898505844766529165221166\",\n            \"-553339316764622659577593048830066531\",\n            \"19986969431028149966548563329309114\",\n            \"512190967497020823088167980283378342\",\n            \"-587244163212803971173675798133411979\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"246512063483920590600659938977719645\",\n            \"483324212708049237205831199756205159\",\n            \"195186088040813738593870463346937474\",\n            \"-331572691964567402179138728488891845\",\n            \"466186594735574058231047101478621597\",\n            \"80512186957271594252263140708656889\",\n            \"-621018503026533776126752549530840325\",\n            \"-484705410290628923401085082564299400\",\n            \"-322852670767952007714303037031011136\",\n            \"306969564371703225579907932616560177\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"52513592802194657300546985265901321701\",\n            \"32396354459564619210286503831104805894\",\n            \"-152800597997887046528471654246818061800\",\n            \"16886738551251131147537573820997523099\",\n            \"-108529890244550965992486427743581407764\",\n            \"-107805100101953838884357149548341742683\",\n            \"-152428185005223769908895650096091179800\",\n            \"38697638049920608411728929261890502602\",\n            \"-53183835204559125450983905289890638199\",\n            \"-25198915522830164616311861007733226015\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-29473659368749332611063061562898178665\",\n            \"-64181392425515474831866849063339846755\",\n            \"90557155313004461723928910484647118568\",\n            \"69982410088115917703700629187142714952\",\n            \"137281427883875761429267863353473899975\",\n            \"66221749426872522877433672036305282198\",\n            \"139898216716793863940328165403822713329\",\n            \"-17999019985160863257629297875199464798\",\n            \"74582888771441381839018581558057879959\",\n            \"153431389525940565745457493557728519648\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"132130437221517226508875210221998086214\",\n            \"-53955540660976668373224815268780394481\",\n            \"-94671974318719360571824313264981742616\",\n            \"75940549933612625873217731049581943788\",\n            \"-58970299111050400318748873232294460623\",\n            \"106861808580585226388022589188291458328\",\n            \"151810935532684619700572858784852122078\",\n            \"147244409300271119764509412340177481716\",\n            \"139138676242120433411406371456479693081\",\n            \"58927563101546159870009467050083778558\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"25114\",\n            \"-12925\",\n            \"-1074\",\n            \"28646\",\n            \"-16569\",\n            \"-16770\",\n            \"-27151\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"26533\",\n            \"12085\",\n            \"25312\",\n            \"23445\",\n            \"13356\",\n            \"-2369\",\n            \"-29785\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-4380859\",\n            \"-157657\",\n            \"-4200925\",\n            \"6061632\",\n            \"1972423\",\n            \"-3016747\",\n            \"2864606\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-7045373\",\n            \"-7371800\",\n            \"1427921\",\n            \"-7601068\",\n            \"2525157\",\n            \"-6433403\",\n            \"-2477014\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-141345816\",\n            \"1543059503\",\n            \"1211501603\",\n            \"369888761\",\n            \"894246844\",\n            \"736166799\",\n            \"409408642\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-1553193945\",\n            \"1491657644\",\n            \"376067040\",\n            \"-1100453955\",\n            \"1763626627\",\n            \"1237652218\",\n            \"-1680624462\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"102290167\",\n            \"1044278987\",\n            \"501196467\",\n            \"32275276\",\n            \"-1384353672\",\n            \"594927697\",\n            \"-1482240101\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"431716525885\",\n            \"-396649752792\",\n            \"-252538061544\",\n            \"148825582538\",\n            \"536082535524\",\n            \"-135755487371\",\n            \"425356768774\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"137916147840\",\n            \"21393720222\",\n            \"-325824439981\",\n            \"278743651518\",\n            \"-49501503483\",\n            \"-419736800011\",\n            \"503854890502\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-137642247974694\",\n            \"-126053382015273\",\n            \"32896127803947\",\n            \"17450989064436\",\n            \"-120690899531858\",\n            \"109217312768874\",\n            \"-79259001409277\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"114207744387703\",\n            \"-79306413416767\",\n            \"139536513022560\",\n            \"-98423452444221\",\n            \"78791182271051\",\n            \"-35285009371089\",\n            \"41940974948329\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-27264096490547\",\n            \"136834819442083\",\n            \"-27088394932437\",\n            \"-98987047379901\",\n            \"125550952272750\",\n            \"-104804800493942\",\n            \"8768888141448\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"23677368293754508\",\n            \"-30279797614274598\",\n            \"-30317510840672041\",\n            \"-3538291640098903\",\n            \"-2087381848617356\",\n            \"-23713764981307104\",\n            \"-11713886893415435\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-26406417185878787\",\n            \"-14282719185754107\",\n            \"-34042541212866444\",\n            \"24219940349910515\",\n            \"-23950715983191837\",\n            \"9125287296093962\",\n            \"1340350995572397\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1175386256159753067\",\n            \"9132036865814002849\",\n            \"2073302245565101007\",\n            \"5198424551239400626\",\n            \"1162180176286851142\",\n            \"-5469754044264044482\",\n            \"6861255327733562384\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"6025723723135521005\",\n            \"-7217621567135194958\",\n            \"-875939541579707257\",\n            \"8236552400788004405\",\n            \"-4353971909177851416\",\n            \"4189966288831554693\",\n            \"-2170856197554954993\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"1984509802579054321521\",\n            \"-1041998696764751045250\",\n            \"501861238173417097382\",\n            \"2266100162043156929049\",\n            \"1092677900985431385639\",\n            \"2290545820208575246231\",\n            \"-1929677784513148966088\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-2343674427840265383765\",\n            \"2230129800929309514822\",\n            \"1298773822649292467354\",\n            \"-1658379353955811152293\",\n            \"460872411226138227967\",\n            \"-366025556585308681996\",\n            \"2303266251171038691928\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-1553211803508188723315\",\n            \"-307288386314104261659\",\n            \"-147859719179575239406\",\n            \"316737260848156543682\",\n            \"1901202079912459192862\",\n            \"-2066795118493461325326\",\n            \"1097271871910371248765\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"60159431599803576006229\",\n            \"-349523214568312595512352\",\n            \"-479410413534686721947634\",\n            \"-438205000235664595511857\",\n            \"71434087716492159731908\",\n            \"313701681861148862347175\",\n            \"592529110781630294785385\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-41073349320046663529611\",\n            \"-460196612402794801624059\",\n            \"-85219737286050217930644\",\n            \"-430653003445193867062723\",\n            \"212772177419770007462828\",\n            \"533773505614581994442892\",\n            \"588510537528110040152211\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"31643252440554433191940460\",\n            \"-93699577774061168478202291\",\n            \"24154537866604719834628304\",\n            \"30696729192090200230120983\",\n            \"-99615616997150346574018879\",\n            \"-570384960873190266772386\",\n            \"60124053065001805618112484\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"43634928021314649415598611\",\n            \"-71376931904073326185512276\",\n            \"-24045621000779198743707062\",\n            \"6686912739698933453916262\",\n            \"-154458317914070878667147081\",\n            \"-48373280695426803475799028\",\n            \"76169691954204618596160986\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-114582957647416816237217281\",\n            \"-12748630690377976467956388\",\n            \"111731504296816655416680693\",\n            \"4019447671331190931268009\",\n            \"82801431291231910751983771\",\n            \"108497088164927504518108753\",\n            \"19137086084026561540969316\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"11411634354069865542863757714\",\n            \"4367992064855387626281818334\",\n            \"21423224512954024770097152486\",\n            \"-32916059460547773682793752250\",\n            \"-37598962143905700881222660514\",\n            \"-26791606874412750044572561764\",\n            \"-1640980913390047815572783266\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"34745452020371732029340755584\",\n            \"38633937182521363276851366299\",\n            \"13907386367292796497248233421\",\n            \"3516712513415277325145153684\",\n            \"3056849635253718194064084992\",\n            \"4551068805171087267034288791\",\n            \"-17898292752703455443559461457\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-782556900320991870801777710984\",\n            \"1691629456944775593578700272292\",\n            \"-3817502570462777233621604475255\",\n            \"-4582592814198566350977961347647\",\n            \"-8757778015646360699558792162096\",\n            \"-3372484932226680791305443517921\",\n            \"-6773601661940427910934854617600\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-3034111110316845464241842333639\",\n            \"-1781275911958673372639492265462\",\n            \"-1931637931243318072822423804991\",\n            \"-2889899890039585265079105752268\",\n            \"8441716411760182969194644963692\",\n            \"7571628885131553956380784504990\",\n            \"6417570389157484165557130988430\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-8637275815739683704408877390855\",\n            \"-5205784754631510403458931812287\",\n            \"5903473813623392609711242445408\",\n            \"2196392642166569937732303950298\",\n            \"4322897470867933044080337659838\",\n            \"-295215953845026604294742492576\",\n            \"-9707682435519997757567927666374\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1371746941161753233161616198879974\",\n            \"1982136493212029919715565342281105\",\n            \"-1917002754487970574686778478783266\",\n            \"-57865905347137694987990288364929\",\n            \"2249945384795180946501174810954490\",\n            \"-428951216116914987102881673111066\",\n            \"-2274002923925825152016895839891593\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"1092814442698298966273488282610980\",\n            \"1144413745884554568972739530468097\",\n            \"-75300812750583864582975138768425\",\n            \"789050129071516591209015420836704\",\n            \"-1164029127634305816704854164256453\",\n            \"2432154715761013584642826292686689\",\n            \"-1892357160522293273795945838702878\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-122183630549108645927458587184832899\",\n            \"-243792853164469971347092559188097429\",\n            \"586041069230257431808895634457019729\",\n            \"643508290616316791666365172242311322\",\n            \"140267869100082091472571196986321703\",\n            \"367901398863058047260102259430609991\",\n            \"663427402521611050810057766609452801\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"442484503124860279043087511624488704\",\n            \"-281538291396564587147893059598980836\",\n            \"-346402069367877555608660697944397703\",\n            \"121136520298204023131218573046733183\",\n            \"-297635365268234967618402017598530084\",\n            \"-374122180189017501660740031013019545\",\n            \"-581737813428791636660311570131585053\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"133154724605091554639809801656916837785\",\n            \"75830729335101076443136841481038070489\",\n            \"120313524491479335277638759335459890905\",\n            \"61287945625316584877200472317882946434\",\n            \"101401636551502086495943764753580195892\",\n            \"-67491973819108763200100227319414962675\",\n            \"1469727002050376143004735317308620121\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"163689960486968830624238755496353069266\",\n            \"120222413117901199440645458344006405188\",\n            \"48580226284038590005071569547583521787\",\n            \"8088270627535987928187148843962238997\",\n            \"81865070062931483309512859489282733063\",\n            \"-10237210340155912860809619233603401462\",\n            \"83075135112485276897941678118419444602\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-165871274022360766986351083915813500328\",\n            \"-8686579665026772053190367047771284024\",\n            \"-159204341085506490972656979604179139282\",\n            \"109873262356509061148465005250720029433\",\n            \"-106075570921623241101438726440228153847\",\n            \"94260033293871207317716609052204748035\",\n            \"-20194157317096074536517680199183372407\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-30954\",\n            \"20758\",\n            \"27427\",\n            \"20450\",\n            \"3843\",\n            \"-28014\",\n            \"-9284\",\n            \"-6624\",\n            \"17505\",\n            \"-15123\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"685\",\n            \"-5310\",\n            \"-781\",\n            \"-19286\",\n            \"-2510\",\n            \"-7200\",\n            \"3827\",\n            \"-1198\",\n            \"-27211\",\n            \"20037\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"805128\",\n            \"-8334205\",\n            \"-8322011\",\n            \"7348287\",\n            \"-2733195\",\n            \"426429\",\n            \"3846540\",\n            \"-6903563\",\n            \"6889801\",\n            \"-7512693\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"2488446\",\n            \"3102298\",\n            \"-476499\",\n            \"-2639540\",\n            \"3282590\",\n            \"6092430\",\n            \"-1675823\",\n            \"5601386\",\n            \"1196495\",\n            \"5499393\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-30691203\",\n            \"661960132\",\n            \"-1935743351\",\n            \"1575466801\",\n            \"256013883\",\n            \"1160657488\",\n            \"-777972530\",\n            \"-1493606470\",\n            \"486831696\",\n            \"-523869499\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1802142466\",\n            \"1751466925\",\n            \"1524761681\",\n            \"1127842279\",\n            \"1711088497\",\n            \"993428343\",\n            \"1169779239\",\n            \"1513015569\",\n            \"-1133724977\",\n            \"2014476536\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1960388178\",\n            \"1348475329\",\n            \"862499131\",\n            \"1640384591\",\n            \"-1548686121\",\n            \"-109978873\",\n            \"574685145\",\n            \"-1936942220\",\n            \"-828064162\",\n            \"-2111967247\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-10546471442\",\n            \"410574147711\",\n            \"-159310325390\",\n            \"-342068240706\",\n            \"268451689904\",\n            \"-188950021888\",\n            \"174863595081\",\n            \"75886283067\",\n            \"204533910683\",\n            \"-236375793932\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"395399290333\",\n            \"398808017348\",\n            \"470458425747\",\n            \"544514539160\",\n            \"106030474107\",\n            \"-220167092355\",\n            \"403504352884\",\n            \"-215936236845\",\n            \"157621638402\",\n            \"-84528308243\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-11872483439739\",\n            \"27198663837500\",\n            \"24092599125599\",\n            \"94647109181593\",\n            \"-25234549831778\",\n            \"18418685805939\",\n            \"-48015201340553\",\n            \"94192389246447\",\n            \"114313155048141\",\n            \"-8129249986173\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"77060681503342\",\n            \"-17103335031331\",\n            \"62085210064375\",\n            \"-4113774722062\",\n            \"-39621802698178\",\n            \"82862411524800\",\n            \"-80722206760975\",\n            \"-71853038428164\",\n            \"74451847897808\",\n            \"138561565698569\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"11425892925558\",\n            \"-1067102949941\",\n            \"-67195834692311\",\n            \"132254465032616\",\n            \"81094671882564\",\n            \"-16512810337582\",\n            \"31369523023438\",\n            \"-25612899826767\",\n            \"-92714617670958\",\n            \"11132766799365\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"31425051479846585\",\n            \"23658872883751119\",\n            \"-22841020643211561\",\n            \"-5901149141492493\",\n            \"-9081601009126169\",\n            \"2009456704881039\",\n            \"-5853653315964572\",\n            \"-17548466661612427\",\n            \"31243548103064502\",\n            \"-2990459100082881\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-12114077651218054\",\n            \"34893217784362181\",\n            \"20057977432890552\",\n            \"33560592225527770\",\n            \"-6087365862911550\",\n            \"35528436105980777\",\n            \"-18908989690611601\",\n            \"-23450050973056772\",\n            \"-24497468547358805\",\n            \"35295281517022055\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"7512947852738829754\",\n            \"1506648420706893967\",\n            \"5351706185125823777\",\n            \"-8979604389662071296\",\n            \"2474510455479584357\",\n            \"-979503341239819500\",\n            \"2879236724021058276\",\n            \"901640783116791589\",\n            \"-1968701555733090102\",\n            \"9048825040146306689\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"3527698479739214995\",\n            \"-9168040692056637587\",\n            \"4303558786305470137\",\n            \"-6434168737271011073\",\n            \"-5987724165431090257\",\n            \"-6342874047925994892\",\n            \"-5023544862753808662\",\n            \"8349405051483082410\",\n            \"-5427848340450674266\",\n            \"4416839962565899579\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"122719954361389244782\",\n            \"-1715029242671728269265\",\n            \"1046814468132539634758\",\n            \"1829993007839921437821\",\n            \"1961163586998902612001\",\n            \"-1718264963912709868519\",\n            \"-142775659012283376739\",\n            \"-227979474167608252692\",\n            \"-1284136730697963933939\",\n            \"-1188947702777815289337\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1540168519262718909498\",\n            \"1444272924270897021948\",\n            \"305426275834034841423\",\n            \"-2023121412074327344395\",\n            \"356123154623624533101\",\n            \"1851993497777674677711\",\n            \"-1548911725567051530406\",\n            \"-1688091710111258813903\",\n            \"547593933625451476915\",\n            \"-1136296230783566148328\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"93977861990199039012\",\n            \"-725203385003516503766\",\n            \"-2136208269275109184730\",\n            \"-1443758672222546024674\",\n            \"1770464701250178930017\",\n            \"-1503951609214983767704\",\n            \"580922121807638712625\",\n            \"-1715487409849159976347\",\n            \"-1581681782950208904546\",\n            \"-345107986036541695760\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-112509459909310806801713\",\n            \"-318071601726453617114288\",\n            \"-377093818504933877006627\",\n            \"-412251199154230320946975\",\n            \"14121963032451866972322\",\n            \"127959674785194294868765\",\n            \"274741358639653860200873\",\n            \"-10201412639728798865544\",\n            \"-484633295332684921844249\",\n            \"325728689994021020089522\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"102768059460000020082850\",\n            \"-582172705216901696514361\",\n            \"385654623152916059129826\",\n            \"-375444952943658610617412\",\n            \"-559762648769206534338228\",\n            \"-455225699143700230588676\",\n            \"414928288856671138989242\",\n            \"-239573759040735488345533\",\n            \"-151621506107277003038408\",\n            \"238527569805762630418752\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"105793826786409638098848324\",\n            \"-105930031172236153458218556\",\n            \"54215836825825339383685314\",\n            \"153999900608311376451254881\",\n            \"-60781620142763268768239184\",\n            \"129045242635307916195795557\",\n            \"142609636641396599505824777\",\n            \"25997822165486291786720766\",\n            \"-24843271142157773732898696\",\n            \"27667985603420108003309363\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"151727563990526262987631020\",\n            \"-153515663086836104138582144\",\n            \"34269843807095303273290014\",\n            \"116745487266501279093435997\",\n            \"19697558732934548814393639\",\n            \"116467090539752813149322652\",\n            \"-49597590215015448554625243\",\n            \"904912798075267997581911\",\n            \"-39665579024769081440226797\",\n            \"-148107902864927713797008511\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-83573886433003161782682974\",\n            \"-61690975717719632051567161\",\n            \"87221161283509159769937332\",\n            \"1424308408986182936520347\",\n            \"-97659156978716488999314621\",\n            \"-17069082270469318857712868\",\n            \"-81196418361561342109282996\",\n            \"89508773441843844208807904\",\n            \"144076371744089019894053325\",\n            \"46698503394106850398118272\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-4870804024939332050762868706\",\n            \"-7019153028274263100384076399\",\n            \"-38347116871041435121142912404\",\n            \"6752651380046831311117204924\",\n            \"32477977767491441764479499613\",\n            \"-17206384783392201002575380629\",\n            \"-27155762594673709466833763677\",\n            \"-7707471006910257215683844696\",\n            \"-12836204732773392557927387161\",\n            \"760807996077187416324370561\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-17307596853554170302945978542\",\n            \"-29291868274857325327495085418\",\n            \"39520334649804167187543012083\",\n            \"-29850376686502020869058128768\",\n            \"-7769023746550159417970381944\",\n            \"13728883947958157003762954783\",\n            \"-32237971097073321264822351426\",\n            \"5786340858732715593319648571\",\n            \"16603037987628417795944460761\",\n            \"23450906837191853879925326964\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-9980201576657945144842882236365\",\n            \"-7407461373350157855602680465891\",\n            \"-8849151930540839739287729740462\",\n            \"-2082450369562757904475450406520\",\n            \"5688213649545258906102340952545\",\n            \"8532260187438278666751588130781\",\n            \"-102084121821929763174388250038\",\n            \"7229993189261659865189536694418\",\n            \"6276298854863176977991964120714\",\n            \"1342743900941457696012670661953\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-2978344615310830117461734259477\",\n            \"-2947273335992494396678516995826\",\n            \"-5244820858348685929338162101277\",\n            \"-2640927544212422127465200234510\",\n            \"1768434382958061290101667511624\",\n            \"-3963482937808073490523756242168\",\n            \"3374307591928127235727040204209\",\n            \"-3382678138467009217749439169317\",\n            \"8801701051040866573946377274029\",\n            \"-9104355797002943521132479841900\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"8221768927807895270484160091896\",\n            \"-8900000026189067281738645101281\",\n            \"-8281746127211712061601232308528\",\n            \"3023240804949676140399638485768\",\n            \"-4102245491799843728882823944331\",\n            \"7251501339276578447235263420202\",\n            \"8751503650699867906907117450087\",\n            \"-3729506782195610335248190443752\",\n            \"-10033160781867769412699287534647\",\n            \"-1250783004758791761527983017975\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-2562167817474569120675956515425419\",\n            \"-2458571516901048848163704156892937\",\n            \"-36875395321508089748922725678113\",\n            \"1960304726616291730330575204501959\",\n            \"2055550886455178489271580894649114\",\n            \"-2358720546112845253144262770181075\",\n            \"1595191993485611135276028859826726\",\n            \"1566529993850113106475509726619617\",\n            \"-22596759305941524381058617032547\",\n            \"-498743035152497361574808016716787\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-47643018102478418616183822213670\",\n            \"-278640293644733515826236620350821\",\n            \"-1488199042811674371836519886289180\",\n            \"-818674521344108691664748392501099\",\n            \"2556172025333762565075594479138752\",\n            \"-1334377085385061017822352624180696\",\n            \"-2000158271833880683895816854711292\",\n            \"-368140045799924875460317772104607\",\n            \"-1585782388250425609895544646403971\",\n            \"1824564753054254497659039848918675\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"479525603135366804733516578850615870\",\n            \"-495446691382547674716309382436075953\",\n            \"502812585466542988435075354889645892\",\n            \"476416535889813426699310670064638917\",\n            \"-379315281173603247308987567117630647\",\n            \"607404279943635423469568736054452550\",\n            \"-629067677540132407295995323971248814\",\n            \"-62158935415489079301126585948586031\",\n            \"461986658609980837096262131134918226\",\n            \"-589275703863823715586136613904443930\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"435625147644630830418626494902722848\",\n            \"-478332198115914941416962365458575509\",\n            \"558636662901555390631163102871642769\",\n            \"355599683788663730974008140088569567\",\n            \"415606584067363911029530290237838841\",\n            \"398064603694355571202936926109341982\",\n            \"-633945976114528848016756385029022841\",\n            \"457577785385893587465074783208649049\",\n            \"-616523624972085533886453431515327099\",\n            \"-248511133054735912122810606062669023\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-57306327392984906276930890383185368223\",\n            \"72793461807811385650658673069344386369\",\n            \"-109687531415068367399736525485032846349\",\n            \"60356410425087146413082196521754844149\",\n            \"26662652717210939669243284822836719981\",\n            \"112603258741679461947852680773641769673\",\n            \"4457422288602224460620455185955042948\",\n            \"103794515803470385910175949232361042030\",\n            \"-119185317915451074176129503358012831945\",\n            \"65467100518198811141064173626789800823\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-68618397724637272526572961589871509577\",\n            \"7721187761487257785999877840186156513\",\n            \"5605947584439501391665551914895560442\",\n            \"68369687165773392157960709162408033710\",\n            \"-96656920099210957452259257889912964672\",\n            \"-94072454264796947158929675025216943665\",\n            \"144069747100296579445022554416200691423\",\n            \"-87560734517757835226646920956502241626\",\n            \"-136164322966740604273148909571047647101\",\n            \"19429304069228502711385669535598831748\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"68390208110339728548757304121957739423\",\n            \"51149440950819465758183122582606174618\",\n            \"12265984607323358363395800066794656038\",\n            \"-150000242236153252396886212934934551728\",\n            \"122779026475879408492238567997677881221\",\n            \"131874778752322502170775011108192661329\",\n            \"165901435173219254996114701417463409790\",\n            \"-152003734738506573690620489933044183326\",\n            \"156016528459691385523457640405842540870\",\n            \"-74618395994120066096952180078019949350\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"23815\",\n            \"-30659\",\n            \"-17127\",\n            \"-19868\",\n            \"13628\",\n            \"31416\",\n            \"18133\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-22400\",\n            \"-14679\",\n            \"619\",\n            \"32351\",\n            \"-31747\",\n            \"-7719\",\n            \"-29774\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"3520430\",\n            \"-8276056\",\n            \"-827609\",\n            \"2153003\",\n            \"178182\",\n            \"-4215376\",\n            \"3779312\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"3689483\",\n            \"-735347\",\n            \"-5360898\",\n            \"-5764362\",\n            \"4660427\",\n            \"-7905626\",\n            \"8154092\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-706829888\",\n            \"1167156309\",\n            \"1518125729\",\n            \"975860423\",\n            \"995194446\",\n            \"-1865080408\",\n            \"-665865487\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-1701907448\",\n            \"1352934836\",\n            \"286059016\",\n            \"-1400717695\",\n            \"-452649966\",\n            \"-1922657966\",\n            \"2070417333\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1935351572\",\n            \"765282566\",\n            \"1987622027\",\n            \"1741583735\",\n            \"932400011\",\n            \"167151325\",\n            \"-355472668\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-396859212345\",\n            \"-358864231013\",\n            \"411692595169\",\n            \"-32032800170\",\n            \"79797592838\",\n            \"494642730187\",\n            \"482700694650\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-94529105733\",\n            \"-481091693177\",\n            \"317977953065\",\n            \"427273590013\",\n            \"-227681357693\",\n            \"99285197947\",\n            \"-49749811753\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-117118949406128\",\n            \"-16338400756989\",\n            \"121098098144191\",\n            \"17786074861365\",\n            \"139116588792903\",\n            \"-104900603769656\",\n            \"77460829002909\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-64152968257972\",\n            \"81807906354014\",\n            \"-9962726454967\",\n            \"86559569733926\",\n            \"-10083720575770\",\n            \"-14825156695938\",\n            \"-122499888153949\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-133378720489228\",\n            \"-59578984792077\",\n            \"48240930882493\",\n            \"-81399868956224\",\n            \"132623478058564\",\n            \"-17946185246720\",\n            \"108220579003501\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"27603984537822762\",\n            \"24285467590617142\",\n            \"-24610833591141255\",\n            \"-13707671138044065\",\n            \"-24079809168036321\",\n            \"-3426285774015157\",\n            \"-16661207174485960\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"25341970114930753\",\n            \"-12578463204570261\",\n            \"-27319367490414208\",\n            \"-27862145691252063\",\n            \"-9374098211284058\",\n            \"-224593245961164\",\n            \"34774375621000453\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1508260868549245163\",\n            \"6273375209195432213\",\n            \"-9078384653770555315\",\n            \"5236211367446183278\",\n            \"4843815885489957283\",\n            \"-2504671565165730378\",\n            \"-8947215402970277018\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"7409921464496531061\",\n            \"1356029422123982187\",\n            \"-1364654770344853581\",\n            \"8837499222236300067\",\n            \"5132751121490100122\",\n            \"-502781462678344483\",\n            \"4467369067622920214\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"2154925127820502346293\",\n            \"-1306492928287846607375\",\n            \"-278826605081884366316\",\n            \"882916332012524932211\",\n            \"1867667626776166611792\",\n            \"-1257524031015343087488\",\n            \"994948667658237479955\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"539210603887413500119\",\n            \"-1351832695016986241156\",\n            \"-1062904294743508083575\",\n            \"1450483825798880009652\",\n            \"-881626741922698995815\",\n            \"304292780803779267384\",\n            \"-371319374125766711584\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"243226565466619142907\",\n            \"-121955990464408141742\",\n            \"-636816055580076932255\",\n            \"-513308924855956320428\",\n            \"-1586486017550068684983\",\n            \"-197644649227952900350\",\n            \"1748345750409685925848\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"202061337421568637115802\",\n            \"185405094041080393854566\",\n            \"-147903622544387135396853\",\n            \"207229453925763208622831\",\n            \"-343183304767942752569844\",\n            \"-263692037517810930229757\",\n            \"111266436442025136177952\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"36355222093341524385642\",\n            \"218768782508355752146729\",\n            \"-200541398482024855947446\",\n            \"28474517856269610750246\",\n            \"-475859723844988539708245\",\n            \"-300510275404419103333742\",\n            \"546674288910101331332936\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"3601936927556237989024608\",\n            \"-3692430919094941422100028\",\n            \"97748690453108599708927434\",\n            \"-116661353115321540714375347\",\n            \"-71879985746676902756048669\",\n            \"-121080329577202994807755612\",\n            \"124157596086231452131087011\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-121811982953161783629612240\",\n            \"1607554249264877581531325\",\n            \"123072061986545439633145\",\n            \"-73550837036916705784352874\",\n            \"-117419921478539398829685153\",\n            \"-74399538740549801431316551\",\n            \"-53072519800681711726312500\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"128436901337483555656980766\",\n            \"113598952940587548025391029\",\n            \"88411366081005561182297775\",\n            \"14815457804520490927167142\",\n            \"75638196408599796922678025\",\n            \"-108087849560548352593752169\",\n            \"-11833635007482033712808763\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-6781678961533213012517697687\",\n            \"33224612367898641792526203105\",\n            \"19741448595364719290571423993\",\n            \"34895232778404370472470020141\",\n            \"12658156696934366509236475832\",\n            \"-1339988824059695372854332699\",\n            \"-15240202918093452204022855813\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-23304905447440712184522177464\",\n            \"38854699585363157300282622119\",\n            \"25197020277731879349242146247\",\n            \"37654843997064076575431679106\",\n            \"-37694332242432992461842973886\",\n            \"38735096335824029183056699705\",\n            \"1113712061187242088526216287\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"4872842181239913302717185661993\",\n            \"8110981189886162420036583272468\",\n            \"1846154365393107878136252015134\",\n            \"-7355182167045667821268714569976\",\n            \"-456342272099675035018815637968\",\n            \"-4741310371570496786057876108775\",\n            \"8692654330279187212246590575934\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"789321336877871879752144980182\",\n            \"-3592030043211469330492425640956\",\n            \"5543560868004228342173534568596\",\n            \"-8310481621300119615028360910615\",\n            \"7240613238493658400891584464926\",\n            \"6698325613041346941747416888641\",\n            \"-8117880941116130680718189365519\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-3557820883496744079071315236925\",\n            \"7037071399112810484115914176160\",\n            \"-1767092291265591600640701935680\",\n            \"-6045295616444022343488779010934\",\n            \"9259710329844166183361141015059\",\n            \"-1492876309663740055714983855690\",\n            \"-8427791476065938140828199154822\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1158759477908482981738237800163588\",\n            \"-1173316691740305096863218708950191\",\n            \"723215252639660437402175676963743\",\n            \"-1879559334466643497978379903607782\",\n            \"1983927892969038400024936381013185\",\n            \"1149553546691385176645909195969356\",\n            \"1166342561375174956477479521466108\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"626529133445278098702551621416112\",\n            \"-1408837087511730448581596972023260\",\n            \"1906905437026049050822161959468707\",\n            \"-1929693317190147781992957517985541\",\n            \"-378172107382327021537808059758513\",\n            \"-2104995076904948347049313544321337\",\n            \"1294253937974735117873956527399622\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-523256123496869429061522979056899046\",\n            \"-18365757383114987172474795440552034\",\n            \"-204316577987191697375229787073710633\",\n            \"330181965802203666233116582657210837\",\n            \"-329328597335009708600913451090602124\",\n            \"203539490982126102130410391161030455\",\n            \"417738506604065828522825064729683710\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-321000364277288528283109856107655940\",\n            \"580137014281216496641049610076428712\",\n            \"-624714144804715993809991357206356781\",\n            \"-407262969746696369705355949281205801\",\n            \"481317944191441079472434015349123595\",\n            \"217536632380375131817558978089536953\",\n            \"481697272008029766433028053959999813\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-144116647597826623855199496157914248857\",\n            \"52208802527320772539382939270524160714\",\n            \"-150911491870745668133846108351239739078\",\n            \"85442639480033500108059636873587453266\",\n            \"73892340483729688596932981784301693030\",\n            \"-21983833769824359378093314118115605654\",\n            \"155791999129521894360881202697471787485\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-161222642718655133616350033662785590309\",\n            \"-144401176588064295883792554624730874458\",\n            \"-152972600928373921945993474844975784915\",\n            \"-138536917768299990575075582087577539387\",\n            \"-162776200467637379804062098437779005139\",\n            \"49042684400063856845441060397203950029\",\n            \"95767276168967643036870259756918109375\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-39863797120385387096682208969556052403\",\n            \"82559022270581885556475272207184980799\",\n            \"117510934395578824951787214497627148540\",\n            \"-83476646270141960487173091399240016205\",\n            \"-1758233846624033403425881485773452965\",\n            \"-135007718267876949864445576181493416395\",\n            \"-141767357710928769494049512437739952119\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"31322\",\n            \"-12998\",\n            \"-6668\",\n            \"-18050\",\n            \"20870\",\n            \"7407\",\n            \"31517\",\n            \"30964\",\n            \"-19025\",\n            \"-26502\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"1882\",\n            \"-19708\",\n            \"26796\",\n            \"32398\",\n            \"-3699\",\n            \"4487\",\n            \"11540\",\n            \"13472\",\n            \"32388\",\n            \"-24551\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-4766986\",\n            \"6654828\",\n            \"-7036686\",\n            \"-5243986\",\n            \"6660194\",\n            \"4688952\",\n            \"-6565312\",\n            \"7846449\",\n            \"-5876806\",\n            \"-491641\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-3816976\",\n            \"-5268710\",\n            \"-1742516\",\n            \"3856652\",\n            \"4463747\",\n            \"4089790\",\n            \"3013827\",\n            \"-2806363\",\n            \"-5993564\",\n            \"-4334975\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-1939111885\",\n            \"1089839138\",\n            \"-423110561\",\n            \"-238112023\",\n            \"-1060805567\",\n            \"1288567695\",\n            \"820382341\",\n            \"-1689688269\",\n            \"966765872\",\n            \"-1935608267\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-806572859\",\n            \"2123921205\",\n            \"-1951507311\",\n            \"-1152859862\",\n            \"1529442938\",\n            \"1573780525\",\n            \"374401763\",\n            \"835164738\",\n            \"41728321\",\n            \"761957516\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1756123501\",\n            \"1520929506\",\n            \"-284683124\",\n            \"1144653924\",\n            \"-552942804\",\n            \"-2120298060\",\n            \"30126814\",\n            \"643208321\",\n            \"1693512950\",\n            \"1968260177\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-543650305893\",\n            \"-278464771584\",\n            \"-373909651582\",\n            \"549153445885\",\n            \"-242295101951\",\n            \"491322040017\",\n            \"-328958769652\",\n            \"-24343088729\",\n            \"379399746035\",\n            \"-103071495012\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"445831171065\",\n            \"223984208224\",\n            \"183764160166\",\n            \"489898253722\",\n            \"-352256812260\",\n            \"132712896758\",\n            \"-213452847196\",\n            \"-458421076936\",\n            \"-337947454298\",\n            \"-466450812833\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-124879858110290\",\n            \"135519222186375\",\n            \"85699747562265\",\n            \"-85042659127554\",\n            \"75573515688713\",\n            \"-58488578730867\",\n            \"-41028103971674\",\n            \"50130623698029\",\n            \"-47534808179200\",\n            \"-74283087483722\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-108796237752434\",\n            \"-77267431737175\",\n            \"51570892952731\",\n            \"95335199636762\",\n            \"-120149530213851\",\n            \"65347251353625\",\n            \"-20627278920101\",\n            \"-88198554155288\",\n            \"-7858756951448\",\n            \"36719638530326\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"37989750263669\",\n            \"-7110474133358\",\n            \"-8142079359472\",\n            \"-109838866716358\",\n            \"-109570651345817\",\n            \"-54071131597599\",\n            \"-5091765250455\",\n            \"-88967218959552\",\n            \"-26610598798817\",\n            \"135506189432092\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"4927887103256557\",\n            \"-18754894942080393\",\n            \"-4912007726659186\",\n            \"21247575662236694\",\n            \"2797426944150268\",\n            \"-6616351412144510\",\n            \"-11858257489510497\",\n            \"-23188104958701432\",\n            \"-8877819571973802\",\n            \"1148489375738940\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-7825477566817051\",\n            \"22013917265275897\",\n            \"7697670787874498\",\n            \"-9332621858164545\",\n            \"-2912282090647944\",\n            \"22112963575670946\",\n            \"16681702598755920\",\n            \"-27753683646566454\",\n            \"6945904955659446\",\n            \"2442936651087792\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"7675767189136958218\",\n            \"4376177190988076013\",\n            \"135914493625679976\",\n            \"135689732946467188\",\n            \"-4157597916871123429\",\n            \"-3202587243297732574\",\n            \"8570927145651867846\",\n            \"966150880672931514\",\n            \"3340433868757095215\",\n            \"5044440160311120876\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"5133284943736156946\",\n            \"4845520967720236486\",\n            \"3808412010600114265\",\n            \"2390070001401807490\",\n            \"-2075341331489173819\",\n            \"7269598711719193440\",\n            \"6639116030361989708\",\n            \"3990965590531735058\",\n            \"6049354888289615042\",\n            \"4801937515511789680\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1064355765009099408700\",\n            \"-321943498165958622892\",\n            \"1201671142156144011576\",\n            \"1520237466996047474259\",\n            \"-58924034610474786199\",\n            \"1188600272040920538189\",\n            \"1973243532799526539431\",\n            \"-1589754043423107159161\",\n            \"1069084636593819465866\",\n            \"-2225914539586890120093\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"612790270140756043932\",\n            \"632096876907248352897\",\n            \"-614445606437892415535\",\n            \"-1538574921109377688884\",\n            \"686539122267683104890\",\n            \"-176896054618733272731\",\n            \"2112326625855675905778\",\n            \"1807700217188087573935\",\n            \"2250554304073443683530\",\n            \"2138601425060065078780\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-2178158937595239087007\",\n            \"2148658261965542925597\",\n            \"-1786860273154704658204\",\n            \"-2284942685968830599534\",\n            \"1135179943332399887722\",\n            \"-1850089368721794824531\",\n            \"-2107516150972307207136\",\n            \"-898833291339509074760\",\n            \"-1560291136165671096302\",\n            \"635830273331647493827\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"545257608208761234784401\",\n            \"-478027394265681567220331\",\n            \"23160102878411060468572\",\n            \"169851178877058380224552\",\n            \"-125063444295476267854414\",\n            \"-511661104901652851551160\",\n            \"-211091539176940271013432\",\n            \"-260892604441446245832984\",\n            \"334071806187190766343296\",\n            \"225652640236774742401805\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-125435440033823628710650\",\n            \"134873701855643950966740\",\n            \"-327244905598551933045573\",\n            \"392112435242139096124146\",\n            \"-392770190944746034104800\",\n            \"-444456098660755532238056\",\n            \"1948570436020667687581\",\n            \"334511617766662717840293\",\n            \"459630175785578568834194\",\n            \"295768689726958240598895\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"110764581191900446903790037\",\n            \"-142251040052070922679906758\",\n            \"4521074766144521546724589\",\n            \"-77954834062755231010987947\",\n            \"132206695009844374949071160\",\n            \"-115611166334940287023117326\",\n            \"65706530528500814014886945\",\n            \"132926781394523064114813219\",\n            \"56946888735676586779415707\",\n            \"44978068193037238045912896\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"79398695417455848981455196\",\n            \"41296350950824030267042588\",\n            \"-44890473232271813368854431\",\n            \"-93845863653461695811544157\",\n            \"-87673990780796119057141077\",\n            \"-79728712608821225741329213\",\n            \"133650017782788394397592147\",\n            \"-113944397482899885204627134\",\n            \"8147591003946322262360118\",\n            \"-88347016701263595509923031\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-97315706287462853410250215\",\n            \"-19297884994476314092921079\",\n            \"-138156245563462225217055556\",\n            \"140082648536915847982187381\",\n            \"-116717372906786739105728127\",\n            \"74725068650981797124372774\",\n            \"115115819529181418953999340\",\n            \"-104692994218324284120901952\",\n            \"-9339214268717197582310194\",\n            \"34586415164615511096229871\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"30452540938400888864313250312\",\n            \"-2802879378440933700326909109\",\n            \"-26896580846052300048510748778\",\n            \"13956100052440828740572023117\",\n            \"35092158772914033116097802591\",\n            \"33847590995690391053397721124\",\n            \"-6872021573016953238017942938\",\n            \"9337504336202853974096101152\",\n            \"-8139564364961519011852381841\",\n            \"33614459434990180894524889482\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"37905470020515740655644953427\",\n            \"15095043730643435565566661915\",\n            \"-16054339514326668180752045709\",\n            \"20206326378427568201157613061\",\n            \"36409538996611392332800791135\",\n            \"3986926868645572538910763024\",\n            \"3619435534252705282359941231\",\n            \"-28939638180493501947435665546\",\n            \"27752306518932422634994807389\",\n            \"5299661533164103665947907747\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"6105089286518535143859193272997\",\n            \"-1558013028566094088457684756095\",\n            \"267447018904579079104631493606\",\n            \"8716274064389440981111441588450\",\n            \"-8523502283934172783824252808972\",\n            \"7211587162269446695523784988664\",\n            \"7349202932851786545780603930347\",\n            \"6835046636946129018720692573076\",\n            \"-8333744634109651799888167347108\",\n            \"-2544747380910102910856810717389\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-6352412655736206068742730200924\",\n            \"-2123175620394690676305322433458\",\n            \"-8836382719876284105833993896413\",\n            \"5250128511200984854060353093256\",\n            \"10117785086990984372555197700371\",\n            \"-7553019007793539065221400188849\",\n            \"487332886938332402116864111164\",\n            \"-5531527231691294946689230570557\",\n            \"2033195130458534180764526511590\",\n            \"8418380572809691654984623098184\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-50075375212232172188420411196\",\n            \"4809924043195256813690822020596\",\n            \"1275374378747394211129459178045\",\n            \"-5194775733165378826646329523658\",\n            \"-8899088366764662523040904888258\",\n            \"-7065161673811581445863416064724\",\n            \"3448352081115495266715396247033\",\n            \"-772423708139560818203910008799\",\n            \"-3716422423592581053204772584415\",\n            \"-7073723704623872354556609478292\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"1662201874412358678818367544757313\",\n            \"767632843116354510741172561523193\",\n            \"-2574598778497120728925932302019195\",\n            \"822408943008991309024189274780663\",\n            \"1442207677524639837617120203090781\",\n            \"-2329938247319978136011213385811089\",\n            \"-844653930290095052875421889147387\",\n            \"597209484634644162562668851350801\",\n            \"-1653776464297020640113550379942905\",\n            \"1712355361051968314047230183856759\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-934154790921317246804917189844883\",\n            \"2011996172621693547547251717415199\",\n            \"-524198925581653076023930890792205\",\n            \"1460963164679956289335063949063860\",\n            \"916547324738412638652836279760881\",\n            \"-2181480489373236251201848006843613\",\n            \"2227194053359186942441098677400067\",\n            \"-2070283524814069666316978457528190\",\n            \"-2557886824011973362420531382315055\",\n            \"2359841497596077952056722100997103\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-244737191158099062140625546830357355\",\n            \"-558098781397099000894773898031616911\",\n            \"289872866815248801825838878888401974\",\n            \"92794478567836555966241203902901710\",\n            \"244269753519144613414831030049656050\",\n            \"488344310874378240044622887144568360\",\n            \"251880555776188717959293063210533656\",\n            \"650424241144052628672668970511093431\",\n            \"-490149649831311456535113419187895360\",\n            \"587815026061852779759502140522870365\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"372180445289567816296974210709998262\",\n            \"649322101444650143089117190099040098\",\n            \"-261315503489678515225280175375928660\",\n            \"-522083930998546622308238829319416419\",\n            \"142235256333754647127831983081551205\",\n            \"-166535174840652571060843789537974209\",\n            \"-466105320259826015444363036165976483\",\n            \"385149522321114928821540160206410292\",\n            \"-41443525693038526295999228480843805\",\n            \"-313051347741978666120077422667886094\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-167439439468877308797697749268322963993\",\n            \"-28242537581789671178678277260561674281\",\n            \"130587384617519710400745151774880402494\",\n            \"31589263496961519660807111701435015251\",\n            \"13326683789176912862324807380879018213\",\n            \"69851378199071338355039736806394653047\",\n            \"59447861241933516870558227322235615556\",\n            \"125427854769440091466924747763902774485\",\n            \"113841414377172020356030816155031973980\",\n            \"162459891215489371457804173662865844603\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-9113228729168889224553302821519848527\",\n            \"147906368719665671855384750115565399639\",\n            \"142408267705249397493244319994103808727\",\n            \"-158173827712728250139318830913214547586\",\n            \"90457292148533516388688156622880399300\",\n            \"-28762317200208469682474790209657754600\",\n            \"-147267994027501072294873134903092981782\",\n            \"73349578944467970931133887330177437829\",\n            \"-109559717261425791283100898451546302168\",\n            \"118124046303323736396291668012601665112\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-92141949280218575485253751932496543626\",\n            \"138068266350197970395619500727113936796\",\n            \"-57057880351028370035446451706682228912\",\n            \"140046511005251583337314294112597416965\",\n            \"5313615659947632571000091701353480420\",\n            \"163618210678848808873963839458536967363\",\n            \"-83020522347645062930841470958792915560\",\n            \"103388812228278752501831367543501892798\",\n            \"105919923091739023980005477488419598090\",\n            \"-15642676827816127683186187091061039771\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1173\",\n            \"-25049\",\n            \"26985\",\n            \"-3279\",\n            \"-32375\",\n            \"11902\",\n            \"31640\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"23711\",\n            \"10618\",\n            \"1182\",\n            \"26210\",\n            \"-29042\",\n            \"-26592\",\n            \"-32390\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-3383836\",\n            \"-330331\",\n            \"7170648\",\n            \"5645424\",\n            \"5519488\",\n            \"5932048\",\n            \"-2721797\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-5680425\",\n            \"5530032\",\n            \"8360972\",\n            \"-1579435\",\n            \"1281443\",\n            \"4742079\",\n            \"-5190818\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"791809523\",\n            \"-1726831311\",\n            \"-306766525\",\n            \"1510344688\",\n            \"1557526531\",\n            \"-711666607\",\n            \"1285681573\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1588122426\",\n            \"-1825651554\",\n            \"-854908281\",\n            \"-1682899390\",\n            \"-386907059\",\n            \"1124699281\",\n            \"76032732\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"21696611\",\n            \"1114662058\",\n            \"-398379994\",\n            \"-37751028\",\n            \"-1858929126\",\n            \"-1571912144\",\n            \"1357766028\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-207926907151\",\n            \"-108845084422\",\n            \"483890046680\",\n            \"32829509085\",\n            \"276444998455\",\n            \"254643057519\",\n            \"162285997419\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"51727593810\",\n            \"-334061936348\",\n            \"30150675407\",\n            \"-331201335155\",\n            \"-501714900752\",\n            \"122994273993\",\n            \"-313427617689\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-38665729792403\",\n            \"113150504075646\",\n            \"-13283184519777\",\n            \"-122268737353293\",\n            \"7114949849358\",\n            \"-76982898428076\",\n            \"63703755155967\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-631968410916\",\n            \"-129868532669274\",\n            \"-138633149135123\",\n            \"90053223046351\",\n            \"130107621630474\",\n            \"-126528386107052\",\n            \"39830786351675\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-36266273353597\",\n            \"107910261195518\",\n            \"57616988744255\",\n            \"44429564088387\",\n            \"-52991708070673\",\n            \"18856755200112\",\n            \"-88910410722229\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-10733019451407946\",\n            \"-4637031550251259\",\n            \"29038597614687455\",\n            \"-2255766756551662\",\n            \"-6357871065260787\",\n            \"31141018628250396\",\n            \"20316885381831172\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"32276626527716918\",\n            \"1143035765853136\",\n            \"-35727015302634840\",\n            \"-26484971152317146\",\n            \"-32859967854440443\",\n            \"-32563301944872556\",\n            \"1238987785486865\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-8755802922599672235\",\n            \"-7396181851925542211\",\n            \"6711186749545114591\",\n            \"5590049579316174533\",\n            \"-3165569916335790183\",\n            \"-316326350454384555\",\n            \"4929314904948241377\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-397606177624923608\",\n            \"-8426436663324202280\",\n            \"4326137699230271144\",\n            \"6586316848218801011\",\n            \"-8091380893667926501\",\n            \"-893221278247799034\",\n            \"3462259882527377933\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-123690421269484703760\",\n            \"-1267016901460774922921\",\n            \"299161792651827136146\",\n            \"-1604897520961911844593\",\n            \"2037882344461012186736\",\n            \"1195943811863661819614\",\n            \"1207132107388937164804\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"2101648800869166208330\",\n            \"2274724666892686998217\",\n            \"-391260607449403060721\",\n            \"-539342914187070082276\",\n            \"-1440115909019570656078\",\n            \"1971609407978951853616\",\n            \"-1123962484080572650793\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1226504478266363310149\",\n            \"-1336799843493576778914\",\n            \"-1930283161332942670068\",\n            \"-1331434065508788145751\",\n            \"-2246411720300345670491\",\n            \"407117263123141212856\",\n            \"1931974044378992306595\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-361522891823295867238478\",\n            \"523641781996221269629669\",\n            \"493463729381734013522117\",\n            \"132573578585472506680774\",\n            \"94595327070388358792040\",\n            \"-475960519364994802696270\",\n            \"-400496792855539234277056\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-83327604823851708214213\",\n            \"-21750678079158391741287\",\n            \"303079990127928613453200\",\n            \"221033538070216052397251\",\n            \"349922191060743894146041\",\n            \"373614674984738281954995\",\n            \"35960928414177633291510\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-35263044120328302148125905\",\n            \"119902294752181475961380716\",\n            \"-143462823401917067325450150\",\n            \"76224465900409165961186326\",\n            \"129425531295697896902175651\",\n            \"71961437570078598659959749\",\n            \"-50542941964441222281681861\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"21273851514521946688339521\",\n            \"-114682664467937571727316318\",\n            \"-87665586498201782141883102\",\n            \"-37148627339581480801973740\",\n            \"148715674812065621394995997\",\n            \"-11949810986329503823448971\",\n            \"19902828440769121844807521\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-82305650498237902006296677\",\n            \"13405144161056810438291528\",\n            \"-55538748559515558770298655\",\n            \"47675008502605479352214681\",\n            \"144416507011350857414309005\",\n            \"29779427576479727347932773\",\n            \"76124247118585246765896254\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"5201245639226497436237918218\",\n            \"32394407131966840913830741879\",\n            \"17275077614546392015968733648\",\n            \"19680639349359359322458447337\",\n            \"27317116065055333169824937849\",\n            \"-12746107751769296292286176888\",\n            \"24689167759685843386070714338\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"10674526914216998427441154557\",\n            \"-34360582954885045536029895204\",\n            \"-30414741650041537218707792172\",\n            \"-36100155712815379900420808706\",\n            \"-9135627534401552379066184552\",\n            \"24739179676383158523222359862\",\n            \"36247531023134689615999840678\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"7728506401956815228532038088763\",\n            \"-2837122511678749937658222392985\",\n            \"-5052751030412737719634091683608\",\n            \"6267848105390862826653603709957\",\n            \"-7256424895588253047138206019502\",\n            \"-1465562444156137793663621199168\",\n            \"4747031647779859427140201067878\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-4615761627649385445936725928202\",\n            \"-10039625391960422316333169130120\",\n            \"-5864157091799713513469653318184\",\n            \"2127816811402154227868729483435\",\n            \"3887900797372126787242346200516\",\n            \"-1886685381966172685286274273546\",\n            \"2174897160271324780574975683648\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-8147543028570098325830702033212\",\n            \"-8166347530503241567728663732295\",\n            \"-2400152589461801277732655340968\",\n            \"5816370023067145183233116808816\",\n            \"4507165196511235167888642848780\",\n            \"2286027903888132217006101817455\",\n            \"-2479439547905569438663575023840\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1828555317791876329482620856869918\",\n            \"-1789881062592639492432854851944912\",\n            \"1997518813798357124855744528406909\",\n            \"1983001417735981157064295426331782\",\n            \"-469859785106586780643284066769335\",\n            \"-299069863301987956957383980507514\",\n            \"1236379623573944194394212606448257\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"888629009780912538325980386511617\",\n            \"27717296778921441430770399511331\",\n            \"-1037544761462996724025231718395229\",\n            \"-2569726393180105871878430433407165\",\n            \"1050434002808238746161893184408066\",\n            \"1631428512670349250299644326318484\",\n            \"-2300221672111018999696902542660406\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"117708577531638404447859755168996138\",\n            \"499980650229427236421511725860459336\",\n            \"-11095778332866038210737561230496935\",\n            \"-545351732363151371037809309111972618\",\n            \"-247593431450103821518249361274651770\",\n            \"-237793299013077356563098927682674357\",\n            \"390680910028520326666704921002649497\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"451974522107762371225049594944291931\",\n            \"-105576308356387969354658158113358895\",\n            \"131444584597404940972776636357533837\",\n            \"511081773875049253533205440188898072\",\n            \"-152320758908721137229679446546078860\",\n            \"440168332116421922278190781376074082\",\n            \"422466258163678281216225964929359699\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-157339119467114553152239726866392495\",\n            \"116897764313121017716807765578012098753\",\n            \"74820773589003012395258853673597787962\",\n            \"38832900549006200655588104913719049413\",\n            \"31809184412064166455927543375666243747\",\n            \"-26330135739473810705643960803773520617\",\n            \"-118932439894932248602393041154357721181\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-25109297380056962038867001208740287232\",\n            \"-41675596142284332174303529214392893663\",\n            \"5630763719989167974840000823279633369\",\n            \"160052832392163305375298352935547628724\",\n            \"4354500338288930103695848603658025851\",\n            \"-79240341020657408457197673660870174461\",\n            \"-105142963009963436353607279364134642269\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"98982080008354791864222553245931141612\",\n            \"-14255476744570986458215294770192518639\",\n            \"75075249011469661237617297182263259411\",\n            \"9960334250615541536807663596098652831\",\n            \"77610568733923384998121313535231559129\",\n            \"-124628932104686355631960480356638386284\",\n            \"-54909581662559425139035632209125077908\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"3832\",\n            \"1722\",\n            \"16659\",\n            \"30179\",\n            \"-24098\",\n            \"-17484\",\n            \"-18903\",\n            \"26194\",\n            \"-29015\",\n            \"-22705\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-28693\",\n            \"-22191\",\n            \"-31428\",\n            \"3880\",\n            \"2222\",\n            \"29307\",\n            \"-1198\",\n            \"-17255\",\n            \"-8873\",\n            \"-16187\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-3944372\",\n            \"-7965251\",\n            \"776136\",\n            \"7478406\",\n            \"479063\",\n            \"-5101226\",\n            \"5809084\",\n            \"581754\",\n            \"3714208\",\n            \"-78676\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-2197720\",\n            \"-5978443\",\n            \"6040915\",\n            \"1115058\",\n            \"4078042\",\n            \"256907\",\n            \"93983\",\n            \"5378385\",\n            \"-2933287\",\n            \"7437051\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"461104817\",\n            \"-336460791\",\n            \"-1866209508\",\n            \"981614060\",\n            \"-496512504\",\n            \"-1842967640\",\n            \"2028811575\",\n            \"-108083496\",\n            \"648817093\",\n            \"-911531546\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1855062455\",\n            \"-1848423958\",\n            \"-417919719\",\n            \"-1550324221\",\n            \"-226454251\",\n            \"1897143013\",\n            \"-1816207352\",\n            \"-1890930858\",\n            \"-1050656588\",\n            \"1380332427\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-125228080\",\n            \"147425902\",\n            \"-1803257123\",\n            \"1133430594\",\n            \"1104179937\",\n            \"-1155651362\",\n            \"930863958\",\n            \"-1372345558\",\n            \"204045790\",\n            \"325493759\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-43969925332\",\n            \"-423782533903\",\n            \"410599621485\",\n            \"-384348480285\",\n            \"410563996751\",\n            \"420331896854\",\n            \"-451260071343\",\n            \"-239682713334\",\n            \"258658798561\",\n            \"-490359578846\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-117878031314\",\n            \"160469154039\",\n            \"265139111256\",\n            \"479577383616\",\n            \"-359749140482\",\n            \"223868593231\",\n            \"-322904355205\",\n            \"350722353309\",\n            \"408233732665\",\n            \"297350052059\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-11402130119583\",\n            \"115585152210399\",\n            \"109875950346614\",\n            \"-26937162370986\",\n            \"81368062928951\",\n            \"-101279737882071\",\n            \"-79021567150608\",\n            \"33691525873326\",\n            \"94018510142332\",\n            \"110175572468354\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-10950828627484\",\n            \"-45009616517875\",\n            \"-33740390224925\",\n            \"14272990246117\",\n            \"-77929003338940\",\n            \"-102300441781475\",\n            \"-88070246222892\",\n            \"46505217555818\",\n            \"33852556004566\",\n            \"88581112696689\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"120432203274419\",\n            \"-15955787808560\",\n            \"34948631108647\",\n            \"-15994595995724\",\n            \"-27803388562197\",\n            \"-63066930361908\",\n            \"-3386645943750\",\n            \"41101017052909\",\n            \"46443568439036\",\n            \"-130299379020281\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-31001354878037938\",\n            \"-760641451157916\",\n            \"-4527935698981333\",\n            \"20422875389727418\",\n            \"-25561171622510273\",\n            \"6859613823629514\",\n            \"-31967296838595675\",\n            \"-26772749609822819\",\n            \"35113008647366866\",\n            \"-21247928407771622\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"16605450096694934\",\n            \"2713804935498894\",\n            \"3748040022825592\",\n            \"-35884925413042953\",\n            \"-28842895601915851\",\n            \"5002209115350832\",\n            \"3529334705060475\",\n            \"16112399859517651\",\n            \"26710552206102001\",\n            \"33271555054113480\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-6948678853416573641\",\n            \"8088096296940258606\",\n            \"1788919402499424939\",\n            \"-9045098789632663964\",\n            \"923217667787488454\",\n            \"2113233926511753642\",\n            \"7674437743867941425\",\n            \"-5483523786006335142\",\n            \"-4901566326841744867\",\n            \"-2159924707245153950\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"7483952831904713529\",\n            \"3981681156262502150\",\n            \"1574702197696520191\",\n            \"30404321841739229\",\n            \"-16526697791658885\",\n            \"-5887792884766481411\",\n            \"6480092953553123685\",\n            \"7930432301453660255\",\n            \"-950334699167714593\",\n            \"8999305224741512342\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"2275373047011451096072\",\n            \"1663741816301024567004\",\n            \"-1866492858541257742972\",\n            \"-2109145933811908015055\",\n            \"205702837245156733125\",\n            \"1635077412214287742642\",\n            \"685205307788793936320\",\n            \"1889860958451267333814\",\n            \"-1166602441424869654187\",\n            \"745504509663417227326\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1798836380972328231764\",\n            \"-1406223119331403767737\",\n            \"1660047033970478613098\",\n            \"1778052602148636827065\",\n            \"2250316159389610073455\",\n            \"-1298324302681600099899\",\n            \"1334078532892003231310\",\n            \"729325161456818198272\",\n            \"191058750304629973982\",\n            \"51010503554643728898\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"1847340334856600128313\",\n            \"638235693099620437223\",\n            \"-478038004560773338092\",\n            \"-1391998540736358145230\",\n            \"-626383328490987256762\",\n            \"-2352574400149631230455\",\n            \"-1938941449061847831383\",\n            \"-526607055338931858789\",\n            \"1981655780781527447679\",\n            \"1545396686837274666506\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-312442107296555228736666\",\n            \"356012445393395243219201\",\n            \"505759552363745699184467\",\n            \"-468676292296122067383179\",\n            \"144650032031703545186687\",\n            \"-26329362228718986332534\",\n            \"23980362387843468011798\",\n            \"-365244050437485466278021\",\n            \"-243995662429130162331158\",\n            \"-204320605551784536257214\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-45575166340192063213221\",\n            \"-573081770149787292165894\",\n            \"-265165687156774270417407\",\n            \"142789058928229337895172\",\n            \"191301704388489595602183\",\n            \"-526986468133892967767446\",\n            \"477245941154730186128251\",\n            \"85837727744584298073480\",\n            \"124665454939314352568168\",\n            \"-538236817734442648171792\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-31883334627754186218955050\",\n            \"-132647558483145987490002060\",\n            \"152621615451762950923746193\",\n            \"-123974549416047643124802713\",\n            \"-16114612038666942583062670\",\n            \"-64534320970354404240221340\",\n            \"-52121728535745783604990414\",\n            \"-94488926190663283007722749\",\n            \"-142818466323905379126560097\",\n            \"-107911476720388673547687265\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"85894584079322001591239437\",\n            \"15214409976212802853836897\",\n            \"-38019531841082459805788664\",\n            \"37616670829337571764768074\",\n            \"97369332259197095859847091\",\n            \"73772357245924419843255015\",\n            \"-30815777011884938279345071\",\n            \"-48639604753962660078735675\",\n            \"115468028917195898397228106\",\n            \"127926946301889108741445954\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"133666088035672066583524552\",\n            \"-130261035231129416075204296\",\n            \"126288325871568137717986524\",\n            \"-86845343621023472085945052\",\n            \"107973761265249358331477587\",\n            \"-129772336942492423381739079\",\n            \"107590361807184920300114694\",\n            \"-15925934067100476069944577\",\n            \"40349773922798370876587602\",\n            \"10237290409613547079342522\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"23802936985404384833087799850\",\n            \"1891175066573372917579879025\",\n            \"-3414847211423679295209241879\",\n            \"26381566039446157654614814849\",\n            \"-27987571844346932586533728809\",\n            \"19734355232998847428072102124\",\n            \"18813566938676176789254455011\",\n            \"-36503995951399515178819792357\",\n            \"-14530867618962366745963282995\",\n            \"-8849346604262124212079590667\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"5181898859266891446958312760\",\n            \"35107669831244838496494366387\",\n            \"-14410695362339474219725640659\",\n            \"-11591179713532133832522279888\",\n            \"1322035740173050242109098628\",\n            \"-31330745687123561728243165717\",\n            \"26792385853476620307255105569\",\n            \"-239671734221072238217774753\",\n            \"19102158857542933762328806730\",\n            \"22327891859950141710268230741\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"7218784186398202012713467930238\",\n            \"-3350235717963492612747364671098\",\n            \"6231440398343118743080139900050\",\n            \"3480339439152451974013676380123\",\n            \"1802222928179100234342084269172\",\n            \"-6158375179378131392944011341388\",\n            \"-3504666018658185926339154570280\",\n            \"-8475441398809634118910111467555\",\n            \"-3093801338563751188575901637318\",\n            \"-5478326702705048089627298988765\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-7070255220529922623499452044373\",\n            \"-6392207880846944173023026301966\",\n            \"8940482032109394222736828154202\",\n            \"-5046383856173347902770746632199\",\n            \"-8627626268162429998930354857590\",\n            \"2158989160600634779705496438004\",\n            \"-9013792196143998093187489447006\",\n            \"3476375415358910964701042924829\",\n            \"10085089756175313037187138824355\",\n            \"9740053811517652352505683816287\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-3787663618609735534843807278261\",\n            \"-10131105569536599796884449801691\",\n            \"503460830171569790542890271138\",\n            \"3434572231596005739225905817721\",\n            \"-8956835466725390809094014178560\",\n            \"9973500372789618871294599932426\",\n            \"-3436060305237781453095163214550\",\n            \"8450001797448541892298668439883\",\n            \"3361188979149779406972984767155\",\n            \"-4211051396445129112263473603788\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1400604743906584917351131252499625\",\n            \"-1478062509467749242110369849940624\",\n            \"-1939775116070969545684922458204716\",\n            \"-1226594030808115703890602534185886\",\n            \"41411606629976216575859515000588\",\n            \"-715726075155862393171728350610649\",\n            \"-1104837525141739703305043777788269\",\n            \"-33170364036380943653659197533160\",\n            \"1222412368140077471220168238614012\",\n            \"-1553672963167499514929514167750075\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"414812444544593930314879937191796\",\n            \"1065092968521305037826601157806551\",\n            \"-1284545736853571361465316035084177\",\n            \"1913928682493656194884471773672006\",\n            \"2437413883363914925409924254101191\",\n            \"-63504718310075110440759765897849\",\n            \"1142014044009551494450713989884540\",\n            \"-467473985179578855121650728580161\",\n            \"-1958496203046466422013468466142816\",\n            \"-228498365668817309414956102721486\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-165107146600836184242508744416846410\",\n            \"-173159599341289250114641790452112880\",\n            \"519587843813546128711723035455451318\",\n            \"556002998269748818044894693715246655\",\n            \"340836458025000843041754711402673966\",\n            \"107273561582467343086931264151931276\",\n            \"198750867607657619623292872099343193\",\n            \"177053814334723551673700131599196681\",\n            \"12660542230757668534285774032322329\",\n            \"-571464786368411573231284232367569493\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"162179090271636955997303945925436088\",\n            \"-313756832601974313228748371796894029\",\n            \"-479290633805655842621397357725946736\",\n            \"-511500927368428520551421482817201088\",\n            \"275242443136997885046391431699367254\",\n            \"-577640700565811102564722509570839516\",\n            \"-603313958861080101850976268791504285\",\n            \"-4642553372325527067527268751318523\",\n            \"585149029480379128228533930021017452\",\n            \"-447624843136876027041393586846771215\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"41501085361451418692451075430330699392\",\n            \"14066756191036297756834058689490291695\",\n            \"-164566469205370280337196747799862639279\",\n            \"97007518905806845925433851317020841140\",\n            \"157835227951254852214602652284268481160\",\n            \"25273736966363553104566178634088585028\",\n            \"-150537488010280684140991686519150494549\",\n            \"-3078910762200766609996313414922029941\",\n            \"120706844608861526819394623973916082740\",\n            \"77402899003013119828768311588427778798\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"17155049489457881084030524101061900599\",\n            \"55722466817055128162883412356150704414\",\n            \"160092374234431079498351920387290796423\",\n            \"-81606519127017628665631973004297421491\",\n            \"89375409744877313802670851685928047535\",\n            \"-65994081055910568627784130329323864802\",\n            \"-120630990114675994405665160336455407373\",\n            \"-137414651139106149921771512358288667134\",\n            \"121174892531857852483583596440818324131\",\n            \"-165550685491777099186772462955579166433\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-121678364556055223485335845024798563730\",\n            \"67906221171052313441526344645309169424\",\n            \"135318293234875105755625723591118174647\",\n            \"112856765176163913169894958961682862611\",\n            \"-119771416342600648005955621630454841004\",\n            \"-163903534238729373402472686918104270530\",\n            \"161195965019384544589699058515114347869\",\n            \"-116587313658056174021511449216936299530\",\n            \"64724954802600766569366551938003781249\",\n            \"-93125379513310589407008602216272655289\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-24289\",\n            \"10573\",\n            \"18399\",\n            \"8295\",\n            \"-20661\",\n            \"1262\",\n            \"5316\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-18813\",\n            \"1196\",\n            \"14506\",\n            \"27699\",\n            \"17260\",\n            \"12672\",\n            \"-26712\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1816906\",\n            \"1950630\",\n            \"869435\",\n            \"-4057560\",\n            \"4225264\",\n            \"1863554\",\n            \"514068\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"5766833\",\n            \"-4566718\",\n            \"6185712\",\n            \"-78858\",\n            \"-4404053\",\n            \"-1932082\",\n            \"677179\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"383051226\",\n            \"-485372892\",\n            \"-903491488\",\n            \"1167906715\",\n            \"882058907\",\n            \"-1145532790\",\n            \"1869671269\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-1968019064\",\n            \"-1799227215\",\n            \"-485104210\",\n            \"1368798640\",\n            \"-1217008177\",\n            \"-1227552350\",\n            \"1050282791\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"1331776197\",\n            \"-1523716584\",\n            \"-280980420\",\n            \"-199394097\",\n            \"220377273\",\n            \"993543643\",\n            \"152558613\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"383358476044\",\n            \"-549418593050\",\n            \"-95127854833\",\n            \"233604693010\",\n            \"241360165929\",\n            \"-244114921916\",\n            \"500668910648\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-53958362657\",\n            \"294585258987\",\n            \"-297555344274\",\n            \"208136066113\",\n            \"306802849873\",\n            \"-56933397445\",\n            \"356355330533\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-5931341008015\",\n            \"-85194361749904\",\n            \"113496344354023\",\n            \"110910986479677\",\n            \"99037670275407\",\n            \"-29955950246308\",\n            \"85080062899793\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-135973903302549\",\n            \"106511990735629\",\n            \"-68491062797510\",\n            \"-67355500519171\",\n            \"-90256403179030\",\n            \"-67513824484015\",\n            \"-117243873668118\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-100006712547242\",\n            \"-834254212295\",\n            \"123327381870828\",\n            \"-47227724753173\",\n            \"133999742949746\",\n            \"-18734787485868\",\n            \"114072994453650\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"26713924791564839\",\n            \"8130537069775545\",\n            \"-12577784584283418\",\n            \"-14275066705387698\",\n            \"-13753875085512229\",\n            \"25629684304719161\",\n            \"14775029745555656\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-11254714743780398\",\n            \"10473563621744326\",\n            \"33848039724296273\",\n            \"18968181007120441\",\n            \"23801217524644040\",\n            \"-26532014979132953\",\n            \"-27043991311421046\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-4338512873691242591\",\n            \"-2471396968750798701\",\n            \"3382716270394008960\",\n            \"-5536237505914333541\",\n            \"-5670361551544238026\",\n            \"3775163668383883090\",\n            \"-6190677986420548067\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-6811298520974526893\",\n            \"5349469892177723131\",\n            \"-5310390011268146908\",\n            \"-6394607027886038057\",\n            \"-8840279685184811878\",\n            \"-866886887884920562\",\n            \"9106364263997684727\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-2273577051086748127343\",\n            \"2421110092972784882\",\n            \"1009841336246568968530\",\n            \"-945047452043730572283\",\n            \"1410134830331293109638\",\n            \"-875429235306554264942\",\n            \"2114146046206025795606\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"2175914150359547376158\",\n            \"-1748223628477889384538\",\n            \"2082301040631284414221\",\n            \"1223990770664639894611\",\n            \"-1827289874583926966422\",\n            \"2188372252873287105874\",\n            \"949660314176845084876\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"756120269623394822481\",\n            \"1401758245452765618339\",\n            \"893699234552132134074\",\n            \"-1016562455395417533129\",\n            \"982560837349843281349\",\n            \"1535949657790955542784\",\n            \"339935115964234018700\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"160187131709749816068707\",\n            \"-445406864840389796795963\",\n            \"-364502369523172897909179\",\n            \"-483741481440179619808869\",\n            \"-363648688131558141030019\",\n            \"-317255639295947426340261\",\n            \"76880251422851734014297\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"83513645025310150339154\",\n            \"-17033888719894118308423\",\n            \"139753445403319042050931\",\n            \"-311922677215511648704490\",\n            \"6614071525705894990176\",\n            \"-347208526123811355958702\",\n            \"-331153931143899968239074\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"66937915462785606409890218\",\n            \"18402929024834529807256440\",\n            \"-93539116539481832132130597\",\n            \"129533946990250575778822929\",\n            \"-35405911050564377669039868\",\n            \"-55753625842174688440739221\",\n            \"73274477544376298222515222\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"102320970151175129799043835\",\n            \"101371657730044294428907301\",\n            \"30763947066697758866083944\",\n            \"125632427074532822811696240\",\n            \"67850157625702978153575284\",\n            \"-122847530486522138663035099\",\n            \"-51630753075526948960226330\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-5570796149032603732772443\",\n            \"112962510499227217269980469\",\n            \"153243861290764227222710433\",\n            \"53437571104225666803388890\",\n            \"61392106787538463166584259\",\n            \"117240447134205597906098644\",\n            \"60147122185044384664950672\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"25440681132059718117365230086\",\n            \"36918164020123084473254266745\",\n            \"21550823988603061803770774218\",\n            \"23314393410588498837026340595\",\n            \"6838667569178219678527118012\",\n            \"30164610006780796397257146070\",\n            \"3856966332228692365975619319\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"5081531030911632494676413206\",\n            \"-28718432056933259489318591062\",\n            \"-2050881926509555330776684358\",\n            \"-20284056359541046744053496159\",\n            \"27742784349335929086470876577\",\n            \"-23732359260540767132988499358\",\n            \"5634504669489702253559754357\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-3834438486720541018898060342396\",\n            \"757405556339035170443861964454\",\n            \"-8580423491565526971567650107331\",\n            \"-8945834070161348883399473301073\",\n            \"-5974403419273083538716640073054\",\n            \"-5722317395097101795951011911463\",\n            \"-5741054963623745695692184888504\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-8177592807298787544136200201401\",\n            \"-8737768036785410829204705458137\",\n            \"553812896188979268090905076767\",\n            \"-4021415115048931628518326506347\",\n            \"3924889803517574116437664136082\",\n            \"-8427629394384391196070489759500\",\n            \"4826578044967295536262713612905\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"7431086482852698405039291580358\",\n            \"-9383454246382299183181940802026\",\n            \"110780578216389910057065519226\",\n            \"2997597313220317309864866164017\",\n            \"-8403711664152768877667363976799\",\n            \"9484934137736292785001782174450\",\n            \"-1992550614924900659257438994754\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"2373418612554887808061895526341322\",\n            \"-875917552657361505492351804147083\",\n            \"-1898458663708254096173410834725291\",\n            \"290657266522040208254177101419000\",\n            \"1934693067868945395803972374030326\",\n            \"2035880975736537411226150165204569\",\n            \"-295118642138847608101651879233223\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1104518889416566749000188799690936\",\n            \"2455684185543033692597997273850286\",\n            \"82712851079703819661084329753293\",\n            \"-410022871087898657272365213961056\",\n            \"820614625160173093789799139004878\",\n            \"-1777050003863809764253453475090598\",\n            \"-679519739224009400590313815819330\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-304159418192963037178769623546586814\",\n            \"-128686367459246117841134563726117419\",\n            \"-168852189389901620284754066083296623\",\n            \"-368361507059344027859608313034640451\",\n            \"406153616128697783106760476034969080\",\n            \"108280339193448166575810552660499327\",\n            \"-272917413831425220737435317129240149\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-521853357960558893783030665586434328\",\n            \"-343385983135307684129023060457977073\",\n            \"-506847810949852766012501602241167446\",\n            \"-320653206306289485921441154060647458\",\n            \"-321419500062747985044408215510498559\",\n            \"360059077100522851702855678971772481\",\n            \"-18193071889338165594572934630198306\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"135198259031897173424041180828687717318\",\n            \"166925950940460213304747134486553784378\",\n            \"91770708378464964972025279535217192484\",\n            \"-74034082172265236168468281957827129715\",\n            \"-162271236574132326749987187978014522711\",\n            \"-149970538812246904199283660851953012127\",\n            \"-33876209446467800177023509622790899587\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-61149961594095579505494563784365845076\",\n            \"55447541107548109725109916957958410011\",\n            \"-52782699847581819420368482823281766808\",\n            \"-61428023230847673671328947277950650863\",\n            \"-77167370229187325704618575761108559915\",\n            \"120671975447784265485882220443592967003\",\n            \"-31941156027929177364936983495588921100\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-46517984021030779553174610760370691361\",\n            \"113342560476092078423544510209910511761\",\n            \"-48453285416719025136328005628829738351\",\n            \"-156382820183969337136212148728801068593\",\n            \"92013865013427171673489829654013623118\",\n            \"-149825413114872556503600279014768710017\",\n            \"-41842153899195246897218693785873371052\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"22560\",\n            \"893\",\n            \"13712\",\n            \"26425\",\n            \"-31443\",\n            \"13197\",\n            \"-2033\",\n            \"-5158\",\n            \"4272\",\n            \"-10000\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"7568\",\n            \"5297\",\n            \"30894\",\n            \"17857\",\n            \"-2276\",\n            \"-23490\",\n            \"-21021\",\n            \"-25476\",\n            \"22182\",\n            \"29801\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-6043434\",\n            \"-7233989\",\n            \"-4760386\",\n            \"1954881\",\n            \"6262402\",\n            \"-5432480\",\n            \"8247099\",\n            \"8104542\",\n            \"7559904\",\n            \"-1468008\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-6009851\",\n            \"-3463144\",\n            \"1902131\",\n            \"-6065871\",\n            \"5322522\",\n            \"-5281546\",\n            \"-3949430\",\n            \"3706705\",\n            \"-1404042\",\n            \"3601699\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"865502134\",\n            \"1417082065\",\n            \"-629664388\",\n            \"-807386741\",\n            \"-932260324\",\n            \"-2100594554\",\n            \"1317544706\",\n            \"-1659287662\",\n            \"1747762053\",\n            \"-396035137\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"2009773453\",\n            \"1452039055\",\n            \"275687455\",\n            \"1229090980\",\n            \"1647739999\",\n            \"-2068020074\",\n            \"1116868483\",\n            \"-925674893\",\n            \"-276647664\",\n            \"-2124051141\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-652548523\",\n            \"-734515103\",\n            \"288855150\",\n            \"2003714209\",\n            \"-2050720739\",\n            \"-439439213\",\n            \"-597448192\",\n            \"1032305015\",\n            \"1396503618\",\n            \"1112795070\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"279530206260\",\n            \"-37787584606\",\n            \"-469700465159\",\n            \"505547261276\",\n            \"302063628730\",\n            \"232557570106\",\n            \"-400244326424\",\n            \"-500191912404\",\n            \"25916715111\",\n            \"434497276265\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-350338719945\",\n            \"82553936444\",\n            \"-303574370324\",\n            \"243609147006\",\n            \"-406918086752\",\n            \"-88984556473\",\n            \"414777054250\",\n            \"-65665371841\",\n            \"-214549984551\",\n            \"-160387504734\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"111115937773490\",\n            \"93917065955228\",\n            \"-96942832219834\",\n            \"-33245985521466\",\n            \"-14808380437022\",\n            \"-4337750370781\",\n            \"135538464766646\",\n            \"-89018159354352\",\n            \"107684460266199\",\n            \"54644567775645\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-4281375143734\",\n            \"-90555175252799\",\n            \"111437459291494\",\n            \"131211416029101\",\n            \"121367162942964\",\n            \"41802077584397\",\n            \"-15870395962588\",\n            \"88293896383396\",\n            \"5103371203595\",\n            \"872421043658\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-27344466164330\",\n            \"-64277006280629\",\n            \"-115200530257737\",\n            \"-96185525872446\",\n            \"-362102981191\",\n            \"41076176727009\",\n            \"97608038546518\",\n            \"-21909959043825\",\n            \"25684146129386\",\n            \"31887816743174\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"15805681068407129\",\n            \"-31632108725366096\",\n            \"-28430420565549892\",\n            \"-5685098119469251\",\n            \"-19359673914220516\",\n            \"34927075452235781\",\n            \"3646450258861011\",\n            \"23186600653867991\",\n            \"23870113232131846\",\n            \"24001450908961341\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-22903183193209387\",\n            \"-4042683237615665\",\n            \"-2730673747391472\",\n            \"26722058029955156\",\n            \"6157099985124238\",\n            \"20691656929186432\",\n            \"23541903929043982\",\n            \"30481714773589336\",\n            \"33354780396992065\",\n            \"5937390849575047\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"7111976505000124157\",\n            \"2513743790789558989\",\n            \"-5854964827243221874\",\n            \"1781418857572271171\",\n            \"117740201774951719\",\n            \"5464574628727265159\",\n            \"-5417016541752216420\",\n            \"9177082172732916663\",\n            \"160231964650370102\",\n            \"5198235504762424898\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-6959774822262382900\",\n            \"-5918004911967555855\",\n            \"-8785219904076781827\",\n            \"761518306349693777\",\n            \"-3727781912512154347\",\n            \"-7347378201324932678\",\n            \"-7407703676847128120\",\n            \"4192766707565496640\",\n            \"1019303794324002221\",\n            \"7284694249235670661\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-518706270599601321284\",\n            \"48296813336873849945\",\n            \"-757973019222940359901\",\n            \"475279089186345082149\",\n            \"-1857051161967159641567\",\n            \"-1773449378603505991898\",\n            \"-214240478131630835049\",\n            \"-286969346226347726119\",\n            \"-1377522753231516069488\",\n            \"1534327277443683237083\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"1261639334685978762634\",\n            \"-863251376487397515329\",\n            \"744768807612401835863\",\n            \"431090683079445762349\",\n            \"-1430008898903453262513\",\n            \"114432723295067239367\",\n            \"-1659415137482284952255\",\n            \"1956229533554192977542\",\n            \"-1285276599317909495561\",\n            \"-681033070942915028623\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"701567718623448740657\",\n            \"-770039146384883281781\",\n            \"569393332403074078663\",\n            \"-1154152301490888490101\",\n            \"1384935762862036151746\",\n            \"1292652059491738064552\",\n            \"-1901055548660828668152\",\n            \"-511050274918474237607\",\n            \"1514545794119297935503\",\n            \"-1582702036644800787512\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"525113524901831930800014\",\n            \"595544469553401116745247\",\n            \"531694395790167129406901\",\n            \"239795230404718942193473\",\n            \"47476260565690957269128\",\n            \"546393256156863431003393\",\n            \"-61262268239682896208557\",\n            \"401221833939464710528829\",\n            \"-300134644671240853134013\",\n            \"161147446687616707600843\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"219138432946234236649127\",\n            \"-306826762775104215875477\",\n            \"-122309794531015699303879\",\n            \"-484390629051561859282314\",\n            \"-484657707904256453204167\",\n            \"-64172125540895226776153\",\n            \"-142182935337162713560713\",\n            \"-425794894066631241856692\",\n            \"519332704943479362574611\",\n            \"-39607393270604766751662\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"117923250549289739547762878\",\n            \"-12796961197805647943116125\",\n            \"116897654782120455942318786\",\n            \"13956190831994724793021311\",\n            \"130567329542252884379704341\",\n            \"-151472228305034689251068623\",\n            \"117154604904044151278566211\",\n            \"-124756046758763955771939571\",\n            \"27553563965416818601126828\",\n            \"-6385245309521757072601303\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"19686173839910969340904667\",\n            \"67019339050451913372960344\",\n            \"-911760385169067625107436\",\n            \"-122602505415495630018637800\",\n            \"31593555949045884898723169\",\n            \"77102155795733768673367210\",\n            \"-88704824409118698981385569\",\n            \"-42307172980137248443961447\",\n            \"-4446290230048200090988726\",\n            \"74356647474998795935207344\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-133795720031537585830253848\",\n            \"-78089793241413791675804237\",\n            \"-146996109993430013479432790\",\n            \"23768136773568272325587897\",\n            \"-106683272894876981717341824\",\n            \"-80841936515652353087463629\",\n            \"42569237872224343987105320\",\n            \"49071873620207544414478264\",\n            \"-4630034012596569492380443\",\n            \"-10118444529078594226753741\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-24951441861790452223123296595\",\n            \"11386091573469723230249468441\",\n            \"357584100357389438039201862\",\n            \"-33986416720044219140319583496\",\n            \"23627532621110890373222649794\",\n            \"10017504927354356464772980155\",\n            \"19362269204948111616152932551\",\n            \"22750490848378999604678136199\",\n            \"-9083598083282026421514694140\",\n            \"-38727975416599385546239458974\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"12488280666875253249236254683\",\n            \"33422133051718018037208075117\",\n            \"-33776414240503546307124956974\",\n            \"-21484107419134338520121082452\",\n            \"23100427643229869917783680858\",\n            \"-1650226751931233622609376911\",\n            \"16906427077642537130376239920\",\n            \"-10289660454830607858626682520\",\n            \"-19484893295053214460865724970\",\n            \"-35952156995798958657792954473\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-4735298964100410577985543000395\",\n            \"-530020970016182803114777861279\",\n            \"-1131349626390530283723194772589\",\n            \"4317710074952661856482753164067\",\n            \"4095402110127114773697774757004\",\n            \"-5294319980949349221369104353569\",\n            \"-3048927073292851696777488488702\",\n            \"7634763577542382376327040341451\",\n            \"3115557643024666160471563838459\",\n            \"2926203117946390190222302068793\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-1864945236373483656597257239959\",\n            \"405034584047843548124421910439\",\n            \"-3218977334120915262993640819384\",\n            \"-7142961612298989061130444521419\",\n            \"9307783629655608942945035515333\",\n            \"9723234906857782536374491021270\",\n            \"7650370082443858700585254978477\",\n            \"-9310868784454660367988144252963\",\n            \"7465773199661339364694190806591\",\n            \"8097845381146606888985497903233\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"2675669436671053895099186040413\",\n            \"6895644571078189440948660962592\",\n            \"4090458704020642720758701259110\",\n            \"3437150126960216898595459196390\",\n            \"-9705511727116548664311748297324\",\n            \"-9305522884159558955104155253458\",\n            \"-1180186469868495251804854919531\",\n            \"-9796644010646070627213151591605\",\n            \"7106015483167238861336648112959\",\n            \"3331018800384614291320519803020\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"1148597479167394014443766490953345\",\n            \"2591895812533789822937308818442541\",\n            \"-326160310667933246866417794387851\",\n            \"-790306080625502821695639512319184\",\n            \"1545324828980338934424171461753128\",\n            \"793479953457908571858622935305894\",\n            \"2257543789427477727739601853041034\",\n            \"2444208137442914637553318787476074\",\n            \"1042890315365379193825287662234332\",\n            \"-1210287719815272207093258458478606\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-582733012088132875430838862529115\",\n            \"-660250931409288922636705489970214\",\n            \"2138527182118079262740549727787747\",\n            \"-2553900648599237329560900255287994\",\n            \"-818610871820914906670478944208743\",\n            \"-236741329036188976369182885941428\",\n            \"2127636973795770254193330141423807\",\n            \"-431302383365507717941243837426762\",\n            \"1669665166902924237503748195025488\",\n            \"2520650475436221136120486524455387\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"437759108051476501968471376399124534\",\n            \"-243331297098327608976864926703591085\",\n            \"-312583708013495348602181422788137336\",\n            \"22789177262884761633952302550572526\",\n            \"-120348891169104228873609073292813076\",\n            \"-659626114206394610798043021957841914\",\n            \"70595700062132590775654277374702719\",\n            \"3451720916899085830004332720776845\",\n            \"-34955038635481392379717309447778322\",\n            \"611134933947728200993481817988506418\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"20428164720806545350579904191767053\",\n            \"-99366399181425663956407652863667479\",\n            \"-35862534912239206067332175346609413\",\n            \"163496968286287738613339640023311242\",\n            \"-591381118335160981639939232133613024\",\n            \"254858944488772779912509622495446951\",\n            \"-460577318473676675239602831217222871\",\n            \"-616355768017271613012286794164991144\",\n            \"569247714773488133953930390229542704\",\n            \"202465807813752300281405751766207660\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"50315610630704356585322877730374837077\",\n            \"-83098067869442334415610073682313947471\",\n            \"161365526209509778448649648555742998425\",\n            \"-34910129007785397951451736271574830290\",\n            \"-144028959288053184684355803368266298023\",\n            \"-83817363552302335547213001246996745217\",\n            \"66067533735734112278087882548638909770\",\n            \"120913070546179844966164010066001238079\",\n            \"11384422330934700411529312190354569876\",\n            \"24772640548850140487291953136913828116\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-33028393081806170731403400067321655079\",\n            \"-11463174497738743284114180047596875486\",\n            \"32254998885085389327900118303255482169\",\n            \"-143483787323458716777165205934466305713\",\n            \"-112857257202882526765530368259175091713\",\n            \"162300394541802787040467843446805562970\",\n            \"129149449533069183017216694533759537096\",\n            \"-64890619893840122581192195171585201603\",\n            \"92544985698450754032974399211134668880\",\n            \"-54842712948210953012984037318158437034\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"132478357453720312304052372488893354300\",\n            \"-32685327131103251164646706295319990901\",\n            \"137916669492333509181609802124805628257\",\n            \"87478174466828645335209662043146117532\",\n            \"-61373497372439972480430645755553315203\",\n            \"5894673095536466472878429843436835629\",\n            \"-11619138682611129587257806902056620796\",\n            \"154151469754446633748882542018886132033\",\n            \"133733328652939407559328194516170213391\",\n            \"-126168609308185025841853092223452728320\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"29705\",\n            \"-26987\",\n            \"583\",\n            \"14792\",\n            \"9066\",\n            \"1503\",\n            \"25039\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-11868\",\n            \"5868\",\n            \"1573\",\n            \"22308\",\n            \"27942\",\n            \"13220\",\n            \"25806\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"6498297\",\n            \"316060\",\n            \"-6879700\",\n            \"6560750\",\n            \"-578892\",\n            \"-4785342\",\n            \"7293532\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-355167\",\n            \"6077145\",\n            \"456351\",\n            \"-6459738\",\n            \"2475530\",\n            \"-2801348\",\n            \"2836470\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-763391790\",\n            \"-1421479470\",\n            \"1842219939\",\n            \"-1396384047\",\n            \"1279169338\",\n            \"-974221132\",\n            \"786409383\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-701822471\",\n            \"-624495191\",\n            \"1950360306\",\n            \"-937735710\",\n            \"891136351\",\n            \"1299679601\",\n            \"-1631128813\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"375062411\",\n            \"101064405\",\n            \"1860934989\",\n            \"852100817\",\n            \"1489729732\",\n            \"-1386032321\",\n            \"1372454919\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"211103860560\",\n            \"165685254110\",\n            \"475179443594\",\n            \"83982532429\",\n            \"-110181124820\",\n            \"260080395391\",\n            \"396030998948\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-345799561802\",\n            \"385403135660\",\n            \"394672914473\",\n            \"-41576529948\",\n            \"-89134685382\",\n            \"-3611010438\",\n            \"-230138775672\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-44213782783569\",\n            \"-20824315185336\",\n            \"119392219688726\",\n            \"-48280571708474\",\n            \"93590107082594\",\n            \"-73857195319550\",\n            \"-11092149545600\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-3391364501302\",\n            \"-76804068374074\",\n            \"-5330058597257\",\n            \"-19337292494715\",\n            \"138572773907931\",\n            \"21930262754355\",\n            \"19745392677247\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"85902098584199\",\n            \"111873133532349\",\n            \"-68545677680071\",\n            \"34394580702899\",\n            \"-129707208239806\",\n            \"124130433864871\",\n            \"34089590991835\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"11547754029851805\",\n            \"13929638569741680\",\n            \"-35234779220736599\",\n            \"1556424996390195\",\n            \"-9941069445592524\",\n            \"-10351643092326233\",\n            \"-25407298114074662\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-25715001828139556\",\n            \"219757435776379\",\n            \"-15386649204339974\",\n            \"14219377191186674\",\n            \"7764182966113153\",\n            \"-17037164141869666\",\n            \"-2475550776888956\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-9013210997202018091\",\n            \"-1797035859465177385\",\n            \"-5039026628271053798\",\n            \"-2279961464871578084\",\n            \"-3332468041413232867\",\n            \"5196784857810113987\",\n            \"-816043157177424446\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"6230937120482135875\",\n            \"4406903786753583285\",\n            \"-5727776665901788833\",\n            \"6110238893930148669\",\n            \"-145374459534268305\",\n            \"-5408134830337680351\",\n            \"4578682454615398942\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"2280996778076363880015\",\n            \"-1105914554647913546919\",\n            \"-2340456352988668320804\",\n            \"-2286379749373826695506\",\n            \"886840160760479118799\",\n            \"-41094253890685508209\",\n            \"548649222178985137197\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"2101991590910127128698\",\n            \"-831048801347409813644\",\n            \"283006935997353787913\",\n            \"1014149330696637995585\",\n            \"806441932790678928581\",\n            \"1292353558196559947530\",\n            \"1691441804823003410715\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"514147725545916528450\",\n            \"-193880206083679947659\",\n            \"937498535568154555134\",\n            \"-112013115494854394797\",\n            \"1838267628545853841229\",\n            \"1697251710819151266567\",\n            \"1334759843181386854916\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"140211044419225416059523\",\n            \"22798773775711118695439\",\n            \"185167441622179764743229\",\n            \"-341069468014651486949028\",\n            \"-311767107447079981815378\",\n            \"-365574085382023414765745\",\n            \"16721445196171820250327\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"486153544869280373342335\",\n            \"-242241326842640368113620\",\n            \"-562468626770589338549903\",\n            \"353095362900612835555266\",\n            \"497938272554417006820815\",\n            \"90302429955937293267553\",\n            \"526449366929722769596410\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"46664866598514825254083995\",\n            \"14396224856981525909820752\",\n            \"-107662311974370582851318011\",\n            \"-116315009943902083038882452\",\n            \"56805605268567131709840635\",\n            \"-285698053798149060391610\",\n            \"-33274177545126848030882515\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"33427646005521871613027485\",\n            \"2068649850038034587145992\",\n            \"100657143587737579826250182\",\n            \"-101842456842860935986029777\",\n            \"-24678241147837041282536443\",\n            \"-137081933839393292380849579\",\n            \"80701010466319784595704954\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-125204491775364926553434405\",\n            \"-68666196727647600858615388\",\n            \"112354660219741185829905397\",\n            \"-7303433862000761726317213\",\n            \"-11446693224295095219494490\",\n            \"-2156245347683069299464550\",\n            \"154672444469077398685327566\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"23329815819835763885234375029\",\n            \"17840398455337288079751030137\",\n            \"-25733526444924201365089723197\",\n            \"11519925701526868606303914066\",\n            \"-8122188835588210950596509581\",\n            \"20364966273892581445915895222\",\n            \"33135945479485532338472222967\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"34850681321476402094647761148\",\n            \"-8083975349781433603028632490\",\n            \"-26785483364705248388507635494\",\n            \"9143502111139064417571274857\",\n            \"14109565008946975910759730825\",\n            \"23146095454100851136277162012\",\n            \"1964738793442941286156606155\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-830794414147442758629680858917\",\n            \"3974824330694591996054219287782\",\n            \"5212798423257109428476944724672\",\n            \"4136148464931397492769112444980\",\n            \"8716912509663310300081342235480\",\n            \"6130432387446754799113484089575\",\n            \"6936235167270048720910192819573\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-3535004387728242781406510654821\",\n            \"-2981058632797045086695893841072\",\n            \"-7090056840341574165394710895073\",\n            \"2937436279617800594018353925694\",\n            \"-6164350919245055090956637473538\",\n            \"-6513208139095775762754457986006\",\n            \"9324466091637799474852790812941\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"2028288650797899768325565085648\",\n            \"2900055817977855811722193499494\",\n            \"6905622275677150166335492710080\",\n            \"-3160034744597195167509247764978\",\n            \"-1770329430972443791351959666851\",\n            \"-6751176363700567085044496183977\",\n            \"391291090038019520158630200495\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-1144504652616585466559731200361813\",\n            \"-1411714359592296247517000426578522\",\n            \"1466595389854363706316815721880003\",\n            \"742237093197555043514198686208810\",\n            \"632837196426513796812458196446553\",\n            \"1024964501312689171613773158523485\",\n            \"-847167208284549920541560580297353\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-1379322307328006592168092307072132\",\n            \"387617426942146023411122884259110\",\n            \"343500850419230433556982280364993\",\n            \"2429014391360178084347952076151804\",\n            \"-1271102713054563598822742297111938\",\n            \"1935501224421101911088894464720498\",\n            \"891196511387998706976306482945567\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"327017567565957860896642013563192207\",\n            \"-197957402373048855115227470112922554\",\n            \"-274157035197732503264012623953912376\",\n            \"-403813151150633640598242397849702978\",\n            \"-607653760517680240576727061740741951\",\n            \"-484513780480873333770895576601263141\",\n            \"-364508171932424706077901220225164024\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-655778660285369872582403556455076537\",\n            \"-305967296614644034918759561910261868\",\n            \"408652192029803274954960477706952597\",\n            \"491158410408462445362863360612553421\",\n            \"190090738690396233311384708778934496\",\n            \"-650782116647010450130445692263218670\",\n            \"466999684855637663153637496446512539\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-120922442637350268547173038619758155686\",\n            \"-14798309877377243156606971473100481720\",\n            \"-158319052033044572444106251098798964128\",\n            \"-87790259877385234658887405184771282386\",\n            \"93922935281981262808730125220213226026\",\n            \"152362390413913740334911190667453959896\",\n            \"-144716399672639547866469402888393372244\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-44740461288862326679317055888851447788\",\n            \"-19261460967897542219529042766754216418\",\n            \"32572085694274520626483716255202096142\",\n            \"61807114741875177639257174914455169635\",\n            \"142136086887672692821719902247408741632\",\n            \"-53665021237760509021660371077876689014\",\n            \"135482047221090055561713975617737312735\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"151443922013736797164062148265526547401\",\n            \"35894129120522936623313378082863551111\",\n            \"165517845554666361071462006124502354697\",\n            \"-161960863802263743123033369079756629461\",\n            \"-13661079351804691514638526655907412444\",\n            \"-88694839241604621649741179075868872513\",\n            \"58239606879205464966310459406863836884\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"21865\",\n            \"-9513\",\n            \"-7941\",\n            \"-4293\",\n            \"-1219\",\n            \"-10549\",\n            \"-2196\",\n            \"21139\",\n            \"21478\",\n            \"-6001\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"8460\",\n            \"-5982\",\n            \"-23734\",\n            \"-11998\",\n            \"17806\",\n            \"-21183\",\n            \"13348\",\n            \"-23465\",\n            \"-7244\",\n            \"-15957\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1268458\",\n            \"-118370\",\n            \"-1893479\",\n            \"6108358\",\n            \"1102635\",\n            \"701748\",\n            \"-4079505\",\n            \"3897123\",\n            \"2836441\",\n            \"-5694828\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"3354881\",\n            \"3381813\",\n            \"6090423\",\n            \"7476959\",\n            \"-6152439\",\n            \"-3812109\",\n            \"-4999299\",\n            \"708401\",\n            \"1857502\",\n            \"1616326\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1829093763\",\n            \"-4407926\",\n            \"2068340761\",\n            \"234009195\",\n            \"98079137\",\n            \"759088995\",\n            \"1573936081\",\n            \"-1886084340\",\n            \"1660264264\",\n            \"-703900633\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1724311878\",\n            \"-1770100972\",\n            \"2005560287\",\n            \"1002317505\",\n            \"564934293\",\n            \"-1056620575\",\n            \"-1507809740\",\n            \"1202563854\",\n            \"-1605647773\",\n            \"965485898\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"1993753383\",\n            \"-1867185966\",\n            \"-1797347612\",\n            \"1892035404\",\n            \"-1434558470\",\n            \"200775493\",\n            \"-1667955972\",\n            \"-1185419659\",\n            \"-1021155420\",\n            \"-1017852104\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-103795691472\",\n            \"50179936568\",\n            \"-305052039589\",\n            \"-310642809394\",\n            \"298713016856\",\n            \"430578254618\",\n            \"544157970272\",\n            \"161717434423\",\n            \"-82568595668\",\n            \"-69760173661\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-375428789801\",\n            \"229743413651\",\n            \"-385129101606\",\n            \"-341027447447\",\n            \"-292292749496\",\n            \"262095081246\",\n            \"399108175194\",\n            \"-436877011553\",\n            \"-184609205075\",\n            \"-525138717918\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"109490881395508\",\n            \"-2794346701792\",\n            \"-136768254893717\",\n            \"98238674344928\",\n            \"-71024502877527\",\n            \"36337204077446\",\n            \"25777777072393\",\n            \"-76891055436936\",\n            \"-20658339677220\",\n            \"107548266692467\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"65741531641303\",\n            \"-120604147256920\",\n            \"-71319706911283\",\n            \"12568908870250\",\n            \"20874672241429\",\n            \"-103855183735668\",\n            \"-53956000337623\",\n            \"67466545861242\",\n            \"-40824456528955\",\n            \"-50502795434656\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-30593444826663\",\n            \"-105265259920813\",\n            \"90066025218056\",\n            \"72114368716596\",\n            \"88265148520874\",\n            \"-26982520274013\",\n            \"-56277959562553\",\n            \"-46821369439330\",\n            \"-84272522150036\",\n            \"-67142476625898\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"22942929546037422\",\n            \"20172954267975860\",\n            \"9006547764775266\",\n            \"5211508666269417\",\n            \"30624269047382012\",\n            \"-12672445409868765\",\n            \"-32303326488011005\",\n            \"21742501359293496\",\n            \"18870493623228669\",\n            \"-15114725655588776\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"7991033936095510\",\n            \"-25436300164394417\",\n            \"-4116325708088739\",\n            \"-8818216017431285\",\n            \"-18277587083906160\",\n            \"14144228659002687\",\n            \"-4827602588444601\",\n            \"-6917969417697944\",\n            \"34390202143918890\",\n            \"26364020049473109\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-5565127045385194966\",\n            \"-7684916584653270186\",\n            \"-6526101704890152726\",\n            \"5758616101220042812\",\n            \"4277401219812095069\",\n            \"-1156200668055380488\",\n            \"-3665026910524676836\",\n            \"7227753205619980282\",\n            \"-9117970762813305675\",\n            \"3814443356076271226\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-4056124162849183791\",\n            \"-3091054243487850690\",\n            \"-1005186283000031535\",\n            \"4264379098205926012\",\n            \"-5816101399981242529\",\n            \"657803495947876179\",\n            \"-7620099954905920196\",\n            \"1165400408553884079\",\n            \"-4242137285679032126\",\n            \"4883600219746027602\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-2075689333753747735685\",\n            \"2356020644862916379319\",\n            \"2167344894833235655242\",\n            \"-1233676921087779374936\",\n            \"-472138285531110689106\",\n            \"-1007733287828797731354\",\n            \"-1150820475775440441805\",\n            \"1849909446162084231324\",\n            \"40485887422211501292\",\n            \"-1531296877121202039185\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"2248262662434579442174\",\n            \"-24067525590648914392\",\n            \"-46650276984820791770\",\n            \"-2184543362428055235823\",\n            \"1974794946687090550573\",\n            \"2197581555630725738513\",\n            \"-1036621057391423397578\",\n            \"1122920389059697318393\",\n            \"-947702755738865994434\",\n            \"1634754840733349282174\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-859921720417617681444\",\n            \"-2190420634375059510979\",\n            \"-1434691179630443364753\",\n            \"-518741106894841329345\",\n            \"1093338259353051655764\",\n            \"2211352717790797000825\",\n            \"907793405354409516774\",\n            \"220145636554287824727\",\n            \"509691887514400022545\",\n            \"-1294594023424323107387\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-526990487436843194807840\",\n            \"596575213433002438735038\",\n            \"-71236910029025414107990\",\n            \"99178925759657972243233\",\n            \"-440284224066490812643561\",\n            \"-428326164367815704740490\",\n            \"-429553654939143998439803\",\n            \"-301485703325840334321221\",\n            \"-205335077080231282419987\",\n            \"-586491652024392408421712\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-543688845315372053238708\",\n            \"-163909849043312495770038\",\n            \"-389689726424929488513817\",\n            \"-114895253663121558845496\",\n            \"348640253272437667385550\",\n            \"16575128907035554845887\",\n            \"597210944202677679801832\",\n            \"220285812487408184784084\",\n            \"-42608008827610055995030\",\n            \"-96942244128145461390288\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"143527171537167288568334963\",\n            \"63922968735872942354971347\",\n            \"16148467038136997458380707\",\n            \"-153693517794242110028457288\",\n            \"19318376645712741297662190\",\n            \"-12794255459929906566054319\",\n            \"-37650752907879433922942673\",\n            \"-150166615652066337683957386\",\n            \"57329802738501405002838890\",\n            \"84897963838366989876933017\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"96124972909010047517011683\",\n            \"140953422210565403195650941\",\n            \"5311198421189536461110037\",\n            \"121439717040191911388251790\",\n            \"41648789220821764736893059\",\n            \"-34464297128753801791226983\",\n            \"-130145493103864535084592015\",\n            \"85478399528142555833134891\",\n            \"14109865387017479696802124\",\n            \"-35883514830521563515868006\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"7929873152858210171340528\",\n            \"146946594934440045255005503\",\n            \"-63984879531222004851746641\",\n            \"-98404545568865647913143114\",\n            \"147368438153309689359575404\",\n            \"-125299622361117017666281396\",\n            \"50888897645607457371420920\",\n            \"35436333051448932231106760\",\n            \"127474433365288821803863819\",\n            \"75480346343825103775154749\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-8746748457647904867496756699\",\n            \"13886890262009261987702677945\",\n            \"30610269704200657332639932690\",\n            \"1988011012396012136828019533\",\n            \"27809766702732680733200157750\",\n            \"-13397700579544534835060124865\",\n            \"25003563641560620051585929625\",\n            \"-36124205442930485039742412898\",\n            \"-26618151134121364917297218959\",\n            \"37250266093672499484998022951\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-14142713495768494830041644219\",\n            \"-28826123233012884759325086616\",\n            \"2139184291361898827778357325\",\n            \"-20691297473114691371314913993\",\n            \"34039896653596475818834199231\",\n            \"-1467759043071863209472101520\",\n            \"18433718648399999914637264302\",\n            \"-24512577345718204022326385307\",\n            \"-17460565004252223611174273742\",\n            \"30220497605213358105564998501\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"10121526385221565224067878565679\",\n            \"2761189092075112373016075500931\",\n            \"8854254270554901165807339966360\",\n            \"-4844293746135774082587580385559\",\n            \"3690381197256143789522141159908\",\n            \"1243411595693866754538784391256\",\n            \"9189681722403043058688029968097\",\n            \"-9423820843284925151006522300117\",\n            \"6829156521436853695351870360315\",\n            \"8184630808925606776348432717524\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-1198084970702764472492358102739\",\n            \"3152710836296673619366574627547\",\n            \"-3203266598150150519017435963345\",\n            \"-3401665769768522116199310644875\",\n            \"6607270485165065820523048271021\",\n            \"-5180376940463540157931412688597\",\n            \"3550769633626957920535415329535\",\n            \"-3923968524034696093714727315085\",\n            \"-4025531993361587655896041896848\",\n            \"-188450492479152136768542630378\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-9632952156052895819744271379361\",\n            \"-4884426114142676161683078815655\",\n            \"1839921941370111674080951268455\",\n            \"-8242503028303467805329769377593\",\n            \"-8839943769048065292932997859326\",\n            \"-7067251768733441732414994112967\",\n            \"4523867687328920768404651884895\",\n            \"4871179227553544008972518619850\",\n            \"-6057694139116711199472594493097\",\n            \"4059555045350317377455403338609\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-473059709957241261159046271732783\",\n            \"1980262112011223122009659766419299\",\n            \"-12462833368369094491640116529143\",\n            \"-1189936951170501491703143185809120\",\n            \"1637235101820702334443602525486638\",\n            \"-2031029039226482674092805839096008\",\n            \"1673643328081327255616083846013952\",\n            \"1515455878435179342948918055102912\",\n            \"-249177468182679514366885827523443\",\n            \"-1462399863102676315035000336009503\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"404343261308094133306771010587258\",\n            \"-2509027130906219806348103780125817\",\n            \"-2235370619058054613214526829812775\",\n            \"-2180139572932375906797575417923006\",\n            \"1786990964606634697851218573276596\",\n            \"-222676010348749137040908415328994\",\n            \"2148962315756674060907600200655578\",\n            \"1131231890777254296826085678598694\",\n            \"-209000893739050027703488315683250\",\n            \"-2491331756189203304481882066855639\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-185542581219629399352774704587796685\",\n            \"-394902121829278205437359525805807857\",\n            \"590713072897259853019691937013503396\",\n            \"502758727281988975427078318543416657\",\n            \"-443747842243734666697335489578837039\",\n            \"5042221370262609425633645769887675\",\n            \"-591977482927777323690326997409238587\",\n            \"292422542569899682160719976080427761\",\n            \"605833396059257331402310165203375182\",\n            \"-9563525518418491930653260896379776\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"334166123380339702684858383425230913\",\n            \"-637729563446579910264265173398457924\",\n            \"472769213866685799294818860568678399\",\n            \"447146791822178801527521581709580511\",\n            \"96610773493845656033107109605172170\",\n            \"-142602384805506729332865726614124340\",\n            \"-310601730706741597007959967153005294\",\n            \"354280041691278605239105907920727029\",\n            \"320355952808759932183649996729527966\",\n            \"331701763416087509468808713667332601\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"49073461277677362785760660857736919947\",\n            \"-169416908345824675858705165355626189812\",\n            \"84167001824144890089789137366638401928\",\n            \"-23409106148842837235476212707694687403\",\n            \"-30271474341226497841818553413331361753\",\n            \"-106504152229661458377059178821397168599\",\n            \"47171294945627565796345213643071625567\",\n            \"22970191271966763243715811330493877198\",\n            \"14863926779301434690221505350909619916\",\n            \"110474698934476487574067856333615082472\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"125849800007107590516369492180395552578\",\n            \"143148433387379660832193328066338030792\",\n            \"-72853653543700073732079719513168773515\",\n            \"123778760286761947686806074556748610584\",\n            \"-105565654733279392109260625797964696434\",\n            \"83264246581235221617996610103577182490\",\n            \"-48415572079837050298521191611988793535\",\n            \"55401352808652663867123392021289274501\",\n            \"18767844067668706651480236415919760235\",\n            \"149963850691371825124263493422131099303\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"125053867195111854928850289325494913185\",\n            \"-141558821655686526589894984641859254355\",\n            \"-70235167406408960299018082636911869127\",\n            \"-93931785069493972666863586219173004358\",\n            \"-33652465762715830748074030542843712877\",\n            \"43131529119131579740991924094501938303\",\n            \"-56826490505262593726163351863722744454\",\n            \"26080328815831670206668453834325133999\",\n            \"-118301668341141860875674987759645097183\",\n            \"-137560743311784101467304719508764176954\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-13389\",\n            \"8685\",\n            \"-12385\",\n            \"8428\",\n            \"-23847\",\n            \"2877\",\n            \"27301\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-20601\",\n            \"22726\",\n            \"-19831\",\n            \"11763\",\n            \"-21024\",\n            \"-26976\",\n            \"-3495\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-7613329\",\n            \"-6191296\",\n            \"-6562342\",\n            \"-2775043\",\n            \"-4626420\",\n            \"2253566\",\n            \"-1356456\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-1881110\",\n            \"-3472963\",\n            \"-1986841\",\n            \"8110500\",\n            \"6613282\",\n            \"5706723\",\n            \"4659122\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-845165868\",\n            \"-123936040\",\n            \"-118407476\",\n            \"-872134111\",\n            \"250077717\",\n            \"48927889\",\n            \"-1242740962\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1257436866\",\n            \"1664895293\",\n            \"-1592574645\",\n            \"1054532878\",\n            \"1586386182\",\n            \"-1423067232\",\n            \"-433225350\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1448117074\",\n            \"991933747\",\n            \"-2007741814\",\n            \"1096958894\",\n            \"909454330\",\n            \"1945230524\",\n            \"-1135940304\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"454731687426\",\n            \"-410445542500\",\n            \"-275815453925\",\n            \"232188471199\",\n            \"74176210838\",\n            \"172694874896\",\n            \"-432229161881\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-237742907009\",\n            \"291725362921\",\n            \"-375456133851\",\n            \"-172555537749\",\n            \"-77222985727\",\n            \"75467983132\",\n            \"355603655065\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-103229358570432\",\n            \"-52384313969783\",\n            \"125123784330760\",\n            \"49147811785670\",\n            \"-76188420587913\",\n            \"62077347858917\",\n            \"113236111966942\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"16839675737350\",\n            \"117528188223946\",\n            \"-83215066360284\",\n            \"-106240126895133\",\n            \"-140610775675863\",\n            \"69161046340219\",\n            \"-5367620164209\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-28041939750005\",\n            \"-9849374173718\",\n            \"-104280463802980\",\n            \"68340765792259\",\n            \"50866601864200\",\n            \"-124901901785729\",\n            \"94320105961599\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"12964636865091758\",\n            \"-30900961707076249\",\n            \"-34235023432781587\",\n            \"31452849974220059\",\n            \"-32116433493349645\",\n            \"15056454641844697\",\n            \"3220380516817924\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"11565990132652309\",\n            \"-1979115219549902\",\n            \"-9506105015296441\",\n            \"-29947064953359026\",\n            \"-35723741290819777\",\n            \"1692216018015076\",\n            \"16174544022195084\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-7310963412698136424\",\n            \"-165597943071933948\",\n            \"-7957288198886101326\",\n            \"-1416681132847790179\",\n            \"2279955654231160293\",\n            \"-9208861139945806119\",\n            \"-2871834669649394603\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-4691141329322093701\",\n            \"8948849172004914148\",\n            \"4989049806853973423\",\n            \"-5955920418702428305\",\n            \"-5005462481578120888\",\n            \"-4824298625293485550\",\n            \"-992020992384580885\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-27391602612782822280\",\n            \"2319008273932661576621\",\n            \"1379487111365773121977\",\n            \"694284593718405260502\",\n            \"1761355855168617262841\",\n            \"-1515770924964548454668\",\n            \"-989979187498153392043\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"198638501199435366825\",\n            \"1125019815452792395133\",\n            \"-1049896359176778070473\",\n            \"-1601152615237961695468\",\n            \"1050439216436645606582\",\n            \"1663568252582913300370\",\n            \"-2061203660241370183042\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"2113036292339854435848\",\n            \"-1939642742757517734568\",\n            \"-28192641056500022357\",\n            \"-739364128466490143441\",\n            \"-814580364884709918305\",\n            \"-1154955975185230844627\",\n            \"-1921376171526945915117\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"155234916517253223214669\",\n            \"54569816973154769361790\",\n            \"-396264903716832274146123\",\n            \"-233058506077293724737866\",\n            \"-259977111446647844862201\",\n            \"168457257727401353456526\",\n            \"-440383324891821228732709\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-317523940996880385737765\",\n            \"-93963745003535018073676\",\n            \"424089378343927508686049\",\n            \"-547783720395248736053345\",\n            \"-573590139412320114240415\",\n            \"-279824181416708109089356\",\n            \"151946399597755342049492\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"28344600382890942689933714\",\n            \"61364243140907583311935231\",\n            \"-154265345511422448987361885\",\n            \"119378359869607162352295161\",\n            \"94263708499987060050544722\",\n            \"-133072175861722803758097907\",\n            \"-11704454779169713276909351\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-98751232093166611752967870\",\n            \"-139312664474034269271128429\",\n            \"35063444117900395179797093\",\n            \"102516806810490076849188468\",\n            \"74192717816812033285854691\",\n            \"-146743149862829000033130770\",\n            \"-141832950190420181845392446\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"78201965083863028268161981\",\n            \"-9069855773037171038336750\",\n            \"132188050847166348693715478\",\n            \"45312541275344755216581315\",\n            \"-57072509286905908805327196\",\n            \"-17639505153037819959882217\",\n            \"78921165012102074114569802\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"1613854197834032136730063430\",\n            \"-8470408631766558968143580401\",\n            \"-26796998771160976867597896819\",\n            \"-13968703974822115617423495877\",\n            \"16391297684868529484428246628\",\n            \"31996253723693099758880092348\",\n            \"-28515449027235056800026707822\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"29003901243034261051999340651\",\n            \"-9217872751721264488488548966\",\n            \"-36037333564320399226575507178\",\n            \"13184620706272928711369564930\",\n            \"-3484312485760312610634417682\",\n            \"26298119669598487256561916979\",\n            \"-10337073506268829385902024212\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-8395953463471428775558712544937\",\n            \"3280829292043794132363911327400\",\n            \"-713339165879923703523124951611\",\n            \"6966592500081948880026911531684\",\n            \"9458860222968810665112995514695\",\n            \"-478657998044149303771109777456\",\n            \"-7822981040467488960380110589645\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-7687380421442439073984466158397\",\n            \"1255125729759094668996545862678\",\n            \"4087370506300493221899403471926\",\n            \"2239990096185047591766535855780\",\n            \"324855577134097258958507078312\",\n            \"-3747605668465760865974870493838\",\n            \"-7517467382536093238063723586773\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"2264136733622961048042169712287\",\n            \"-3680763311587562301144245715244\",\n            \"-6085544815496196698212373259054\",\n            \"-4725158409155890778538182765011\",\n            \"4471247291507677347209093541425\",\n            \"-7596184803597155735867437286639\",\n            \"-5336764833430717836720119834307\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"2366929765190575517610613077354934\",\n            \"-933660721467627547628108668944304\",\n            \"275402050086771070341080860167297\",\n            \"-364049334222814377243385829475539\",\n            \"1802721796043278974720830665216534\",\n            \"1876897254307941830406818341784439\",\n            \"-407308419988080444605787064480067\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"1653560379001616793860692123874411\",\n            \"150784992794639309979528542957154\",\n            \"1110971968475734226805305846564008\",\n            \"2480908389064352508977069518804243\",\n            \"-271941929813911201105163823221822\",\n            \"2522624759865770340700105525537365\",\n            \"-1998298580902951627476767136760592\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-303303768433761525871131397626734735\",\n            \"580204425169654418247447034004051762\",\n            \"501559035276733743240608210997496006\",\n            \"434014792885862484071273298300463825\",\n            \"103329211286006486949233240613271101\",\n            \"-505666350544432180911151793361598853\",\n            \"64165233750039998288773750264121396\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"424864295799616426484212056964871888\",\n            \"-152810042904774611567602887301612969\",\n            \"477355529458883774205927095018255750\",\n            \"-613775486154323397471667167311948258\",\n            \"-30862514129841545507008489633366896\",\n            \"262491469819294261426016375408380504\",\n            \"128848914605896127620809659768891190\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1176728107084355805100360783355792854\",\n            \"-7236188428562180415879913333530957262\",\n            \"47292783010039120381519447577145042690\",\n            \"-81565099348678451031823780150331852600\",\n            \"78688059613057943024694270282505199422\",\n            \"147423850372516204461538795771199943752\",\n            \"-82721829556506668110250246860473354784\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"151022194687816907306712480755439984350\",\n            \"147565573622060292887781241703078453904\",\n            \"-166782516227114338666555252025171372201\",\n            \"6746685360027376523977385526199820516\",\n            \"58540530404008066096527055300466378045\",\n            \"25319977592399722647228094404431005983\",\n            \"75030966136806031996061647057535591049\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"121830200727005461151499890045616240332\",\n            \"131014485689583600627833063453380752758\",\n            \"-30720940443795603452473820184705126436\",\n            \"-15668097962838507353292677213849146239\",\n            \"104461885360038312673700885512336746198\",\n            \"-119938884501349847589471389439448814622\",\n            \"55172679667339024457950426429614765191\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"23120\",\n            \"-32572\",\n            \"-22215\",\n            \"16976\",\n            \"6717\",\n            \"17948\",\n            \"-11665\",\n            \"-24766\",\n            \"3353\",\n            \"23320\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1104\",\n            \"-30742\",\n            \"17502\",\n            \"24977\",\n            \"31980\",\n            \"-21331\",\n            \"11269\",\n            \"19058\",\n            \"11761\",\n            \"-29057\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"8257019\",\n            \"-1751304\",\n            \"-7837619\",\n            \"3010154\",\n            \"-2333966\",\n            \"-204198\",\n            \"-7074295\",\n            \"-6464090\",\n            \"7365046\",\n            \"4895822\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"1458664\",\n            \"5699996\",\n            \"3620616\",\n            \"-6624045\",\n            \"2550814\",\n            \"-3036255\",\n            \"1587012\",\n            \"-3365811\",\n            \"790235\",\n            \"3027254\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"442486938\",\n            \"441457258\",\n            \"-74436116\",\n            \"-923568700\",\n            \"1944924352\",\n            \"-1941482279\",\n            \"-1125035682\",\n            \"-102135544\",\n            \"-1196111163\",\n            \"1765877471\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1765031209\",\n            \"-1507660239\",\n            \"-1844477793\",\n            \"-672110186\",\n            \"1975877216\",\n            \"-1203240404\",\n            \"274438170\",\n            \"-1671550411\",\n            \"-554361568\",\n            \"-163722651\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-1263789103\",\n            \"489447307\",\n            \"-566090243\",\n            \"284044302\",\n            \"-1836581764\",\n            \"1548735264\",\n            \"-191701487\",\n            \"-173609011\",\n            \"-166293908\",\n            \"-1503453842\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-7765917028\",\n            \"-67711994811\",\n            \"457867171231\",\n            \"335464190692\",\n            \"-319749552548\",\n            \"-252965983097\",\n            \"537149590956\",\n            \"-106161385680\",\n            \"-489362544078\",\n            \"-324766745567\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-229499927632\",\n            \"65253348718\",\n            \"104144370442\",\n            \"-291236114406\",\n            \"397153316552\",\n            \"-2446986870\",\n            \"-123088300656\",\n            \"-203970057575\",\n            \"-542590736363\",\n            \"-190268824826\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"53278510251890\",\n            \"27395352245810\",\n            \"43165128890490\",\n            \"-125549371097904\",\n            \"45913496601859\",\n            \"-88777298033268\",\n            \"-44578278857847\",\n            \"-63182483121634\",\n            \"-615189926077\",\n            \"-76357287782650\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"125574339986876\",\n            \"14897658308787\",\n            \"72773174883515\",\n            \"42123525241235\",\n            \"-92023130876220\",\n            \"-137779513626577\",\n            \"128721948417075\",\n            \"-131284549575073\",\n            \"-72682195461575\",\n            \"-92062818915183\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-56667925886322\",\n            \"48625292283487\",\n            \"118021699876201\",\n            \"-129645086891796\",\n            \"105886580754602\",\n            \"-81412745473268\",\n            \"22079958372753\",\n            \"130176891204108\",\n            \"96533194170193\",\n            \"11884025784665\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-506532673811626\",\n            \"-35650957401620111\",\n            \"3797359512863061\",\n            \"12274676970376749\",\n            \"-7643350403625116\",\n            \"-22952047899787933\",\n            \"-31801747497539952\",\n            \"34825544608002068\",\n            \"-2163219849477806\",\n            \"-26717933056837916\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-18117789352537263\",\n            \"-9588508057343771\",\n            \"14147544466407231\",\n            \"5358112868530619\",\n            \"15194998186633362\",\n            \"-26368440181218293\",\n            \"-12926433949412576\",\n            \"-23715017719955956\",\n            \"2124625137004533\",\n            \"-28761382221979366\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-611587277931329314\",\n            \"4788391799910085501\",\n            \"2015606813848422210\",\n            \"-8162441603711661172\",\n            \"-3434406396031032576\",\n            \"4201771398235074913\",\n            \"-7185844575809467367\",\n            \"-6124286884318139459\",\n            \"9104770916622956359\",\n            \"776894361998019584\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"2442968139182218751\",\n            \"-6191133470861120460\",\n            \"39377695956604263\",\n            \"-1911371627459726404\",\n            \"-2032902584307265533\",\n            \"-3918625665352066431\",\n            \"-3011351064796167752\",\n            \"-4761219044304366605\",\n            \"-5873710765610430386\",\n            \"-4865925097841000964\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"254629702353421818300\",\n            \"-2201401895035914287579\",\n            \"162176927797961571359\",\n            \"-887977538520723081192\",\n            \"1559680077891008200419\",\n            \"-1522754607817991562870\",\n            \"-1961188309718634913132\",\n            \"1306926884755953118990\",\n            \"-2195000881232701833676\",\n            \"269742032865994089514\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"506826741901505999759\",\n            \"-2184273395087508003256\",\n            \"924141038875577992170\",\n            \"-206907928631225444602\",\n            \"1962143049953611087716\",\n            \"743436553398815951437\",\n            \"931022352993641629959\",\n            \"-1854695194903132671547\",\n            \"-1981929463828562067483\",\n            \"-276972122424764490843\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1493690505338340259685\",\n            \"1586809240658822057888\",\n            \"494350090577058363533\",\n            \"-441261947278991503330\",\n            \"227960094120329115559\",\n            \"1848792322278602742922\",\n            \"1557617272354574911225\",\n            \"1731256272922066434300\",\n            \"2146230871407347076666\",\n            \"-918839131781624132904\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"22548387681410857803984\",\n            \"-486740942160285075283728\",\n            \"-18757726112678919772843\",\n            \"290325417808337495708055\",\n            \"-493613286382529175399469\",\n            \"-543640826835836745923553\",\n            \"305872812141626487961328\",\n            \"182680085006567454977369\",\n            \"-381084632278529532946167\",\n            \"-438390880171661736974263\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"456312474649470033816393\",\n            \"-115833852286009708732615\",\n            \"68058901001059387892663\",\n            \"449536434823641408121541\",\n            \"550535224734224663866259\",\n            \"600242006088744661574795\",\n            \"-474373221742191222036625\",\n            \"-240661321200669878886195\",\n            \"510976975891324563556258\",\n            \"56581084876567011909938\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-55030941453838611172063173\",\n            \"154562453921435135381589722\",\n            \"43654862091121183246335073\",\n            \"-37043561098272538846899535\",\n            \"-84012525778134679892504063\",\n            \"90521181578289106753547859\",\n            \"-121101532794400375638986820\",\n            \"-48962126032349923649363889\",\n            \"-49416297762321316497159289\",\n            \"91097613555149997187554026\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"740754556792408749652437\",\n            \"-48364577771068363588552848\",\n            \"22689046979811309216159063\",\n            \"-49805825990806434744728742\",\n            \"-129575325280951011614339770\",\n            \"33686330327503040241226442\",\n            \"132098550234954179034221650\",\n            \"-19568317425318962814852019\",\n            \"-85488236163679977350384849\",\n            \"-32900134218496126753349349\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"129277452246091321049329712\",\n            \"70220503267517710030799158\",\n            \"27372362666191002140346309\",\n            \"150017068938796641247123814\",\n            \"-83181229560758393426889380\",\n            \"78268145282577350329747809\",\n            \"-92583446733322174938991138\",\n            \"83334736171733181604682678\",\n            \"5792916388018467792831905\",\n            \"-79110296716121790367484224\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-6762857221159250494826450291\",\n            \"-10332119938961796101160722490\",\n            \"-6827819665107707846347452358\",\n            \"6329384513346831358274334163\",\n            \"-35228914666708609766335933234\",\n            \"-18048951629266414989346849863\",\n            \"-27226935845799367007517234093\",\n            \"-33993966153233641238453751768\",\n            \"-5449254845364088654662599852\",\n            \"7541505715737170338078113293\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-27624667007791025693852828942\",\n            \"29791087942990315789537070065\",\n            \"-31210197914933328681784492817\",\n            \"-20492515931057444475484015790\",\n            \"-34897600909921210666914133162\",\n            \"21001866866717994908958026000\",\n            \"34533628665541062590101591605\",\n            \"9988772685214552755442833227\",\n            \"22086548704119049555142576363\",\n            \"-16156072487413105847081955974\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"2364616944071636050694451730445\",\n            \"-4605392974112860339491707249622\",\n            \"7762016214564113231716204977147\",\n            \"-5804616094053219373113235353220\",\n            \"-7149030242509106300895187420705\",\n            \"-8733720516856953446393989573010\",\n            \"3766997683445225481997098610374\",\n            \"-4681729003393749052094837537164\",\n            \"-3858591495312700256431295473053\",\n            \"-4277910894337725265278367498545\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-8345846769042618988327927260668\",\n            \"3034158729600895891904384787679\",\n            \"-121178995572767479680968825369\",\n            \"2753730356624797067210787714567\",\n            \"8954963579041823082665982027392\",\n            \"1270742333952628369439000703669\",\n            \"-3722978202569846960374550742749\",\n            \"8821702309083726610115002889572\",\n            \"-4646910584068123191099120325769\",\n            \"-8235420195270182384004027445084\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-4599292704126802281290827035912\",\n            \"-314623101152193205334021409871\",\n            \"-629541047462259285195633937282\",\n            \"3573126210904165261265049508014\",\n            \"-1688995622757664479276042953337\",\n            \"-954432643427450256096079589970\",\n            \"4799594864439399541828732234249\",\n            \"7068551937371368971824412562795\",\n            \"2938601954614403464560201414377\",\n            \"2583981951692907177619688538873\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"1801390123686604711395138083864347\",\n            \"2408175799973869350806431040308722\",\n            \"-1778542198055167111435408713744051\",\n            \"2503317898880974086644685985961064\",\n            \"-1868573144190196894242583180400118\",\n            \"2413853351573616737379149363424791\",\n            \"1791133303754307763813804844006693\",\n            \"1880584363502969839626017340127067\",\n            \"2319612620308107999768959466515839\",\n            \"-1312849382673356132056970324156720\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-2310170941545151210165819902499827\",\n            \"-737480739959391674903038969492449\",\n            \"-2309694820066177770799513479215373\",\n            \"1423472051904245134846442992358971\",\n            \"260457318140005904743337186826997\",\n            \"-1594690225193818094407079633825817\",\n            \"-2186698024851903659624127278863647\",\n            \"1502160181086743651783854079119431\",\n            \"-249207087322062171035117292968436\",\n            \"131669942196137162081550281921265\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-221840655914556742984533980869327276\",\n            \"541288680814766363243902199787661875\",\n            \"259521991726914299693855180749498836\",\n            \"-642098028427571595255754897557274431\",\n            \"102852117125804159452269997724256795\",\n            \"-619484029498534054293488403236201260\",\n            \"-345175355591714711803667121166327599\",\n            \"-301314861888172625598139699349559259\",\n            \"-609730883416842409062992565799074655\",\n            \"230365679128699815563056808949145224\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"148237310969220211917376683153947791\",\n            \"-210879956694236410559514093773799189\",\n            \"68825095267034031802766092342803122\",\n            \"21069100059826162651376609239596285\",\n            \"595526602428177494983219729529252005\",\n            \"95671763294916433447636192505612543\",\n            \"-121882858245568611085988770451861605\",\n            \"206325916742129711002135164503598699\",\n            \"57651974744686292971156031485809986\",\n            \"-320734725725255645082933245576075729\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-138584416420268103904526275311550821586\",\n            \"5083386037235063597175109391737322324\",\n            \"26128220661314654796494761140594032479\",\n            \"12192498025672996200511955739264829627\",\n            \"85947824515275949989859778737001518967\",\n            \"132920098023348124785802079171904221898\",\n            \"111246451182495893420608179633240106537\",\n            \"-4547602311363102763260302847649859534\",\n            \"-43987674707274853293509031074465543646\",\n            \"-7024578484047164009719166261798276072\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-98438730789672041852593692005666781163\",\n            \"-50079767906520589446732692469907844466\",\n            \"-161434501044028603998001795580533038376\",\n            \"137619979466523372085843169543259266571\",\n            \"30806070627846697101821976362585151873\",\n            \"-20974889368336688743196860981435677443\",\n            \"-118421326318547135923082579581184125588\",\n            \"-36658255136000073539449905192106631248\",\n            \"41010547609721177330707111502953515617\",\n            \"116618718482647675602042707539708842430\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"56783177633153952864226073173557138209\",\n            \"-106939684114816004877527397111208670733\",\n            \"-53010195457974371105397833315577691496\",\n            \"-71944649577959370180890395897943740754\",\n            \"97436272237031860506529444641492486685\",\n            \"75452790723745404169344305366343804695\",\n            \"112051243374889808475698084777418001497\",\n            \"28127293814479165375232961041795735138\",\n            \"-79340368891394516117475712925796793216\",\n            \"161366149054331422136847320127220486305\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"30263\",\n            \"-23222\",\n            \"-24262\",\n            \"30483\",\n            \"-5838\",\n            \"-11101\",\n            \"-7596\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-28613\",\n            \"17283\",\n            \"12286\",\n            \"-15277\",\n            \"-25348\",\n            \"5314\",\n            \"14687\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1641157\",\n            \"7771466\",\n            \"-5863310\",\n            \"-7519258\",\n            \"892965\",\n            \"-936146\",\n            \"-8184473\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1892203\",\n            \"-6603897\",\n            \"8118473\",\n            \"4954349\",\n            \"5950071\",\n            \"-4001964\",\n            \"-563295\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"2105362262\",\n            \"-569111656\",\n            \"1919017986\",\n            \"1876055546\",\n            \"-1146939193\",\n            \"620406159\",\n            \"716539407\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"2083506192\",\n            \"-1628538025\",\n            \"-479438046\",\n            \"-1422963534\",\n            \"736679219\",\n            \"-1232279592\",\n            \"-724157284\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"1286129607\",\n            \"745445705\",\n            \"1008263313\",\n            \"50113482\",\n            \"-1025981626\",\n            \"-96567663\",\n            \"-1070688111\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"418265202101\",\n            \"-131132103981\",\n            \"476092459444\",\n            \"-88185972192\",\n            \"208316876344\",\n            \"287012809896\",\n            \"-90799129473\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-364027495907\",\n            \"-518301781733\",\n            \"-87293329789\",\n            \"131975972315\",\n            \"532952706734\",\n            \"65088425600\",\n            \"-389552284897\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"31618280405118\",\n            \"-136363944920194\",\n            \"-24219400967405\",\n            \"41351280642367\",\n            \"-133525694845951\",\n            \"33222176685107\",\n            \"-48907606129826\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-74180834940463\",\n            \"-120438687871068\",\n            \"95491516668458\",\n            \"111229832917865\",\n            \"33731924194747\",\n            \"-126511275125177\",\n            \"-139437230946699\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-81052755845134\",\n            \"-75947916229442\",\n            \"105789356551279\",\n            \"-77360764385979\",\n            \"125756275622911\",\n            \"92621084693706\",\n            \"-8993873340097\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-218063399041728\",\n            \"15987427800048505\",\n            \"5452953879269108\",\n            \"-2907032193248868\",\n            \"762605768430446\",\n            \"-1095257289404828\",\n            \"12083366342031533\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"10657562176134064\",\n            \"13537179043764834\",\n            \"4147191201684311\",\n            \"-15913012985064112\",\n            \"18305247661337724\",\n            \"25826108878037669\",\n            \"27185142855300649\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"7185681950550884166\",\n            \"1151981239380928488\",\n            \"8244169834678820702\",\n            \"-304666117465982921\",\n            \"981971288330668381\",\n            \"5795574764637974961\",\n            \"-5602631342767621026\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"8858282230609918710\",\n            \"-5845597164953171622\",\n            \"3853395376773770978\",\n            \"-5420964350807318652\",\n            \"-556878098560662410\",\n            \"5157835722577117011\",\n            \"-3095549053985906766\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-980234476785800984103\",\n            \"1785410146071585960280\",\n            \"1741125755543744357745\",\n            \"-2307966711214941804481\",\n            \"-373078769867949398924\",\n            \"-1086641478410581865639\",\n            \"690547933962974045594\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-885097049671576555174\",\n            \"-1893945141563298628450\",\n            \"-1652678503714833255734\",\n            \"-1522111312512895545246\",\n            \"-1668888046878977777801\",\n            \"1230021831666666579759\",\n            \"1588026688627154194388\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-917162439303146482401\",\n            \"1294154478309086604917\",\n            \"-1353063508538165826259\",\n            \"1022085074719266892796\",\n            \"-1562172028448696446044\",\n            \"1827858998664290349067\",\n            \"-1884237502299830467832\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-484334248622047005148813\",\n            \"148191614369576787178350\",\n            \"-41916037311516330068416\",\n            \"564042302843825437811083\",\n            \"-223411708998089161582419\",\n            \"-493169217694889240887888\",\n            \"168822761929986834961244\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-76559387748666164545163\",\n            \"-9254395158022788547985\",\n            \"-533412485676057805450960\",\n            \"149982043973998367780013\",\n            \"331053556044991173393445\",\n            \"514169254104754203169529\",\n            \"-24148845097144387020494\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-110794762039637748701547811\",\n            \"-112781226990835664252750191\",\n            \"-126691789751592065497849314\",\n            \"144891347683530500307750752\",\n            \"-95002620477467921055244746\",\n            \"40308052656613620648154342\",\n            \"134142133925977560550824382\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"46547963198244968911697774\",\n            \"97558079483281440143910654\",\n            \"42302799957358224994647507\",\n            \"-23653725784983135812047124\",\n            \"-73629112624555133955638884\",\n            \"147336720269797653946599523\",\n            \"49289602849638790286981280\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-70628982960116517292670785\",\n            \"89897841125429743744022708\",\n            \"40246726976710463297014640\",\n            \"-18507266936458323746034023\",\n            \"-127317537089789264088083641\",\n            \"147526034684993650522315979\",\n            \"104950772823463920929967725\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-7959063299212980364945888769\",\n            \"-12214855654426558559365015380\",\n            \"25951542396314432482289253877\",\n            \"-1020221313976375715276389621\",\n            \"-23858719187545844530085394517\",\n            \"26756899139375533317181309141\",\n            \"4149356920572734945386012056\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"30516050835182806794120674336\",\n            \"-24853046938355580136642360705\",\n            \"17673256930214912186178705872\",\n            \"3794080846648515873847989399\",\n            \"-27519999940588367143793580557\",\n            \"-24055845379132928502612582185\",\n            \"1667643406878176303891605843\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"7481053395824836436290423884846\",\n            \"-593931320626780956465988943779\",\n            \"-6000659640663712751730791207087\",\n            \"-90100969836256549622480172858\",\n            \"8857339616569823715364996577725\",\n            \"-4550234737408799149611645636613\",\n            \"-5298498692956294201665781009355\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"2183123309024430871493750993081\",\n            \"-7601532421099550450707534366673\",\n            \"-7300980343536532697821828736934\",\n            \"1354900935970415000060545678696\",\n            \"8198340038238087506252124691672\",\n            \"-865479512261563494978410780512\",\n            \"-5046161384947842589369454777111\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"7048037667368946471394838100018\",\n            \"-6071852502042552382040623004150\",\n            \"-29904067906303750173605027886\",\n            \"671351089519547849465678121449\",\n            \"3143301561492705185485961790751\",\n            \"-6145271153767518350310952751439\",\n            \"2739965492773135139400075441125\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-2567371035309291572933015418896592\",\n            \"-1613418673846353226340454921565057\",\n            \"-2365064503966708848862797241011316\",\n            \"-1542776028214362902586142929151475\",\n            \"-2077125689533596049348241259664237\",\n            \"-2395709824654377963034101663677500\",\n            \"2440524930359057180265130201332264\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"126271990461855730642053909769616\",\n            \"-2141603070621807963066899994069276\",\n            \"-2176132802609488796741574791492255\",\n            \"2332352886535253698579202178516320\",\n            \"-1988660127485179422598316866522748\",\n            \"617466151275332301720527118576755\",\n            \"2496619525601425389231233102949834\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"231635227467662539191613532700092322\",\n            \"357886376162746208586158220391320643\",\n            \"372166497885582630320382738692891137\",\n            \"-387074150560768584146102878863840104\",\n            \"-397494095284070251215509382375703502\",\n            \"540335898477711720687165346731799594\",\n            \"154690828219053775405144687447110697\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"656778981191586847022137324312215960\",\n            \"378543348336505847394761525402250912\",\n            \"-170070094972872823236801280112198457\",\n            \"-10242741317397583042355113808738618\",\n            \"89873395803487425288992885513379780\",\n            \"304757291680949813380778307009872780\",\n            \"-139647342743838007971248857009724115\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-131203220135616441025612961636698464749\",\n            \"-136533237651213770170219781290216699170\",\n            \"-115015389154631152533856730671459648641\",\n            \"-94487920510079112453883494033826826524\",\n            \"56128697101429071079534166874945886309\",\n            \"62210939351804546691896889001498845763\",\n            \"116499323952286447489475520935718675981\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"111388442425565536328400022570545560941\",\n            \"-128274800782884675622442061938835593669\",\n            \"-21259026684892744639073607446054060342\",\n            \"-112426553286465994874443695017393042924\",\n            \"-6478832771211729175837331925924806054\",\n            \"88007792352876262937416934703934442548\",\n            \"-124891073986219943979478446893457381063\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-53247472166305185804034744604113912186\",\n            \"63873846134112392155257205697721451801\",\n            \"-44185307140014507458077369663628065550\",\n            \"82459261534617980418389187926742556129\",\n            \"-91555320299720623336768030419645817723\",\n            \"-11478808234125256915529445366937625010\",\n            \"-284101804019488359263241192605820668\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-21109\",\n            \"-3732\",\n            \"-7946\",\n            \"-2257\",\n            \"-3925\",\n            \"-30469\",\n            \"19503\",\n            \"8362\",\n            \"12991\",\n            \"7380\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"7887\",\n            \"17931\",\n            \"-27968\",\n            \"-3196\",\n            \"-31776\",\n            \"31067\",\n            \"32277\",\n            \"-8764\",\n            \"-31456\",\n            \"-29467\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-8341014\",\n            \"-1946977\",\n            \"6040551\",\n            \"-2571346\",\n            \"-6392818\",\n            \"2115232\",\n            \"-2447337\",\n            \"4046082\",\n            \"-2062834\",\n            \"2887198\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-184184\",\n            \"1975807\",\n            \"-2304689\",\n            \"-5917706\",\n            \"-7687940\",\n            \"1428040\",\n            \"1997257\",\n            \"-4160391\",\n            \"942644\",\n            \"-5375074\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"461428707\",\n            \"-1396927537\",\n            \"-778825702\",\n            \"-1909514860\",\n            \"-890594087\",\n            \"-360960780\",\n            \"1809000906\",\n            \"635847266\",\n            \"310435728\",\n            \"-904068800\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"1160190062\",\n            \"-145728656\",\n            \"1783609630\",\n            \"-146939811\",\n            \"-842989885\",\n            \"-1768700091\",\n            \"988218247\",\n            \"148328980\",\n            \"-2071975098\",\n            \"670872405\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-824363066\",\n            \"-368967389\",\n            \"1685375538\",\n            \"1129837916\",\n            \"22659316\",\n            \"-1334068320\",\n            \"442107323\",\n            \"-1555351812\",\n            \"1240907608\",\n            \"32207466\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-467348909083\",\n            \"161337736582\",\n            \"534040697288\",\n            \"147508961254\",\n            \"-55643966274\",\n            \"338027786439\",\n            \"-116692579226\",\n            \"-269893444320\",\n            \"196082834886\",\n            \"251179928243\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-470003994676\",\n            \"322677755949\",\n            \"240704268230\",\n            \"503601093424\",\n            \"-298384610687\",\n            \"400606205208\",\n            \"-418170073845\",\n            \"-133930730273\",\n            \"134075361471\",\n            \"481801156891\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"3339778666379\",\n            \"-52347274197695\",\n            \"69720482084171\",\n            \"98924128655576\",\n            \"12928263807684\",\n            \"-6851555304470\",\n            \"51780495955443\",\n            \"83679464532035\",\n            \"-127505675951073\",\n            \"138274778683006\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"125929064682987\",\n            \"113730203099244\",\n            \"-100066179950776\",\n            \"-85878295227479\",\n            \"19299300138707\",\n            \"-108539192136351\",\n            \"99138900176365\",\n            \"69954325267229\",\n            \"-74544791461254\",\n            \"18922888907199\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"45485569650205\",\n            \"-128562887157102\",\n            \"-97873632139797\",\n            \"30278398120164\",\n            \"50653763282967\",\n            \"51088353337222\",\n            \"70065775683504\",\n            \"-138552521631772\",\n            \"-77979604107570\",\n            \"48798953674588\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"9248286127591027\",\n            \"6920015266380308\",\n            \"-31298699416650301\",\n            \"-32620123808864302\",\n            \"-8198521317945035\",\n            \"-31784959087849283\",\n            \"-13290835987057648\",\n            \"31560002024245360\",\n            \"15568532723510774\",\n            \"-1887653675336702\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"6474236439552209\",\n            \"-15895902060435063\",\n            \"-28567392174760254\",\n            \"28377048461337220\",\n            \"-4788924744301655\",\n            \"-35902541227577686\",\n            \"28213667178040981\",\n            \"27374686655345350\",\n            \"-9347347706094784\",\n            \"-22558945363830613\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"4315782565441521668\",\n            \"8173082059740912464\",\n            \"-4674157300377953730\",\n            \"439018152229220757\",\n            \"7259585234958472340\",\n            \"3209551603044381642\",\n            \"-2593722905832184497\",\n            \"2027467253721370766\",\n            \"4711777015859247337\",\n            \"-1809157338227183996\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-694544658659246762\",\n            \"-4156045606313107281\",\n            \"2281142887622773123\",\n            \"-624104445088573071\",\n            \"-3987668248832946150\",\n            \"-1357628067592529656\",\n            \"-7104181881423591417\",\n            \"2383273081562892502\",\n            \"4853234144609282656\",\n            \"6571580420114899404\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"1101678549357629021477\",\n            \"2009977653178126846280\",\n            \"2037345716315195820691\",\n            \"-2096610127883926523376\",\n            \"2194680562745348805943\",\n            \"-2143848724610431766410\",\n            \"700093503999313554640\",\n            \"6460670107803288774\",\n            \"1291134572995199955560\",\n            \"-717095483870334127208\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1449785013926244904068\",\n            \"1586111973600917779568\",\n            \"1975689855672951561335\",\n            \"1946100167589360666679\",\n            \"265628521821771152170\",\n            \"-948749623912750799141\",\n            \"-1084337593623251031397\",\n            \"776286080436824555132\",\n            \"-494554638041660841031\",\n            \"-401685002986893137940\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-178940137819013596278\",\n            \"-370142275253865396698\",\n            \"-156303150104810810130\",\n            \"-822078323048785455176\",\n            \"535756974328325498532\",\n            \"-890371668586461515474\",\n            \"279474091115067270095\",\n            \"2075769840894911144578\",\n            \"2271112074461256742768\",\n            \"1263298342536869880178\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"107390994480706624333240\",\n            \"-272629086063015754481125\",\n            \"-125381849980531312111076\",\n            \"323365287095819927005598\",\n            \"166918591791270045548611\",\n            \"541466210731753290375920\",\n            \"412426989884687859377573\",\n            \"-373858895152711407562897\",\n            \"349597921666518744534201\",\n            \"-477064957800482399571210\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-350456949692319622870317\",\n            \"105130553074956289619769\",\n            \"-454855427531984650401861\",\n            \"389828363885037529338500\",\n            \"-45149503960310017108207\",\n            \"-364809035488363237149074\",\n            \"-212095481090572510124715\",\n            \"208001365502923021156304\",\n            \"-132773639805291311517839\",\n            \"524948545150003066797425\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"35259018232949564354576762\",\n            \"36343724900171873095814458\",\n            \"-47507355485359376375717880\",\n            \"-57533411745939815466380662\",\n            \"-60092847738452003317331023\",\n            \"3800735336914918445567351\",\n            \"137812953107886858371793906\",\n            \"34225766901520865002566632\",\n            \"-132405725520797481081665087\",\n            \"-153398838732410672130385737\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"128319155253991829531389637\",\n            \"43165460069726070921482804\",\n            \"85467445526390304512322840\",\n            \"-146762181884606435611421185\",\n            \"-126844884930818972344264748\",\n            \"34361835173349993323133217\",\n            \"-68547202891841302450583744\",\n            \"-40167006696488837265069472\",\n            \"-74901074229595686899584654\",\n            \"-68749948940724462847250795\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-38290033550964318063135667\",\n            \"-20967313541687634038075040\",\n            \"-107264911137060066098734846\",\n            \"89584407711339849997950109\",\n            \"109335186095373309975629513\",\n            \"-14494027827192960963596349\",\n            \"-67509403216005821639193263\",\n            \"109578027592798760144924982\",\n            \"116834891439714631179635997\",\n            \"109674768496669329805900472\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-13706828639541826056708910505\",\n            \"-23779415475695806226285335701\",\n            \"-20403054366535638844892685460\",\n            \"17926682575342545857820109930\",\n            \"-29969666635246903811911577159\",\n            \"4322913582730437845509857109\",\n            \"-5090037359725837740805001421\",\n            \"18248885943719255743411625340\",\n            \"-12657516075527000586763065411\",\n            \"33671850711466671188705676643\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"21441226402320291786796151469\",\n            \"-489973429642209279383578568\",\n            \"-36568669593686005393185481762\",\n            \"13796971801458472172520434088\",\n            \"-7994017766016214184641016553\",\n            \"1561490110301188737024730447\",\n            \"38074453848227878221879512526\",\n            \"-6611262569813139733823741726\",\n            \"23022812151767616798249226140\",\n            \"26695316798647697932393341179\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-6126422073163258556989145139770\",\n            \"7257045667636323814171654348911\",\n            \"-5274091940900155174972411849180\",\n            \"-6812696260414552303993540333266\",\n            \"-8500309156232696643300971495939\",\n            \"5321769864659588392049817499314\",\n            \"-5039830093949469211483714156812\",\n            \"-6633027512060316645790696983007\",\n            \"4340429228631480058324378799636\",\n            \"-1630878746182595626723753451608\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-7314945488320426565820671586637\",\n            \"-7406514689693791623767541892888\",\n            \"-4830710931884289793431794199249\",\n            \"-3758167604048365457370249362898\",\n            \"5317862646659352563988454094829\",\n            \"-748850916109857148485910907057\",\n            \"-2993387002194928323024015231901\",\n            \"4211954164724882453586630364110\",\n            \"-7408921561114481661493286530975\",\n            \"10033288108411665452743017188443\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"8053572570098281818356964596376\",\n            \"1908605622493118035491961007084\",\n            \"-5937699460286270647647349131356\",\n            \"-1407164418808891695839274066972\",\n            \"1026031202093754747593428440664\",\n            \"9128075080231853627740826681361\",\n            \"1150734293920781967788066491325\",\n            \"3575593240656154263696537723347\",\n            \"-9578952592909740118052990539663\",\n            \"9788570458322925906731674034571\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"2546167711754510531653417471247239\",\n            \"1864915514804198253374517101253374\",\n            \"1572251731593167469136110804788032\",\n            \"-1816600003045057303909283771795164\",\n            \"1520652080462583011477916567108957\",\n            \"-1734147169849373491334306258765538\",\n            \"-2447614261820877423091669867951531\",\n            \"-1826396544811346698392237371607395\",\n            \"1502568816413254345265156473409654\",\n            \"-2014610313148128366910629261789779\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-1855163614050249786123016316161336\",\n            \"893899277550555639055767796543205\",\n            \"686227439600851989589634986801690\",\n            \"-1484196902391738874780681638450259\",\n            \"1181153298481188649464625411550110\",\n            \"-257877919422309608044093539127999\",\n            \"2468479739575998772676829454099709\",\n            \"-1539963498806165921795637993389302\",\n            \"-2243382068201233838876165984414063\",\n            \"491038991263905025700206542020861\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-597285041655777508836370117424546286\",\n            \"-212915674112372713563243155334464735\",\n            \"-169733400631355230665246923231564106\",\n            \"-257695180843856835976546761814974502\",\n            \"-159199708769938756688005712105595720\",\n            \"155463228870223105562821637784150991\",\n            \"-421604544463741431747680657332448481\",\n            \"192822447775661213463129358744172317\",\n            \"-286626526760237236497088410330567742\",\n            \"-601517958441081087199398706025786382\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-82547444875501132761785352487359116\",\n            \"-246593569791118450786584777558750625\",\n            \"-91844724030484160072926648255143672\",\n            \"-69252035825753540780599407037419460\",\n            \"644781206633544756310104714559447256\",\n            \"-262845596528177736487020213988699925\",\n            \"-375729034479299520248775176155207770\",\n            \"-479941467647966077592734215031877163\",\n            \"286117330727391846690235616502481186\",\n            \"-7294278388158531393325689448264285\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-169130959752592548102532341751116281504\",\n            \"82587899769437528472252758495774486404\",\n            \"-77723031252037678358942277533026624307\",\n            \"-39787175488615223575962629928173399959\",\n            \"-103079418527774040874191095440451368115\",\n            \"143404785392510227499220384378768451023\",\n            \"98751717881147885089187606548239643742\",\n            \"-80471675701993721480829704293444582397\",\n            \"-13432971458738065305485925445592722750\",\n            \"-68143198119846648770859620166719802\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"82277432281188444270047990740605736453\",\n            \"-140504957823814927502089640850816061182\",\n            \"48534660051854785030554289649407895158\",\n            \"6422771152783983559395644304289119920\",\n            \"162012152615078454305645544989583091731\",\n            \"37269704291699978324341128764605257057\",\n            \"-58248048235361087656770889990621980447\",\n            \"134745944265183112641665968501631304489\",\n            \"-9136434632101510662083878921980605716\",\n            \"-11817844733230924939043201144789838478\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-17709917998817602362457338930665430374\",\n            \"100705413630779255802749096858430372336\",\n            \"-65652752408617833644830081929182653005\",\n            \"78721980566008540939950320927524467430\",\n            \"-157085052161045001481271504295196155720\",\n            \"21700226768392088200691166712143650173\",\n            \"89253038833049482190072700821475812886\",\n            \"-42386752776532873392991410023518397456\",\n            \"34328803512588938135564393642000374714\",\n            \"126797458053317029746311576365125139325\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-3880\",\n            \"28077\",\n            \"4580\",\n            \"16362\",\n            \"-18975\",\n            \"-13634\",\n            \"29579\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"22466\",\n            \"-19394\",\n            \"4211\",\n            \"-30616\",\n            \"-20114\",\n            \"24229\",\n            \"-5149\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-896877\",\n            \"-3561706\",\n            \"459204\",\n            \"-7986999\",\n            \"-3891501\",\n            \"591660\",\n            \"-123828\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"7455787\",\n            \"-2954938\",\n            \"8061044\",\n            \"-7704103\",\n            \"-4283355\",\n            \"-2688704\",\n            \"-3286813\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-1733165912\",\n            \"1441221142\",\n            \"-711447900\",\n            \"-1370755477\",\n            \"-566470981\",\n            \"-1689066002\",\n            \"-1518943706\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1167592421\",\n            \"-791885241\",\n            \"-1679872731\",\n            \"-41746999\",\n            \"1369029801\",\n            \"-2099305061\",\n            \"-380693461\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"1876525998\",\n            \"99057337\",\n            \"-1107715390\",\n            \"-1940677144\",\n            \"-240324753\",\n            \"55473962\",\n            \"1797328299\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"295503234342\",\n            \"231420286475\",\n            \"-7245442623\",\n            \"-506030630708\",\n            \"112634015563\",\n            \"18061760994\",\n            \"-112548836018\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-365159103775\",\n            \"12635282946\",\n            \"-514650575463\",\n            \"-389272826188\",\n            \"-475262038569\",\n            \"8128202421\",\n            \"349784367667\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"105099742726339\",\n            \"89319467966898\",\n            \"-45683396076389\",\n            \"-21990516959323\",\n            \"58719877204527\",\n            \"24673773662587\",\n            \"109803579959540\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"117460253140304\",\n            \"53310537831787\",\n            \"-50260601769156\",\n            \"-86329701674689\",\n            \"4117449846060\",\n            \"-101524170218096\",\n            \"-39178939801212\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"116693494366735\",\n            \"-98720295094103\",\n            \"-3387455956043\",\n            \"33422455841875\",\n            \"72646014377284\",\n            \"-54216173525379\",\n            \"-107085335515558\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"33982846762129193\",\n            \"18070113177751228\",\n            \"-15344533360160850\",\n            \"22967009312426432\",\n            \"-27693105018949244\",\n            \"-19447372654909311\",\n            \"5526992817880686\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"22051072322444431\",\n            \"25739994011608686\",\n            \"17590147555692963\",\n            \"-22084188037496810\",\n            \"-10818514363912056\",\n            \"3629814651214680\",\n            \"-13864921149293605\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"1477505808877528725\",\n            \"-7970299900821284128\",\n            \"797529455893208185\",\n            \"-4380462832684600\",\n            \"-7512565283888184630\",\n            \"5963752963276377801\",\n            \"5383033152533304312\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-4687001791650362047\",\n            \"6189713819111473364\",\n            \"6157195100346646067\",\n            \"-7354274856118962216\",\n            \"-2096503882079843374\",\n            \"-2989958959527548003\",\n            \"-6990431314703212402\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1543053224502515824700\",\n            \"572944953559834661337\",\n            \"-463017450276577476402\",\n            \"-814539245715762117156\",\n            \"2125610462348570304645\",\n            \"-1998974164978877476896\",\n            \"218777334538713492026\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1737306797700142536355\",\n            \"1531804891962626834702\",\n            \"-1195046210647179987202\",\n            \"2315927533477943693088\",\n            \"1955617169829065459239\",\n            \"-622025738336427455680\",\n            \"1268127968239165761772\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-1605308004306756881486\",\n            \"2011474158613556880412\",\n            \"-399796168662135031326\",\n            \"202881347434850907252\",\n            \"2019703887423617334184\",\n            \"716418631018448992152\",\n            \"1206220294128077626983\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-439233385375980423579188\",\n            \"-282388747616905814633943\",\n            \"89357877650443882966242\",\n            \"-141495542322748990965271\",\n            \"394310253761853869007932\",\n            \"408555292651658924207417\",\n            \"31352288232225179050347\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"336925051011166695076987\",\n            \"-104340070149410931907855\",\n            \"-577270465951816735176538\",\n            \"-257830029049203338174931\",\n            \"-208291608961639617152387\",\n            \"581220927173979115429157\",\n            \"-486086206006317637743805\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-29078699886191649638085668\",\n            \"-58403200017753206157268711\",\n            \"-30728609198387149996274670\",\n            \"-64955510531916364593021196\",\n            \"34821390565272973390205800\",\n            \"-93422825258783366802978133\",\n            \"-32247179645343680253023813\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-77365678100681876623290641\",\n            \"-86628826177603420327288998\",\n            \"9220094682835113941854095\",\n            \"93882093552015539929945204\",\n            \"-150721224176965634213377599\",\n            \"43753026435426938659269571\",\n            \"66570450267194288255165042\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"26300179792340119797864079\",\n            \"142433122880117613936146124\",\n            \"-15440885853316070864672346\",\n            \"-77502061475155985937091480\",\n            \"-112852326686297479782561254\",\n            \"72434505811059791598110246\",\n            \"-7668392160648564895359533\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"29239766717040730171831641774\",\n            \"-21707593058421917306282917041\",\n            \"34516607235563142943063617602\",\n            \"1193640916706101190985687069\",\n            \"35195812678373567674988713830\",\n            \"-4604316293532843686268059747\",\n            \"11180352632046834701829653097\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1512268160667408885922336144\",\n            \"10844547914295271624025530713\",\n            \"-36215819512055547591428396750\",\n            \"-2810331321951135608956464976\",\n            \"-4386752948121646037249312193\",\n            \"-17767553783444186492160681129\",\n            \"-3024939524547086439531257635\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-20864326575772010142787316454\",\n            \"7488713151399696482410740417311\",\n            \"6381276422733482520358034285380\",\n            \"8884761350831459122090428512810\",\n            \"9969195609900524295444588216806\",\n            \"5543397900882544648824130766348\",\n            \"2837938767703679300265023672696\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-1882854523229835368724322985294\",\n            \"2966116522928193897186452665796\",\n            \"6823275008349281974665560465394\",\n            \"-8062354025481937215315488548524\",\n            \"6765883098885847750323695485797\",\n            \"2224258611402637372812075498606\",\n            \"1096213966837685819229458326999\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1594645032934746910233970766445\",\n            \"-7888607865300585433234547082596\",\n            \"4568621404199252787882732641526\",\n            \"-8445702981648004651693271114722\",\n            \"-7061451521435267187519509650848\",\n            \"6696570366244357679289327894924\",\n            \"8441199880199722664043107998393\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-968352259610893197064576275508718\",\n            \"718654181183934094051419872500011\",\n            \"2514405299754440481837754186402421\",\n            \"1800516623297456299756852785790978\",\n            \"1735762811642360734642777500928026\",\n            \"-818427028473555572485098076829014\",\n            \"-1159041509361012508054712578014787\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-53546281846072725871658001435887\",\n            \"-784630734436542795241759169811923\",\n            \"-718526749795888797678293952454287\",\n            \"1156515964581299989003720410728362\",\n            \"-838405070125273270332512952593048\",\n            \"1940449904167314426051872957919891\",\n            \"-68651512522935345206569837233327\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"572850491437435230154655178596404256\",\n            \"255907180028216856698708583682335802\",\n            \"467380937533420611084983609639927678\",\n            \"-578776848219875222429940192462905503\",\n            \"-305437010432528222408867961277657933\",\n            \"444241914984458649589370317558151484\",\n            \"-437642956538688234838513076311369227\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"358312056397600081928352831952683806\",\n            \"230966521966579976309413468582413234\",\n            \"-454572317314346054050950281223398637\",\n            \"-514645527798405383965741984798628527\",\n            \"178604228774099539826674396572478175\",\n            \"-617509561026367858818205129274682551\",\n            \"516749383280600313391592174692222877\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-123120621344099237933440205349374488066\",\n            \"-32225408253558378935144372215319566228\",\n            \"11301001788743914587399424830593135310\",\n            \"-52673174720412201741335076711264329300\",\n            \"-118712794710184498260756820285222988657\",\n            \"28574446760716238823537127611396566250\",\n            \"46215799970023783748448065488919483477\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"58353390412480195555770446835562760276\",\n            \"4833546377833498062150899905495355127\",\n            \"58373007706619991431855338114454320484\",\n            \"-70703504770529836816766481390613100369\",\n            \"143910284033581946098683712226489458302\",\n            \"117235434241994039601754355029907027922\",\n            \"100290083016626428361996754831114825823\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"77825035066067814510953781223725256637\",\n            \"100986125463015864365041226255651190014\",\n            \"119992813429982672016306816732813811809\",\n            \"138695082079580523445519172685734788839\",\n            \"-93300896559078568544280378088130535661\",\n            \"-21512916011354134398283958037251369915\",\n            \"-59254623236285041945205874576696705580\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"18754\",\n            \"-17855\",\n            \"-30143\",\n            \"11781\",\n            \"1051\",\n            \"-18103\",\n            \"3181\",\n            \"30569\",\n            \"-22565\",\n            \"-27059\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-10966\",\n            \"-15974\",\n            \"20424\",\n            \"21589\",\n            \"-20157\",\n            \"30323\",\n            \"18376\",\n            \"8005\",\n            \"30511\",\n            \"-8141\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1843361\",\n            \"-3517196\",\n            \"4625468\",\n            \"2321631\",\n            \"-7687911\",\n            \"2778344\",\n            \"125068\",\n            \"-4052771\",\n            \"7945865\",\n            \"6630921\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-2367184\",\n            \"-4826645\",\n            \"384943\",\n            \"-2111816\",\n            \"-1600561\",\n            \"-570653\",\n            \"-4103404\",\n            \"743335\",\n            \"-1107912\",\n            \"-6354480\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"1229589203\",\n            \"-140746934\",\n            \"-1838286677\",\n            \"-1878305406\",\n            \"1961215412\",\n            \"1250128901\",\n            \"-1166900225\",\n            \"275507073\",\n            \"1193731503\",\n            \"117609926\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-2112929173\",\n            \"2144863319\",\n            \"1992254245\",\n            \"-1937627007\",\n            \"1514668427\",\n            \"-1839905388\",\n            \"-1528455662\",\n            \"684780309\",\n            \"285489556\",\n            \"1981384197\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-1886553183\",\n            \"-442912398\",\n            \"32808274\",\n            \"-183696654\",\n            \"-36971109\",\n            \"1971012659\",\n            \"-1278373247\",\n            \"-1688683464\",\n            \"1543369024\",\n            \"-1978222221\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"516696037327\",\n            \"-133356328060\",\n            \"366887410082\",\n            \"229447810393\",\n            \"-446554774147\",\n            \"-403087474672\",\n            \"-332879324979\",\n            \"-201414959734\",\n            \"69326493096\",\n            \"425678448609\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-439293553812\",\n            \"81933805742\",\n            \"-183895960348\",\n            \"-496786511195\",\n            \"313438779807\",\n            \"490045940301\",\n            \"475167170007\",\n            \"-102296474200\",\n            \"-69324984155\",\n            \"-419967280054\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-96551143452313\",\n            \"122054609553289\",\n            \"77940246274132\",\n            \"58988438553627\",\n            \"-37681781403480\",\n            \"-19891162801465\",\n            \"135285406649690\",\n            \"-79327539900948\",\n            \"132470331657036\",\n            \"-6480637466609\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"139797814993535\",\n            \"30274745342542\",\n            \"112817172422674\",\n            \"-52131523918633\",\n            \"-137459606352282\",\n            \"84222662933576\",\n            \"-98419098319107\",\n            \"6437228832991\",\n            \"81243750066175\",\n            \"-6421108664511\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"77769134597368\",\n            \"72127816622848\",\n            \"16103132204416\",\n            \"-7118137065494\",\n            \"49038964068498\",\n            \"86622864654107\",\n            \"32928568991190\",\n            \"-93632446337391\",\n            \"72127053286297\",\n            \"-103694778424640\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"22116565043461009\",\n            \"-31711615551037511\",\n            \"2821246731201391\",\n            \"-13351247986191283\",\n            \"-15623501709378161\",\n            \"25262423813103532\",\n            \"-22343569817384923\",\n            \"25928473716871331\",\n            \"32038496333487076\",\n            \"-6890071520503891\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-16647068290977681\",\n            \"-732120677335230\",\n            \"-33532489576560866\",\n            \"17792605822942940\",\n            \"24198243709120098\",\n            \"-23282344775422150\",\n            \"-28675151281288448\",\n            \"-14495501421676227\",\n            \"-1863883724884560\",\n            \"10312379020348421\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"5502360856538125985\",\n            \"-32644019016852151\",\n            \"1564692446235537384\",\n            \"-117754471439160800\",\n            \"-9013223642801616724\",\n            \"-5023267401335837159\",\n            \"699232645927291479\",\n            \"-3584329191084872093\",\n            \"-1311864165271950824\",\n            \"-1215291485581331201\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-2526466500631342193\",\n            \"-5409822186679340641\",\n            \"971670265469264458\",\n            \"-7179072119717361795\",\n            \"7670806788162789754\",\n            \"-8318882969144120324\",\n            \"-9117830171517155584\",\n            \"6877332662750891661\",\n            \"1068609140965782417\",\n            \"-4925546114463183284\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"57583945723378415772\",\n            \"-342232111928136964405\",\n            \"-1195237978858213658562\",\n            \"-2068806789801380063600\",\n            \"-345026535447781896266\",\n            \"133610950746109877229\",\n            \"-450656040906061504998\",\n            \"-1893962609238091988400\",\n            \"2350599054313986251061\",\n            \"1880733516481080050212\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-2249590711027756564860\",\n            \"452844566121110339696\",\n            \"-1922925439694884164421\",\n            \"-1550876878150832998572\",\n            \"-1185260961134674742569\",\n            \"-2039283323590053548044\",\n            \"-1687563918950261572963\",\n            \"-1944597896900829991591\",\n            \"-2359460784165763037898\",\n            \"-849961236635718175763\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"39964951314827779563\",\n            \"-372589960613063031098\",\n            \"-438035602871932031986\",\n            \"-664149217874104492300\",\n            \"-775029718832463979623\",\n            \"-1435477218213206627730\",\n            \"-777662353097751064825\",\n            \"-262402700201170887022\",\n            \"-1133936324748952947710\",\n            \"1327754548066739872375\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-190787733056613599495219\",\n            \"-515734754496362833319535\",\n            \"-574734864992365444843708\",\n            \"156606116703304701360073\",\n            \"-548629563358608342499088\",\n            \"314352279479464825255103\",\n            \"244688836299970664478495\",\n            \"223517627384801717925625\",\n            \"317460265141706669756597\",\n            \"-143088760391778698353724\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-121682002183738855835622\",\n            \"33829240294738771467442\",\n            \"561539377338103121964304\",\n            \"272589000480746001955982\",\n            \"476056122948827385095616\",\n            \"-483571374749297317898197\",\n            \"281143130465809637777850\",\n            \"-252495987618098543389302\",\n            \"394527250215970829835810\",\n            \"-371881433858127168330471\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-57554220355698316288465256\",\n            \"-76017540520824653711945808\",\n            \"-119283376705753351997748235\",\n            \"135285600664968889113349822\",\n            \"-56831347642867226553961594\",\n            \"-16457633406117235070315269\",\n            \"94381218510174633599528949\",\n            \"139553957700687764923892613\",\n            \"-53986781389720021194280790\",\n            \"-19994198089108196976112296\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-82576387180835452318210228\",\n            \"-49951144242867126451613703\",\n            \"62645934474937602509471162\",\n            \"-22809010733349138696349721\",\n            \"92648271949016552757106864\",\n            \"88129191312931452389255255\",\n            \"48011438537493230295219061\",\n            \"-78095235259711088591460034\",\n            \"132652997750328176815451796\",\n            \"-127305214162620317777045127\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-130726889859542614597966076\",\n            \"-56150188916918748446918856\",\n            \"131676166120048204530142114\",\n            \"-94402515536541962124681830\",\n            \"-141920082631622521770167745\",\n            \"138796510001418272242292175\",\n            \"-25121938667485895566695315\",\n            \"-121172442589103978423419243\",\n            \"-20614593640357879353182241\",\n            \"-82772743389453364089604477\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-29032726342801534955983348833\",\n            \"26158471499703236988192974887\",\n            \"-20114116207465444344361601128\",\n            \"-8681577131743649610696414703\",\n            \"32981177147751632167653843307\",\n            \"10715468167954459453141416666\",\n            \"2302451135115289498612037956\",\n            \"23070910964316738454734382371\",\n            \"-33075125932954753049741121323\",\n            \"10179913539917748846617161898\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-18085869738221726864797815861\",\n            \"-22337076672294140460410142760\",\n            \"-36126257950244891489093166216\",\n            \"32551071786984003673681244792\",\n            \"-2850364559142517973517854327\",\n            \"30988135871042625915127743204\",\n            \"6816014999562698392234131960\",\n            \"11494536675490631889014354130\",\n            \"19518893252904531723609256491\",\n            \"30427336543604275087551984403\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"2206367769081757187272650503139\",\n            \"9091361631393367270835435652597\",\n            \"-8424167241080231285345475239019\",\n            \"5834959797812027161305666236164\",\n            \"5192168644968070279507303594280\",\n            \"8341506527326618523722473942428\",\n            \"8594436209974939893446936907176\",\n            \"8681682547098842826265765019748\",\n            \"-5209020223570640459802520771750\",\n            \"6129943703376515947722773721600\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"9047109249979470996987065428892\",\n            \"-9799662424789913378125551587573\",\n            \"-10747887838497246955184907970\",\n            \"-7651592187822100343817178833722\",\n            \"6010095747552236822560336347090\",\n            \"-9204712857936864198407587203238\",\n            \"9268329208382510346394692142454\",\n            \"8372710454424791445966082256342\",\n            \"-9589445085108256491425243830947\",\n            \"-2939036102518584405497956526954\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-5392971967770555579833623091396\",\n            \"7010238060604152385637944463012\",\n            \"-952157695963924409916700180566\",\n            \"9774556009383087545392285658966\",\n            \"5770727225973437448322228561807\",\n            \"8118034587530249294761621086593\",\n            \"4629045275285811417199668511474\",\n            \"-3061439446531807421688403151892\",\n            \"-1370462548021359419092251720599\",\n            \"3949264862782238848089672597134\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-2122708269622350729686602450849918\",\n            \"133816358693598033876477261324945\",\n            \"2416602162368187687173545193833207\",\n            \"1033421043633734739603132153227481\",\n            \"1940044255763482239251273519489903\",\n            \"122404165677034509854998880971649\",\n            \"2115709380653150711430911081473587\",\n            \"-954697183455914334514087563443341\",\n            \"-2123319112143807840315352640840117\",\n            \"2069575612420264676616069495687633\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"1692523376605227556299724175506026\",\n            \"-560133778627251677678012123636755\",\n            \"1544300548641566325099709876685852\",\n            \"745074432149870035759595939596681\",\n            \"-1954945128503766900016994683433198\",\n            \"-2250046900317020802445312714834438\",\n            \"-2385830584607782067723440542099762\",\n            \"132290783232525067349828502622213\",\n            \"422538990938605269068919642797432\",\n            \"-1355056714352703736683115064904273\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"569637448050074280085390862207666873\",\n            \"-493782672094432637986628201979332547\",\n            \"559997888965253767870152932047889365\",\n            \"-192294596493342415461227479481558644\",\n            \"-467823747943914593693180397447717393\",\n            \"-180358592750289795012663508384651702\",\n            \"-277633416434123648393250047500800405\",\n            \"-161316286985680702736242426514896331\",\n            \"-107565346718017079645076760979976254\",\n            \"-343028720252730035978891475737130091\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"234202228460068979568708307032847949\",\n            \"-40201170775316769341182286764965389\",\n            \"-548980577113599607444799254971433151\",\n            \"541309219470209179356416121398240002\",\n            \"-434133022569940359270892323517092074\",\n            \"-273560039796167418597819102027246382\",\n            \"-476192949086818994497703488377408870\",\n            \"538618952671800675393447490544116473\",\n            \"93123165923308661421936492785506839\",\n            \"-637742333921319974000307483554747580\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-57037547117361632743720819923766599836\",\n            \"-98043608090325780586069692996244560497\",\n            \"-58505160656452186950211173738911382547\",\n            \"-101832799685426843314478830415915453714\",\n            \"88565658613827585716212234902487873212\",\n            \"37993662471162893207714631860591274024\",\n            \"142774451425889543215285746860042086262\",\n            \"16769512069264042461946104154625579535\",\n            \"-47552828674887709372081650891476109271\",\n            \"-42213620497501762639143979558467451605\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-147371756269307190381561519577768333146\",\n            \"50001054768402174217442186921551216212\",\n            \"-37909857998845694340361772993373171274\",\n            \"26488762795056480696073949053739280517\",\n            \"148945896988690949823595206483101743044\",\n            \"72542903931524796290465216241047509873\",\n            \"-167126191952176091620300581762459791416\",\n            \"7988430434861579711046106333746313228\",\n            \"-93130434033478424433799959885140345146\",\n            \"-3441472474979605847594343058062446207\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"46136426115595487614083206992753880226\",\n            \"-152038433918307384545322896116023034965\",\n            \"78938265199256609159965233504637641814\",\n            \"-92829030003981682199112271693126981849\",\n            \"10428026972710553277643628999246199628\",\n            \"-733720183320183133584540075760187261\",\n            \"-21944082237248471904000697107198113161\",\n            \"77626504391158473624750083478122906448\",\n            \"-159953023283206971997917750080649331297\",\n            \"67741969038939169538736690551212738571\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-14965\",\n            \"4396\",\n            \"-28370\",\n            \"13432\",\n            \"-19302\",\n            \"-25134\",\n            \"-2325\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"17774\",\n            \"12772\",\n            \"4697\",\n            \"6699\",\n            \"10195\",\n            \"7948\",\n            \"-1073\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"2170666\",\n            \"7768056\",\n            \"1730086\",\n            \"-575771\",\n            \"6874141\",\n            \"-2918802\",\n            \"-4009750\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-1145774\",\n            \"7588162\",\n            \"2538941\",\n            \"2814807\",\n            \"6420688\",\n            \"5552162\",\n            \"61716\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"475579788\",\n            \"-2110736469\",\n            \"-1038349020\",\n            \"860173314\",\n            \"685087056\",\n            \"2099281387\",\n            \"274916519\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-1655873120\",\n            \"-1731031947\",\n            \"561894379\",\n            \"867850098\",\n            \"-1594780953\",\n            \"467730702\",\n            \"296381326\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-270809066\",\n            \"-1724753578\",\n            \"1076930264\",\n            \"1046992208\",\n            \"-900063126\",\n            \"453135840\",\n            \"-1402444227\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"543756676973\",\n            \"13894519068\",\n            \"-471273054319\",\n            \"-361667009872\",\n            \"347117046185\",\n            \"352117261872\",\n            \"428679947623\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-414574595169\",\n            \"536827742264\",\n            \"73835628644\",\n            \"274376152363\",\n            \"294589390066\",\n            \"-11991628898\",\n            \"-253347644755\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-19215636889418\",\n            \"119919740703605\",\n            \"-53215288815658\",\n            \"-33327361054276\",\n            \"45198301326977\",\n            \"90776449725838\",\n            \"138054869379894\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-119367237365312\",\n            \"-140091389309758\",\n            \"15475687696688\",\n            \"-38031515520518\",\n            \"42841758149017\",\n            \"69022243350084\",\n            \"9179513583233\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"41132552781971\",\n            \"41253830277347\",\n            \"87359934843401\",\n            \"-95181726796502\",\n            \"27768710470810\",\n            \"65809922501001\",\n            \"-24863795602983\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"292236195126093\",\n            \"22719593938564618\",\n            \"-19218388071157930\",\n            \"33981265825341884\",\n            \"-18509717253371672\",\n            \"30580146808867540\",\n            \"-25999233818244727\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"28135088215434228\",\n            \"24773690318810918\",\n            \"-26724803220639117\",\n            \"-29814061818363701\",\n            \"-10766489482800560\",\n            \"30758073781326745\",\n            \"8776059520448382\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"409254481003117766\",\n            \"-378161134041351348\",\n            \"-226782297600641326\",\n            \"-2884040847263852027\",\n            \"-8247477639592596195\",\n            \"4107975741440930492\",\n            \"6909135551839426970\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"2652868014887595347\",\n            \"-938854012354185866\",\n            \"-1598192800799770751\",\n            \"-8491269256089485178\",\n            \"-872167601828525845\",\n            \"8058502300329141671\",\n            \"3061608648711594103\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"146769264186631567632\",\n            \"731409928392690360238\",\n            \"201264820200577960524\",\n            \"-1212063678184800014575\",\n            \"1402459273537500628832\",\n            \"-1321984359334412491423\",\n            \"2211457652738431111859\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-1847588624832707279911\",\n            \"-1813942494389916835789\",\n            \"-1958404120436196946126\",\n            \"1723793223754906327044\",\n            \"91104121605339071868\",\n            \"-37127427643123176929\",\n            \"-1759281127620720025265\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"621171459171060457840\",\n            \"207620657443600214064\",\n            \"-404297398702992699514\",\n            \"1641661352402425721053\",\n            \"-1968173283051339556925\",\n            \"-1975771117070391869479\",\n            \"-2326206316062007904468\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"157960797511886924834578\",\n            \"-341648681181914186464072\",\n            \"-496733650079984967364838\",\n            \"-444089180371365298276212\",\n            \"545885788394993954738089\",\n            \"335428473992315516320770\",\n            \"-8497165329921324825223\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-38994153758728840237480\",\n            \"300952907927512214570952\",\n            \"-312533402564800726680664\",\n            \"-384239115396249647073708\",\n            \"-93282765318781444842024\",\n            \"551248528363972986694971\",\n            \"287731359865140964525224\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"101025247865168925900922830\",\n            \"54857286231629651663501039\",\n            \"53544859669524419312467353\",\n            \"-124478605232939875253548620\",\n            \"17285305918706892564565360\",\n            \"-109106338103303620219905680\",\n            \"-39866206645357083787763508\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-85724769944287781078609302\",\n            \"-11704976431025150432522098\",\n            \"-140709446005420876354105607\",\n            \"118949605388441528679717522\",\n            \"147415669254850277731131009\",\n            \"-2518242221011392198813403\",\n            \"-110299103632345032256326636\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"132459645720204436026597326\",\n            \"-75684750458331130703402700\",\n            \"122558708866408634795154753\",\n            \"-110485976053300938316559281\",\n            \"49084715923367850211269998\",\n            \"96960123064705845023119238\",\n            \"123180430855167057989302957\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-18936205707758319951200347669\",\n            \"-37258565469174214424589588093\",\n            \"-24453048320489113118458406056\",\n            \"-10587746588216050364022206474\",\n            \"9748825791372076261497902071\",\n            \"36545682723514548638183652663\",\n            \"-25861598120327052219989832099\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"34252212325207935596745602246\",\n            \"-23818237350808788371236620972\",\n            \"36226019636259967938400145050\",\n            \"37192973754494387619137336106\",\n            \"-5057174993081801990711137100\",\n            \"19315470624682365399645492525\",\n            \"-32772028697629595902245624670\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-6792023322456998237800922079479\",\n            \"6549013706052367027552378139504\",\n            \"-9355871158471909412376307831412\",\n            \"-2030077667778674905770995357453\",\n            \"4297878705058522858422532653176\",\n            \"-2236484269757156229891142724479\",\n            \"-6040135630828160347217599800148\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-3599439677962085785168307719800\",\n            \"-4245900385327794216010405726579\",\n            \"9450764155817872025990436327715\",\n            \"8656233260540192979968625227977\",\n            \"1160854863482601034702346632871\",\n            \"3956026374789035457631650901065\",\n            \"1453599630928365440553293992121\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-8915771384062939324293344072095\",\n            \"777633297413063771199232835099\",\n            \"130337830279869604841710324103\",\n            \"-8373921460052275293875653314023\",\n            \"-5246842589420902120766262884279\",\n            \"3729544269328940809924381217876\",\n            \"6272763819900035423590366605426\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1617716673371462402162303323419703\",\n            \"26336765354063275118084261528831\",\n            \"1492712908830805398072707084234922\",\n            \"-219159852068967847470786902528212\",\n            \"126542964660097922190866932619843\",\n            \"889878290610547866308346440500254\",\n            \"2086140459688639708299971129281292\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"111351977899132479809610701899734\",\n            \"883054552995427224030821200597311\",\n            \"-2065448421761013752757262983625041\",\n            \"1742123659066570365356027485580166\",\n            \"-1214139633564246959114082011858323\",\n            \"-1329417508775576485092806838462803\",\n            \"1116415564152726849396179280195975\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"25792382598206920383056857113445849\",\n            \"-225206309711067108325919531991796201\",\n            \"404950774727900383585705746884848243\",\n            \"-470637440392131155991087245263637994\",\n            \"230147369983625933489964301980421634\",\n            \"-371436034781333002283883627046974041\",\n            \"560240201817281749776706447503520796\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-184751107296655537872267341147777926\",\n            \"329426487040671280863523825102062539\",\n            \"-418105543114253529014238351683881534\",\n            \"-617932739175887659472533031137397189\",\n            \"498336206481632051733278557649532891\",\n            \"580985420014217396923072878340987450\",\n            \"-205539611656251655979522315213206497\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-140752175559703681946897226667461340778\",\n            \"6561236723375434393948178304575297047\",\n            \"-51434996264522492401719681071804511089\",\n            \"-125946647710302371061500790543557458955\",\n            \"-133398205151504361614506341930758954997\",\n            \"-25733469644094471567565487452545498665\",\n            \"44048098477441865782455673692289495153\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-145448294825692173492641127474455264094\",\n            \"-121372206006141296987868818880832869230\",\n            \"-141786136125809700329851146916010465431\",\n            \"-64699237500646340071065763833604265646\",\n            \"-57587914054490682697769053906782102087\",\n            \"32192058203820777323675957815817034772\",\n            \"111541312639824620042046577015667034684\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-120964441901874362290104187440391939364\",\n            \"-96084745151601772727177422680207591805\",\n            \"-166536914660320577793788842820747499277\",\n            \"61156293370756011979833006538029339427\",\n            \"94985231961279433991237396849461866817\",\n            \"43959734247759347414496739857098340817\",\n            \"-72248466678766711563463040091419174562\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-6120\",\n            \"7057\",\n            \"-6295\",\n            \"14831\",\n            \"20732\",\n            \"-7444\",\n            \"29138\",\n            \"89\",\n            \"-31431\",\n            \"-8017\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"32489\",\n            \"16222\",\n            \"-21842\",\n            \"-24054\",\n            \"-29957\",\n            \"6345\",\n            \"-3733\",\n            \"-22295\",\n            \"-1301\",\n            \"10500\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-72740\",\n            \"-2017731\",\n            \"8013529\",\n            \"8012822\",\n            \"8352456\",\n            \"6421813\",\n            \"-2425529\",\n            \"-6607883\",\n            \"1881808\",\n            \"-2234254\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"5181661\",\n            \"-3577958\",\n            \"-4493738\",\n            \"-3295135\",\n            \"2544246\",\n            \"447427\",\n            \"-4432217\",\n            \"5249513\",\n            \"-4448902\",\n            \"-7992598\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-1569315361\",\n            \"418335588\",\n            \"341076905\",\n            \"-730203548\",\n            \"1269521259\",\n            \"1784051884\",\n            \"510427112\",\n            \"-1268247751\",\n            \"2018024071\",\n            \"997087873\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-162075630\",\n            \"1319926606\",\n            \"169298867\",\n            \"-921839919\",\n            \"421705930\",\n            \"1771873235\",\n            \"437874475\",\n            \"-312980929\",\n            \"-392069627\",\n            \"-1446413247\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-699761346\",\n            \"-1098413742\",\n            \"800470076\",\n            \"-841985366\",\n            \"1782178243\",\n            \"-89008181\",\n            \"-1616551429\",\n            \"1946816503\",\n            \"484187966\",\n            \"-128499562\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-15033977299\",\n            \"-446057719500\",\n            \"481043288478\",\n            \"205263251758\",\n            \"-56863332253\",\n            \"159382478645\",\n            \"15497510247\",\n            \"-11166860082\",\n            \"459845389844\",\n            \"-315779255031\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"13619924768\",\n            \"-108585103579\",\n            \"-286333703121\",\n            \"-22225593305\",\n            \"-4214443693\",\n            \"404081003905\",\n            \"-266115340439\",\n            \"-522963986885\",\n            \"-81541686728\",\n            \"311449667067\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"3440291968557\",\n            \"39790668036317\",\n            \"121143735330951\",\n            \"60300700594106\",\n            \"-138565677223306\",\n            \"26990651262138\",\n            \"-69507089026735\",\n            \"28346271500562\",\n            \"-68434454958\",\n            \"45308688118409\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-30985211143486\",\n            \"14497903153172\",\n            \"108091472626361\",\n            \"-132443509279150\",\n            \"-124710978475843\",\n            \"-22621813043867\",\n            \"43348381090099\",\n            \"54224054718466\",\n            \"43935291459066\",\n            \"106409780408478\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-37426243585738\",\n            \"-136731105244763\",\n            \"132386170102737\",\n            \"18729575753580\",\n            \"-61381755765885\",\n            \"-67683935577429\",\n            \"-130715456782347\",\n            \"135506741441431\",\n            \"64115570795686\",\n            \"23904178460900\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-3109726999519689\",\n            \"1933126768037472\",\n            \"-324967063575891\",\n            \"-30747070522132113\",\n            \"-27829185300215897\",\n            \"-24226320094880357\",\n            \"8149118499338522\",\n            \"-14537608810060536\",\n            \"-22181098580998350\",\n            \"-1543766855453763\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-19154567959160505\",\n            \"-33714007900076962\",\n            \"29435912661346051\",\n            \"35448248561967655\",\n            \"27478015216841137\",\n            \"-9642727074664549\",\n            \"20762876950068092\",\n            \"12674801929871187\",\n            \"-29272042854662323\",\n            \"23087590778346538\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-6178990937608128005\",\n            \"-7489771860953428316\",\n            \"7138996857544191473\",\n            \"6891721369949758163\",\n            \"-2873210693718606357\",\n            \"-985023314566108394\",\n            \"-8482975523737005038\",\n            \"1933121339588994379\",\n            \"-6237609370968336133\",\n            \"-6006493915891200615\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"4784228838256112666\",\n            \"-5639521520326372798\",\n            \"-6372119935029533050\",\n            \"-13173761350189796\",\n            \"5256559774234064648\",\n            \"-7639941297675590428\",\n            \"8339054501857458814\",\n            \"-5851965443287017683\",\n            \"8471016463241511679\",\n            \"241927931394313236\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-483218027063613629703\",\n            \"2158782735740085418214\",\n            \"2086327309425994289085\",\n            \"-1775936067034501989571\",\n            \"87437755811834396167\",\n            \"-28401153096633450165\",\n            \"-1133004021229840529093\",\n            \"1871364394906942992468\",\n            \"-1367249310926305189706\",\n            \"2201573961610082633279\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-534665456095867317406\",\n            \"-2091145637438156527744\",\n            \"1002549198487665026269\",\n            \"-1829053960401122456656\",\n            \"-507210040486661453955\",\n            \"1045481287999809175028\",\n            \"1364780996043256384861\",\n            \"136073480977825489240\",\n            \"-1037248082018171019376\",\n            \"186526137004977787352\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-1046613079302385912677\",\n            \"1021357072861918022642\",\n            \"-1212895629888241074297\",\n            \"54602995841860468967\",\n            \"-2328862578607448318042\",\n            \"480770704064136552652\",\n            \"-2205462302944763257608\",\n            \"154486372431065433621\",\n            \"-1627545550801203651319\",\n            \"1661236305135671491366\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-25780050424235659153148\",\n            \"529910266796805109246568\",\n            \"-524035727043667850771484\",\n            \"158037899710407903896118\",\n            \"17775205387059778764118\",\n            \"183414271106923495875624\",\n            \"564101025301896167399950\",\n            \"174082107953749604159417\",\n            \"-510247241020792959694652\",\n            \"-31790257572439119641150\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"97909310721294570420676\",\n            \"-370685916895270859148094\",\n            \"-207704549226119447779963\",\n            \"426685027916926492394771\",\n            \"-443922064163037127693132\",\n            \"-359165394706192831593487\",\n            \"232450412648501709276260\",\n            \"236476482318617346453058\",\n            \"-444855507997557301532066\",\n            \"-449511488318489004842616\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"38297941459228367137032480\",\n            \"37693160058585205753349341\",\n            \"-135230435965114188640670954\",\n            \"63954600949868348155966793\",\n            \"-18059488984707719081771228\",\n            \"12523259782961827464033972\",\n            \"-154035891838969004456038899\",\n            \"-143740984881393038015437656\",\n            \"-297107082262287737774124\",\n            \"-130063144978385075413421572\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-121901231315087756982129772\",\n            \"21641765111158040359351177\",\n            \"79510642319690549494318636\",\n            \"99992072265161738668933440\",\n            \"-127544045958283514926879895\",\n            \"-114814479146472538283905870\",\n            \"-6956674791158590081188973\",\n            \"-152063567955740133520378519\",\n            \"35283887938627339173013183\",\n            \"-77488852854891430841283266\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-35297860946578727078961377\",\n            \"60914664428732973645334926\",\n            \"-45881788007565335539581505\",\n            \"-16228932271534174997165412\",\n            \"-71589554478597723028529083\",\n            \"125241806056796930297219831\",\n            \"-5330340415825203344097529\",\n            \"51775257591241051145892674\",\n            \"-15094772395361486242521560\",\n            \"25938645275060872598806563\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-37399043524295253068535150516\",\n            \"30416211250451302199476070853\",\n            \"-33596129413262219560422312517\",\n            \"5313931682258453540118628812\",\n            \"21048003994659574916664477845\",\n            \"-37382894423738432073629190847\",\n            \"-15318095353333670892374528768\",\n            \"9624056340871881017715059148\",\n            \"-16108266238759019605768116174\",\n            \"13607318011608209290042469481\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-29339095371120961510655959746\",\n            \"34499077642097337163200996883\",\n            \"12438610605314642729365206169\",\n            \"30026217552330912860684967035\",\n            \"5868323165870187705662338709\",\n            \"-22530513597085742496802571404\",\n            \"20187377513734548340151159804\",\n            \"19309445557615337894124357368\",\n            \"-9834900335171895983684326501\",\n            \"10977735104041542369404969198\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-1375924286262127484011633937832\",\n            \"-2147016509826786120906015229213\",\n            \"8312572357614785735606012528886\",\n            \"-4051638098169024644782191731949\",\n            \"-3093628440576237730249167513209\",\n            \"5666878520633789566902037223594\",\n            \"8891965700337502827869504398273\",\n            \"-3425704790604702995311162396482\",\n            \"-6523722055221807095862112250242\",\n            \"6355813979375858041213525598182\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-5058425412398335303061912485394\",\n            \"-7219572559975239271635947264369\",\n            \"726522491715344256514490058497\",\n            \"-7042445872695173559471595541793\",\n            \"2824402214773339173380186665274\",\n            \"-5015784004233448712622655297019\",\n            \"5486760745287225222007329633188\",\n            \"10065222761695430251439328556933\",\n            \"6166669897599573455003032087428\",\n            \"-2172662097799258720481847032564\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"8036993285327716214363526967047\",\n            \"4430074085127306659301038354391\",\n            \"3362256777260202908602746872178\",\n            \"-8231357790598764797150571723919\",\n            \"-10113083855460126423773664315153\",\n            \"4304195785667284780679333446327\",\n            \"7529022456114985130352846237161\",\n            \"-1617155253974148221187702205421\",\n            \"8306989535252982450393679766069\",\n            \"-9917879652040843830362880242798\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"2025150411878375809601981318007687\",\n            \"733154270680517806621380045304125\",\n            \"237851062444860227206988707561392\",\n            \"-2559173073631870285694845698600192\",\n            \"-1612871136126666613840893942772465\",\n            \"-907529648416027223413166136860388\",\n            \"-1839189396233732473729596583035690\",\n            \"88713624503691341082574108422443\",\n            \"338402803145217006589478543497297\",\n            \"-880122644115442177811028160833635\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1839742964889166195100300692473716\",\n            \"885434974408265966958762326684680\",\n            \"-1621828050026346614658514674603315\",\n            \"1905665376759464813614892131583581\",\n            \"-2388201929527636648329898098952877\",\n            \"2481877047862950402685641670256262\",\n            \"2023252640349615986505312617764433\",\n            \"-1573486913273646294139059870810833\",\n            \"1805414520297065811367995244619334\",\n            \"1843061646556820707723637177021074\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-191847997784246847874745009499399054\",\n            \"372786599802160285128273261461255881\",\n            \"376288273710337416992985070127844806\",\n            \"188093861376600388183605420152756308\",\n            \"571207793825131270518817095820136067\",\n            \"-29919619103217554294662107906751719\",\n            \"-452678708024430178885781299576494992\",\n            \"535406994206915746718046269323872661\",\n            \"640280552739110271190723844875415792\",\n            \"-600187294174532632129083155832394691\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"160335860551254932275470660660164261\",\n            \"-471326848390488335045668822156269822\",\n            \"-495691107470112053256769582261403309\",\n            \"-393200617684151831876978692678316885\",\n            \"297414113438652864360156678843959711\",\n            \"-268776834626793693334448405382040859\",\n            \"-117780897867754527460881147518546805\",\n            \"298322417140430849049049944396274055\",\n            \"234866336354615854416417135899865645\",\n            \"48595083212054770623391355746687188\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"46767536875344963516160138900400417992\",\n            \"140769783767864571592597846120527955449\",\n            \"-87767956607006201530442382053058191437\",\n            \"-147467086345147382218132338434959967344\",\n            \"-63040799227207808871886672405579600857\",\n            \"-163413759426610481573012906592956738336\",\n            \"-51038824199236863589719906709018954970\",\n            \"-144531515418551447921937889834182877513\",\n            \"-167321975433722954448458398645759050579\",\n            \"-123967516821302237595171386295592191011\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"79453031253319883075571062614534868736\",\n            \"123921984663798339646770377207635911524\",\n            \"-157303675968253574763215319217464671001\",\n            \"-156891299361397755454566840636980983938\",\n            \"-145862034846283521653632276945573288715\",\n            \"-28726972658144915880841740075557050787\",\n            \"-59175893681203716281306184534788761148\",\n            \"-116003172142553199810126172180490708929\",\n            \"76631143543919820921892254735365792596\",\n            \"97582911312902206555664841122180441248\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"7093132471014474767844887751733331003\",\n            \"-108686417660834376788570147811161987220\",\n            \"-163594850104237544086018972477724405791\",\n            \"-2302501739484662175406128065151266870\",\n            \"-97343550981288966396082969127785946405\",\n            \"-96030927988302472038807926974869041673\",\n            \"-154167090334610438942150064192357641402\",\n            \"-18793807036998611053269951477295987184\",\n            \"-70904740499999719165305256191226042599\",\n            \"70653097581681099304462157018443053691\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"26050\",\n            \"10037\",\n            \"-10374\",\n            \"-29490\",\n            \"14331\",\n            \"-16851\",\n            \"-12187\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"13120\",\n            \"30961\",\n            \"18595\",\n            \"11399\",\n            \"9159\",\n            \"-1887\",\n            \"-30813\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1464633\",\n            \"220199\",\n            \"2712771\",\n            \"-7495838\",\n            \"-7981890\",\n            \"-4964125\",\n            \"1595391\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-5853521\",\n            \"4344274\",\n            \"-7018099\",\n            \"2293236\",\n            \"-7612443\",\n            \"-2167093\",\n            \"-2845086\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"95875595\",\n            \"-609963850\",\n            \"896088118\",\n            \"-1715535486\",\n            \"-102098264\",\n            \"1291776262\",\n            \"-576308153\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1236728557\",\n            \"-1637854635\",\n            \"-984551882\",\n            \"795795740\",\n            \"8028990\",\n            \"901192316\",\n            \"-1111344946\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"378575634\",\n            \"-419525563\",\n            \"1883074043\",\n            \"-1173948468\",\n            \"-1824740989\",\n            \"-522033444\",\n            \"-144793007\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"370947827710\",\n            \"-353447519869\",\n            \"284585997441\",\n            \"274833182439\",\n            \"46832561565\",\n            \"371244974672\",\n            \"202518766395\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"218531362099\",\n            \"125513046194\",\n            \"203189347634\",\n            \"-304680830682\",\n            \"-463095454301\",\n            \"-6527992404\",\n            \"-65734664745\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"124491338796971\",\n            \"-71234357373577\",\n            \"-70640224281818\",\n            \"-115120848140363\",\n            \"46780581253253\",\n            \"-5239172476241\",\n            \"-84243714348014\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-43659843831402\",\n            \"97675487713738\",\n            \"-120205430205763\",\n            \"55637124317579\",\n            \"-2982496726764\",\n            \"-52205341209619\",\n            \"61907219984235\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"40565389677572\",\n            \"-115932875026862\",\n            \"-59257993113702\",\n            \"45346953112251\",\n            \"48999715544038\",\n            \"-93859032164586\",\n            \"-82647138297887\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-31698638660098966\",\n            \"-5631854766304352\",\n            \"17449252429242489\",\n            \"28180900120216510\",\n            \"5008123877732808\",\n            \"-34000957537070508\",\n            \"-9375521335589905\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"9961273701300998\",\n            \"-2079937397053597\",\n            \"26948861976924314\",\n            \"-33274483408865913\",\n            \"30025685782393962\",\n            \"23738162907963992\",\n            \"493130406875726\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-1979493224765362120\",\n            \"2703732660426547803\",\n            \"-1393112844070577191\",\n            \"-4589313647595954574\",\n            \"-6650779199917767681\",\n            \"4898222384404144581\",\n            \"136147557489562317\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-3646410955003742974\",\n            \"8191219785186527321\",\n            \"1272327194703892541\",\n            \"7200053761957267992\",\n            \"-4756848297671371938\",\n            \"465404651157646586\",\n            \"5030791210523335471\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"471782014697430155157\",\n            \"-737522866566807476021\",\n            \"-1150886932732683487297\",\n            \"2216993989609573889751\",\n            \"1791930017506828908157\",\n            \"-844823775260624667509\",\n            \"544085813983975919632\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1674397379408819628225\",\n            \"-916247777654751098512\",\n            \"770173233696709315682\",\n            \"740475606804091311338\",\n            \"1832098966387094053802\",\n            \"-846509827577616730614\",\n            \"1310459528272118181618\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"74011478604212791529\",\n            \"-331788012397048455114\",\n            \"-1505535048061915354043\",\n            \"2196671714385448598750\",\n            \"-350496961296855157879\",\n            \"-1047520580803370592747\",\n            \"1407733904504194944452\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"334057475536999391388584\",\n            \"167091731454929333593163\",\n            \"44371453303518972747966\",\n            \"569151268328963633065480\",\n            \"502857981392722544973772\",\n            \"-295294362379075981585508\",\n            \"231490385988114470344787\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"67874870060011234362111\",\n            \"-134871563655837319141577\",\n            \"-165820628960372861946363\",\n            \"-391238480407275084709510\",\n            \"-514577690826104710765865\",\n            \"-67979890712897414695858\",\n            \"-408586208764886574226242\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-92558993866389986507056248\",\n            \"141516883852752944766615012\",\n            \"-91570642406924423409457354\",\n            \"142445780080422570580978556\",\n            \"6629554290181300402543099\",\n            \"-13376427830750013064535819\",\n            \"-128889999820989497872482505\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"109570534710933797396607895\",\n            \"44325882156245683484525132\",\n            \"-78370164483658463265616463\",\n            \"21269267048775656453724437\",\n            \"-30434466531056204756754318\",\n            \"-146721097875248361900368890\",\n            \"16341220289441428332578520\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"149460511934390160021660960\",\n            \"85813150145346742579054179\",\n            \"10395595941021601123326187\",\n            \"60742333060570890451324525\",\n            \"-69744724753060176636143795\",\n            \"85805585820369366977540699\",\n            \"-118751782594197400635380486\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"25165154960101426243162674534\",\n            \"-10828793959658115401846998769\",\n            \"-15232188130968548112534724088\",\n            \"37859448133639721078872362278\",\n            \"-7447685266469730873213326336\",\n            \"-6630414361379515759165805767\",\n            \"-7233008330319849805678054088\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"31352291163482491119505968125\",\n            \"30926463871793539317337614369\",\n            \"-26565368808580343750512847154\",\n            \"-24547829992985946652408320126\",\n            \"-18355556958734667364187798032\",\n            \"1438511591107866365310462118\",\n            \"-28634765763897394391222662353\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"5950176580747626568664247515800\",\n            \"-8881211795988992975636965132300\",\n            \"-2313319268134714731343698733583\",\n            \"-9280914263091091040890831012745\",\n            \"4639580868256294580236676918210\",\n            \"-9335839789223791032443503646374\",\n            \"-972698824035541842758234702650\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-9116871202867186426233180444277\",\n            \"1252769228624504890201406664824\",\n            \"-4441678277221598037171990272524\",\n            \"-3497493513724645633286134222906\",\n            \"1362086037022057987770970014654\",\n            \"2526310726561592465837221454378\",\n            \"197133844356911321653053339758\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-6708417134328302521535165500528\",\n            \"1259667415597434897205018980503\",\n            \"-8667405068669984535223184571634\",\n            \"-5739153439279994263124834718486\",\n            \"-4659094842072120505966726511778\",\n            \"8300992321238715729975176338668\",\n            \"8305762879837071470447907044080\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1855360572508690069751614139995240\",\n            \"913127495556918482781605103352223\",\n            \"-1634237774328458406341648362825579\",\n            \"2012213887653411326935188001113650\",\n            \"1854844808900330191204660335054080\",\n            \"1943836864945319401575398852606071\",\n            \"-2512140816283887752192691293590826\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"2347346757752941921138702653567730\",\n            \"2471720490360303419055064438101411\",\n            \"-637525221921571876383204743520988\",\n            \"-313171852811679112466522221783714\",\n            \"1342661303952287975125536927727615\",\n            \"2299702375882500241106744128006573\",\n            \"-1943268622964000029081987879045476\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"654404760071118946096668775855737838\",\n            \"-134614183491363562333301742647543553\",\n            \"193373068724594777442105443158226074\",\n            \"82128803304304898958437601302688987\",\n            \"231616933503852269212186042174117433\",\n            \"314512202435083245896423396120681411\",\n            \"-560893487306878937612307892677922361\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"61682174231144284695206586082327571\",\n            \"-129722213375102804822534176471924759\",\n            \"-470843635185932669298551792606832749\",\n            \"217981712620797098953060036718615794\",\n            \"524439585175580833405205537825140874\",\n            \"-195520289865208736968677273971035370\",\n            \"74511399356182107059807662782310402\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"26120113210988095907759127757085647952\",\n            \"-62165437783621924594919739022258953866\",\n            \"104747421037847971642972590567045904195\",\n            \"53605601765747459417883834171905176717\",\n            \"-16460101511938648810934533084724073149\",\n            \"87326150749852540273294368718992775275\",\n            \"16683834934928424633510098174197548524\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"26497149875196872156784837245492823091\",\n            \"92947688966177192205895235501995800904\",\n            \"-128897447396708280338335738279922653247\",\n            \"94341806002152925510991334018527791058\",\n            \"-112437238136605911451884994064234664417\",\n            \"-149010327216271969260130899539508200431\",\n            \"-32345160422388704273102616927971726501\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-166189853516680988544038633926086071136\",\n            \"-51412708930825095905795826687352289630\",\n            \"-8345130886957441238365575658116421520\",\n            \"1835330936447412638754115271624712637\",\n            \"149041866461530306889089342295575456556\",\n            \"16212245285186773325597991037224844276\",\n            \"-44514833992738879886424708523206514266\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"19322\",\n            \"19888\",\n            \"-20267\",\n            \"-32519\",\n            \"-22546\",\n            \"19491\",\n            \"-12006\",\n            \"24475\",\n            \"7982\",\n            \"-4810\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-32156\",\n            \"-17491\",\n            \"30836\",\n            \"18967\",\n            \"26344\",\n            \"4302\",\n            \"21070\",\n            \"-3741\",\n            \"21984\",\n            \"20912\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"7093261\",\n            \"-5853548\",\n            \"7803379\",\n            \"-2652515\",\n            \"4959963\",\n            \"8087528\",\n            \"1598575\",\n            \"7487372\",\n            \"-3584523\",\n            \"476277\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"5614990\",\n            \"1605944\",\n            \"2158854\",\n            \"-5461816\",\n            \"1168967\",\n            \"61828\",\n            \"5746557\",\n            \"1413562\",\n            \"-7871958\",\n            \"6056696\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"1038435346\",\n            \"-2012132702\",\n            \"-903699578\",\n            \"-1322624637\",\n            \"-895719624\",\n            \"1176645993\",\n            \"-1538792708\",\n            \"-499541589\",\n            \"-1303395798\",\n            \"1511778212\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"592833317\",\n            \"-1551950984\",\n            \"1787888535\",\n            \"-810984372\",\n            \"-1974703475\",\n            \"493667730\",\n            \"-1121250454\",\n            \"376054319\",\n            \"567834251\",\n            \"1569097131\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-57685736\",\n            \"123800228\",\n            \"519450088\",\n            \"1079630019\",\n            \"-1254308991\",\n            \"590805934\",\n            \"1765339826\",\n            \"-1234550696\",\n            \"-824160185\",\n            \"-2094981215\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"426101820801\",\n            \"16436911678\",\n            \"-359476250071\",\n            \"-443809896688\",\n            \"320952321382\",\n            \"23645867134\",\n            \"341575522947\",\n            \"-454866134852\",\n            \"140063572947\",\n            \"-548803465692\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-206275629357\",\n            \"-54167785313\",\n            \"468398637611\",\n            \"-162195244968\",\n            \"238463244086\",\n            \"-168579433699\",\n            \"32497103886\",\n            \"379346160025\",\n            \"541309413663\",\n            \"187332535600\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"49075412231132\",\n            \"27312750405736\",\n            \"-22512416476092\",\n            \"112383900203683\",\n            \"-102429519587353\",\n            \"49012285726128\",\n            \"49380517981528\",\n            \"100096915120043\",\n            \"-135774832908052\",\n            \"-26743412282490\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"92838931686727\",\n            \"1117744174578\",\n            \"95749441954752\",\n            \"83774056709063\",\n            \"-80485560556004\",\n            \"31410756920117\",\n            \"-36487657625110\",\n            \"-17337070785087\",\n            \"-79624495118450\",\n            \"125937356449490\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-110960987245002\",\n            \"-130196863138687\",\n            \"112521051717937\",\n            \"22370815190676\",\n            \"31270809959205\",\n            \"121855313393173\",\n            \"8699496453047\",\n            \"-91463041032135\",\n            \"120519868366012\",\n            \"-133257403196016\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-32069587070878257\",\n            \"-17919111411953962\",\n            \"-18001660931442915\",\n            \"-1767754592277008\",\n            \"20250526488187012\",\n            \"-15695508630258145\",\n            \"-29837740769794226\",\n            \"-4501074155399095\",\n            \"12225232288612758\",\n            \"22313124950526297\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-34480102097926967\",\n            \"6344112291297418\",\n            \"29002029974785001\",\n            \"-31888655934628218\",\n            \"9139086331212235\",\n            \"2897750950926006\",\n            \"-27160809101795530\",\n            \"21028873622945161\",\n            \"15244977183310528\",\n            \"-24528972829842178\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-4068321997152171044\",\n            \"-4123931468795332282\",\n            \"-1917336520397580474\",\n            \"7863490469535036896\",\n            \"-6249110314124783127\",\n            \"-8225844925803348664\",\n            \"915179017540453539\",\n            \"3123520133722242387\",\n            \"7605858146072323334\",\n            \"3943872340866871094\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"8702547793259894978\",\n            \"6483962839585495096\",\n            \"-6872654786944293818\",\n            \"6033338727343656838\",\n            \"2377337619842982990\",\n            \"-6489810207155348116\",\n            \"1074629160217093102\",\n            \"4824865193186455416\",\n            \"-8000377732360383694\",\n            \"-7092995275501204023\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"392214659868220760435\",\n            \"2001707758785583846477\",\n            \"1973056242078770230918\",\n            \"-1958109206556224024652\",\n            \"1085003398984190910582\",\n            \"122474924730748113507\",\n            \"851293406060406798668\",\n            \"1832853642649160529635\",\n            \"-2111330458370422801057\",\n            \"-2122277960278850970588\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-2252221810790127710310\",\n            \"1477205316920429874421\",\n            \"-961506947433404737273\",\n            \"-245308458478085909173\",\n            \"357740715501747274650\",\n            \"-319267889025708102500\",\n            \"1094364280480774943760\",\n            \"-127746993279336115173\",\n            \"1782157345845552907164\",\n            \"238471321966246221649\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1691113452288155441823\",\n            \"-837928306525549514253\",\n            \"-1479432108576007046222\",\n            \"1105760639244233719583\",\n            \"-1237878533885748567381\",\n            \"-2185454825581323446807\",\n            \"163923040453210887447\",\n            \"-1194656668349891851539\",\n            \"-1697451474233505816259\",\n            \"-1346443165535100297337\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"234606311866196287199252\",\n            \"-280339717607805536038094\",\n            \"174162930698908947490765\",\n            \"161585530398926918641746\",\n            \"149110074266065657434558\",\n            \"39179047469267699561279\",\n            \"-562131507501967025468563\",\n            \"353803686657854340422174\",\n            \"491584079078747706104003\",\n            \"-361063318154572608483058\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"271411052426415377865185\",\n            \"-444592158660720424250257\",\n            \"-255709913155980939726276\",\n            \"365550349570545751906209\",\n            \"-391044572823762759576713\",\n            \"183367216650532855576691\",\n            \"-25390552937951110044900\",\n            \"184949987773880185014120\",\n            \"-267534620027159821434853\",\n            \"132847257761444427988262\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-50975717540435075836318695\",\n            \"1378903033683610665195435\",\n            \"-140258399598530936546358654\",\n            \"-87594983716718223901386738\",\n            \"-62237980291352487006786500\",\n            \"-91499845570297449212552189\",\n            \"-66208718275179977437401191\",\n            \"71189572681527467501510610\",\n            \"-1306164209002345386773606\",\n            \"-49463313801741626591705131\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-128773881103768533353175446\",\n            \"-92989705198857589828906933\",\n            \"135169579794423165966163763\",\n            \"-74770130369838071149350912\",\n            \"66417301185305992075241814\",\n            \"-141076205408915017047534288\",\n            \"139087458245468156248483059\",\n            \"-113662293865384133240833450\",\n            \"-33825577590872840313241969\",\n            \"-14077765969840480002036401\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"83003901123187485851103193\",\n            \"-2681382205142334385409300\",\n            \"-63331882652492224187298286\",\n            \"-110680165287453809004856775\",\n            \"147522995254483971982329487\",\n            \"75382769928196858065260409\",\n            \"68276261988199153282208869\",\n            \"-87269314773681476775194807\",\n            \"51406486149759545599895079\",\n            \"40564670281024197061922198\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-26644049411043351785728824141\",\n            \"-24105812251123083991288681115\",\n            \"-13313117369621013301443559549\",\n            \"-15343445014815373573159127244\",\n            \"5755441206841059236617659163\",\n            \"-19137609460361732913808417597\",\n            \"9820328360260799657364770926\",\n            \"33319966440642342193193092160\",\n            \"-2450510718121406857997296905\",\n            \"19633470714253525250579882639\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-36841392181436281670139286742\",\n            \"35355431815928332051589081557\",\n            \"12542032737254605451781545802\",\n            \"-10487948400679804251659176662\",\n            \"33809232792580693385020804592\",\n            \"-1286410851551344895362223329\",\n            \"7299687240575999746351638266\",\n            \"-17358024343798554471827987834\",\n            \"-29156466412538498088209136035\",\n            \"-17589710144892474177196649606\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-1569098507666310750400243811856\",\n            \"-758234951593444817309034952464\",\n            \"-9334359694680896788581614109081\",\n            \"1374116640047423155668561508442\",\n            \"-173162738574107411965825187244\",\n            \"-7788646219993207807828069988222\",\n            \"4582300712366442004380627595004\",\n            \"4100619504434533691239280199560\",\n            \"-468263237010220777440412988226\",\n            \"-6978567372677615209814697240488\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-2976231597733439456905633512789\",\n            \"5127694050127805803249796769468\",\n            \"2812957412066585231215442690760\",\n            \"-8402845131237017711805113621227\",\n            \"-3787750299715284207846037832827\",\n            \"-2942880408698349918786267176602\",\n            \"-3869882757561265792893437687111\",\n            \"-5705588172653590518606599812141\",\n            \"-7302962533971552771835642777347\",\n            \"-3268746639752527561077535734497\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"249971857312161074689173876267\",\n            \"-242404619148151547781226427874\",\n            \"9581515616266968745257306192718\",\n            \"-9310338506009408582538577250155\",\n            \"-6804608278893940697882201407664\",\n            \"3099137104427329585255879001438\",\n            \"-7567579129514718223375916274942\",\n            \"-1792499874699902261296010365098\",\n            \"1639591688226140840628852768785\",\n            \"-7608440910939533514456193631459\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-1478066879273161886647445158949772\",\n            \"1837220622062178767494109366244231\",\n            \"-92877272254401719687763113724897\",\n            \"-294736309677963931197700276380980\",\n            \"-1131638498094855104492084200292876\",\n            \"-1707583373250833555270111202726089\",\n            \"2530465654746538337722203391829038\",\n            \"-2249523431616310451983315854427522\",\n            \"626377764251003872328656072958391\",\n            \"-2410247195955462616836551577048770\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-146608320296582083230297319921561\",\n            \"-2472542853509176412554981102318147\",\n            \"-771312358883127333171922117508275\",\n            \"-1484063485715773612247024703348500\",\n            \"679091726809387681196416537626957\",\n            \"-2001457836812405622324166631537924\",\n            \"-631900342171956815934243043067448\",\n            \"711088708081508591363639203425914\",\n            \"1216331827955829693179876936054302\",\n            \"-1299482886169500029305135186407016\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"200012218527021640529683894748995748\",\n            \"66764908937162351505130243349347892\",\n            \"524610465017564034853035195648393051\",\n            \"-558690033622104772858687622389660622\",\n            \"-544523595431390359103420871965400054\",\n            \"245517776515380942196684249862925365\",\n            \"212945120221746468714378114960847869\",\n            \"-170782019116161816032185050362150848\",\n            \"-496641648487716226900749343652261406\",\n            \"648453852192358064522416946780906606\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"255949560736548808004852239641213264\",\n            \"-324087200268712128351855136105640947\",\n            \"-6820351909324143280484118195131375\",\n            \"-319504958870141568923172587852075104\",\n            \"523488920375771830477498953239602567\",\n            \"194332300193562216166276513041179721\",\n            \"-544008549012482630748073246202260640\",\n            \"159071387785195543622408425447358845\",\n            \"76192843992111999275453592662491096\",\n            \"-473054289942710741781585231767065104\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-139359679896732931766919659337245494846\",\n            \"-35545345721518693494350745566292372621\",\n            \"-39327020288096966885458128121852385736\",\n            \"7493284389294749331633573014767224917\",\n            \"77381066407576226608915901862097770212\",\n            \"157711333385356156585898944278021995524\",\n            \"49883214513209304705821748055646582719\",\n            \"146274344215989941722162867924721361448\",\n            \"29434461275514518797058993245422008579\",\n            \"129948671740191770106010881205508710601\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"78106395943978345433881498304008994451\",\n            \"-160930953760985927349252065503891837878\",\n            \"-44960294156570777230598296792605054671\",\n            \"140984650860694548582383830944572104234\",\n            \"-139997530771990989911328151859950982105\",\n            \"-56309689550359535719606358796078640634\",\n            \"56779686305520783893926725471749235781\",\n            \"64518970089533247978457584756917625030\",\n            \"-119002062601850172159773604273618695770\",\n            \"99267635189640639519242595654851971448\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-72992812885182321071012171435152271739\",\n            \"-55130623505249212822546937141683067554\",\n            \"-72150173497072821802434510525219140741\",\n            \"-135826146169714584749451385037745056378\",\n            \"130698346424652975123966744269457918140\",\n            \"-9260092987630855868815559991510953109\",\n            \"687286835945665138009166453051890054\",\n            \"-152468467896817629814259003076281203489\",\n            \"-162737426598589027675694265384434548482\",\n            \"130527505687529038013531520307450723070\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-20673\",\n            \"4891\",\n            \"21555\",\n            \"-23205\",\n            \"24226\",\n            \"-28935\",\n            \"-9747\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-7505\",\n            \"4860\",\n            \"-25545\",\n            \"20070\",\n            \"25803\",\n            \"-29488\",\n            \"25570\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"1487976\",\n            \"1762770\",\n            \"-4729573\",\n            \"1860064\",\n            \"4929956\",\n            \"5522284\",\n            \"6549685\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"4049960\",\n            \"-970587\",\n            \"-1321157\",\n            \"-3312445\",\n            \"2703511\",\n            \"6707801\",\n            \"-5572805\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1030375303\",\n            \"850853352\",\n            \"1617347935\",\n            \"-420547740\",\n            \"653990365\",\n            \"353737175\",\n            \"887141994\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"974530540\",\n            \"1286390864\",\n            \"-1834371078\",\n            \"-873048386\",\n            \"-1662709861\",\n            \"-1479216424\",\n            \"841702675\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"2111707600\",\n            \"-254659598\",\n            \"486623667\",\n            \"714212951\",\n            \"1069946182\",\n            \"1654147123\",\n            \"818253616\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"158613753089\",\n            \"458774753508\",\n            \"183875050170\",\n            \"-405459377062\",\n            \"-76041901937\",\n            \"422167883413\",\n            \"-534535030458\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-189858741056\",\n            \"-350281980076\",\n            \"75626581117\",\n            \"-124609040589\",\n            \"16597068948\",\n            \"210894043846\",\n            \"147277886747\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-138751689194121\",\n            \"-103042931779161\",\n            \"-112178692829012\",\n            \"29511789263726\",\n            \"46232439685971\",\n            \"48353150098534\",\n            \"117568446080604\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-61910798890980\",\n            \"-140506887267184\",\n            \"112641714944989\",\n            \"3355252674878\",\n            \"-15180008486174\",\n            \"-77620968921810\",\n            \"88635255157246\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"54206304886847\",\n            \"-101630474357009\",\n            \"96590747853874\",\n            \"-118603139384744\",\n            \"5675249069187\",\n            \"-45370506866973\",\n            \"-36853313570962\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"12547998279054852\",\n            \"32079636436024400\",\n            \"-8837895237364730\",\n            \"-35089444786916540\",\n            \"11941345258052284\",\n            \"11998082458470934\",\n            \"9244690049555110\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"10936921703728198\",\n            \"-21359025539153981\",\n            \"-17919755145627767\",\n            \"21949453057332109\",\n            \"31577422472892467\",\n            \"-2175882775298387\",\n            \"22366796586949547\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-1991785497370767870\",\n            \"6209395018704963569\",\n            \"5802436034677451710\",\n            \"-7064032955625756220\",\n            \"-425594384187662050\",\n            \"-5892871677969375177\",\n            \"6618055914134267928\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-9127990150600728413\",\n            \"-5735750909960740797\",\n            \"3801973574837623883\",\n            \"-5415111795522083403\",\n            \"1905105625346053106\",\n            \"6231685532968733711\",\n            \"-467857863906217121\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"85863289349977744466\",\n            \"1143903301173917583596\",\n            \"343013108718986345006\",\n            \"143977393722524587619\",\n            \"-331683688552855746072\",\n            \"-1255008151495427109419\",\n            \"-367830894824428134772\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-1380262755120611917815\",\n            \"-2015184270487688482207\",\n            \"421650876988531672681\",\n            \"1400851929839245970743\",\n            \"-247535080568189823163\",\n            \"-2113957207159701869965\",\n            \"661753800403331824022\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-1409117742382861999337\",\n            \"1964560064468429764667\",\n            \"1142331396214943706208\",\n            \"2120139614999229044568\",\n            \"1947051906742118331879\",\n            \"-2255925732391731193539\",\n            \"-706486902189772690761\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"476431701466362805331100\",\n            \"-102676717243207894859018\",\n            \"594838701556832564313786\",\n            \"-362093575874816415536617\",\n            \"-298506140329613600409281\",\n            \"113749430332489269875681\",\n            \"197169454728417077892949\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-427853124038909455080219\",\n            \"66701743587659683001174\",\n            \"-2597511976969857899394\",\n            \"60778757968804042956061\",\n            \"-544547149575175129004139\",\n            \"-301565858845410225401166\",\n            \"-265399533535019605844097\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-68618783730059765480823635\",\n            \"-148575561591978834067415296\",\n            \"34414152208973548229001993\",\n            \"-13643309285265500492215602\",\n            \"102647265825215089997130781\",\n            \"137227738860777958998527556\",\n            \"89495140415736266671994902\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-136993255643844109804321368\",\n            \"95521822621879235917169875\",\n            \"15444326698047673705527386\",\n            \"66587355931325005334848104\",\n            \"-145548966688252050709592565\",\n            \"-114049305396707161765587204\",\n            \"-108330685803294296438944164\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-35055644549667511602728701\",\n            \"-151408885763406254266448065\",\n            \"148986972316531200205118208\",\n            \"-41264915535541021357739976\",\n            \"136259859352059633203136439\",\n            \"50887898641106552333186126\",\n            \"-125285378380785532529599731\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"12941490015157247768713837736\",\n            \"6835075928133812117006091940\",\n            \"-22465188887333363863609842193\",\n            \"-7126648403394390900967730280\",\n            \"-28393957274203526260439553432\",\n            \"-38741812277298816415321041919\",\n            \"13338414913605328772627511898\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-20110672505237420917225518191\",\n            \"-27596411499885490649297106626\",\n            \"-12603225725813579881802031040\",\n            \"7543351889165927098806258732\",\n            \"-36704747017636431900889798792\",\n            \"21396851540234206754769905295\",\n            \"-26912455145404876756203862275\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-3387707576912848734654159629359\",\n            \"7428755755160883095771560631147\",\n            \"4569162969402491573365786468348\",\n            \"-2490525292701388792253454545621\",\n            \"2994837362157224884748366006872\",\n            \"8916264544517216999577433705932\",\n            \"5151024374664908204375853841885\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-5663811480390229830172653604467\",\n            \"7710539150230289621751006180128\",\n            \"7797728575196483778606701813486\",\n            \"9630462872777850496307059381475\",\n            \"-7728740627143181530379709906473\",\n            \"-7781087371673710496980289208707\",\n            \"-343446002946672747378655962906\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-7557416815553078625043545761338\",\n            \"-2302505358387623502188356176192\",\n            \"8409779146217467126417839702826\",\n            \"-9562089631495606093360342875300\",\n            \"-8213115909769479205332628941563\",\n            \"-3559170898222778482528552837035\",\n            \"515283880696723945344198400802\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1367641768492784058807182267663971\",\n            \"465298046667559350852539820375203\",\n            \"-574478792401028873492458572224839\",\n            \"671454055256727078424602503807202\",\n            \"-1606532935067250255205206946799560\",\n            \"2502175580278378863196680582577687\",\n            \"-158821802300435835463112943740860\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"215412964590856924411049997929445\",\n            \"2425019052313712110758162804934291\",\n            \"-2146281446953297190248965140031957\",\n            \"2313116073547801117262414478722805\",\n            \"2445004820402073310655244369464935\",\n            \"2131568767414300517904191007403641\",\n            \"-1647531519212921581334819756802357\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"85439167121228840311602468684207718\",\n            \"81462378211070190176464268885238633\",\n            \"-520261127199435865904944398789158800\",\n            \"-373378915703658263067219343884833015\",\n            \"303273353020035808553785984579294122\",\n            \"-14150871600103744151748032687048184\",\n            \"187409089415128244172342086722110778\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"426903599253969182311652501209225081\",\n            \"386418676761755887855863585696427033\",\n            \"-12458025011532389171806041982715946\",\n            \"209536513458228602712253512458307460\",\n            \"-606973411546439030075456065531198766\",\n            \"292324957531014750417545379298738712\",\n            \"-283787856374051062869985486340352964\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"63865640843944075030209963280445799369\",\n            \"-18593804610606078796694478405978654849\",\n            \"-714714379007990044568901737313354522\",\n            \"-143842961516453470477418544067319181336\",\n            \"153172084381164114541423265053189318206\",\n            \"12685456738195001579207153151789306138\",\n            \"-29575308771159264213086650783552893870\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"46883541681382683193881459486746081613\",\n            \"-125705053509498712301219791891009785852\",\n            \"62669131077706452018756304286321569553\",\n            \"22514282939897237627731060578196173718\",\n            \"-75575161713087697602988263826550011240\",\n            \"46505563659899129005157792634893169283\",\n            \"-119258175090032575441578768164878731653\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-55040330949772143040530849272221593209\",\n            \"135813211061156674505901218739644432898\",\n            \"169896929526665904477525636205199802874\",\n            \"-144923747172463589788289511293391386010\",\n            \"52887701532943518748533315738175210189\",\n            \"129347148437659340779376391685263512814\",\n            \"-119470842876568878095060418047486776106\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"20439\",\n            \"22663\",\n            \"-27261\",\n            \"23271\",\n            \"-18990\",\n            \"15944\",\n            \"-28565\",\n            \"24963\",\n            \"30418\",\n            \"-30608\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-22057\",\n            \"3217\",\n            \"10476\",\n            \"15694\",\n            \"-6027\",\n            \"-15715\",\n            \"-23007\",\n            \"-31432\",\n            \"-4516\",\n            \"3674\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-7442230\",\n            \"2338346\",\n            \"-2738445\",\n            \"-5985510\",\n            \"2142214\",\n            \"52299\",\n            \"-8166525\",\n            \"4690970\",\n            \"-5712690\",\n            \"-5048341\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"4260441\",\n            \"4125202\",\n            \"2115968\",\n            \"-5649222\",\n            \"-3760260\",\n            \"-4042562\",\n            \"-2350779\",\n            \"96900\",\n            \"346378\",\n            \"4216085\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1097374735\",\n            \"-1284838828\",\n            \"1061029847\",\n            \"1269187264\",\n            \"2093057513\",\n            \"-552929762\",\n            \"-1669807006\",\n            \"48971987\",\n            \"-806857042\",\n            \"-1203491271\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"486603994\",\n            \"-1677973283\",\n            \"-925436252\",\n            \"1756729478\",\n            \"2007578960\",\n            \"841852782\",\n            \"291979431\",\n            \"1252234044\",\n            \"-1077400305\",\n            \"-2004190290\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-2012058775\",\n            \"567356812\",\n            \"1905525934\",\n            \"-1504705027\",\n            \"-66129469\",\n            \"-562262896\",\n            \"732024217\",\n            \"-1858174448\",\n            \"-1128956516\",\n            \"1788342603\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"435657141702\",\n            \"-478490014750\",\n            \"360566647940\",\n            \"-451660074249\",\n            \"-473020751145\",\n            \"392377661939\",\n            \"-482632860063\",\n            \"-338086490878\",\n            \"309007405872\",\n            \"-353813708003\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-459773526894\",\n            \"-430668239377\",\n            \"98090610437\",\n            \"75247578430\",\n            \"-324388649864\",\n            \"416582345348\",\n            \"-62640371660\",\n            \"-284829666000\",\n            \"381139880955\",\n            \"-4984998478\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-20005911336447\",\n            \"72447015480327\",\n            \"45875595264956\",\n            \"-76521915606081\",\n            \"-34727867953542\",\n            \"-137384660844194\",\n            \"52697015634263\",\n            \"103452307321328\",\n            \"-122001791486213\",\n            \"-41151199613229\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"70939096990350\",\n            \"-88819773553707\",\n            \"-56139660451437\",\n            \"65674495025011\",\n            \"26628603487458\",\n            \"-135902172047580\",\n            \"-103682776666204\",\n            \"132777414234749\",\n            \"-95404715253975\",\n            \"132858731621408\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-132374262406977\",\n            \"-23628151618575\",\n            \"-119413346104562\",\n            \"-55036741341427\",\n            \"-35811108191614\",\n            \"-1926885375842\",\n            \"-45365158169918\",\n            \"-114661135140377\",\n            \"10473703483140\",\n            \"-74303850742113\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"25306738711824109\",\n            \"32509922510474623\",\n            \"707085602821514\",\n            \"9763707224974397\",\n            \"-11143100390263700\",\n            \"11596259349396834\",\n            \"24075139416501450\",\n            \"8655375690994432\",\n            \"-18063068128417348\",\n            \"-19863328717071201\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"5637539114033423\",\n            \"-5001319200678838\",\n            \"14212933040227288\",\n            \"-33982239913110551\",\n            \"9485454238704206\",\n            \"22215509542635843\",\n            \"-32953189204876032\",\n            \"-24998747694223021\",\n            \"-2633537128076828\",\n            \"20245361874996758\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"4985469615170125407\",\n            \"3351154357521105423\",\n            \"-1334855791139741442\",\n            \"-8797809572977779612\",\n            \"-8598556274215160807\",\n            \"-3639608199332585325\",\n            \"4875792833346596793\",\n            \"-180163167139705625\",\n            \"476427630399101153\",\n            \"-2608044133530342885\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-5157228090470659511\",\n            \"7212202656918885732\",\n            \"1392041261546235241\",\n            \"6666890125347683\",\n            \"-3802346357954570034\",\n            \"7105488401526240167\",\n            \"-4672914031095531393\",\n            \"-6827233405808698926\",\n            \"3167057671289501060\",\n            \"-3717235008913756239\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1189803804746023930692\",\n            \"-625825002864892544122\",\n            \"-1629596920467579686358\",\n            \"1736386230972209967360\",\n            \"700381856353328623786\",\n            \"-654232777049969789030\",\n            \"-74724090947393824084\",\n            \"1167695718621359342916\",\n            \"982240876673049294819\",\n            \"-2253964136358443531770\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"1734021379805203643295\",\n            \"2025823067259793494492\",\n            \"-1597926848173583043168\",\n            \"2016223048238280625792\",\n            \"542138962133905683759\",\n            \"879305494437540350029\",\n            \"24106321453602867849\",\n            \"-23115421710948790743\",\n            \"-1394212641438626790639\",\n            \"900304908524327153009\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-815922170546921752952\",\n            \"2345528514985286552061\",\n            \"-730780927736831533616\",\n            \"1069468118213157740893\",\n            \"-1997524152172607320568\",\n            \"-1013146875657159489822\",\n            \"-1973113169762410936751\",\n            \"1200927779840472350073\",\n            \"-1766824844262595417616\",\n            \"525685124341004293754\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-170913940873623401775282\",\n            \"179981267419149838084057\",\n            \"-370082002746130953305180\",\n            \"-131843472762558045740043\",\n            \"-552464426412919975259597\",\n            \"24312389763321025014440\",\n            \"-117006219956015698142037\",\n            \"-294656127901854426623108\",\n            \"211409385267588640410423\",\n            \"-401701449753764845530816\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"261336340980586457175758\",\n            \"-200294377526284545507585\",\n            \"-545096901807334905127689\",\n            \"374297611040715654546064\",\n            \"242023592078112962668392\",\n            \"519439377841947434686615\",\n            \"-474543347988347187804194\",\n            \"-394392300302764104998174\",\n            \"-373120785523247440518771\",\n            \"588720790387528574187381\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-139459348306311875888174515\",\n            \"31473852940256986171518891\",\n            \"-9887972468444270565467209\",\n            \"93418597022785737089002364\",\n            \"65646938038849350878907951\",\n            \"-13454108861792806928065988\",\n            \"-49131526937539933217982757\",\n            \"133308858070906575237327213\",\n            \"152947960978969273942320012\",\n            \"-99442640752857756581864595\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"2115383285040758640199104\",\n            \"73985143764269122713862311\",\n            \"61649530092631838157886499\",\n            \"8213049092689795695398840\",\n            \"-80077933562147893493089163\",\n            \"78551679595459404249914332\",\n            \"19850268736295064479696418\",\n            \"124684888502488128271726633\",\n            \"37465268414151592422174391\",\n            \"-81920045880589413421302411\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"146919906028535181219026866\",\n            \"-89543083067520077646503602\",\n            \"-57021118916205567449809506\",\n            \"123915826284653894642187831\",\n            \"45309385836027080396265975\",\n            \"108158825422372930192837799\",\n            \"66329707408865417911755413\",\n            \"-118958587438073608674047710\",\n            \"-91357950068726260281104280\",\n            \"-29334802080406579764325519\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"29971765432798246511193470890\",\n            \"-14358861096333026316517453356\",\n            \"-20738805649133754102834682386\",\n            \"7189350037292179268626580107\",\n            \"28348942101195751039833924545\",\n            \"23861168485253092769676627300\",\n            \"16588967227968379293949586116\",\n            \"-6873327380426872277945057200\",\n            \"10424009656429165482189206264\",\n            \"-25621000662753343435110968263\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-39356814765782174445810187495\",\n            \"-5109629353343354164045003706\",\n            \"-16869835388192806041216992477\",\n            \"-37493550780440739680416813425\",\n            \"14541598222000814429300992064\",\n            \"-38988737188675992487467355111\",\n            \"-5094561545550859820454915644\",\n            \"-12905499536852970749799435474\",\n            \"-21653278306908362352193117144\",\n            \"-993708667489234042402387802\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"92415685774358925610111866673\",\n            \"9229208403038084890901114521746\",\n            \"-1766812394389966971613945075397\",\n            \"-414903185248431735357057732437\",\n            \"128208901508290284695665875545\",\n            \"-2137916455945877871317699306510\",\n            \"533853066501738976626621316273\",\n            \"-8107875934613418676045246063445\",\n            \"-2240122730023917069540851608907\",\n            \"-581801766541597034700720337725\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1815876156537294905389859319649\",\n            \"-4726996253616925415079686314941\",\n            \"568839304816351244324261819932\",\n            \"-5163478890877212498625611240707\",\n            \"-662774202918173654109667847074\",\n            \"-475889796722743921788914957564\",\n            \"-2257429926736080379736282434990\",\n            \"1726653147329710337174488734580\",\n            \"-9363121838594629328777547224810\",\n            \"-7533717992682225954740846518262\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-943679878919633167252094145878\",\n            \"8714088656079526494903956041252\",\n            \"8411215846063249276308781788948\",\n            \"3664164290851654853119485847374\",\n            \"-6596298511313995187171485387486\",\n            \"-1888023965534996939643588527874\",\n            \"9495642065507897069829420814146\",\n            \"-944088385505063048706519524817\",\n            \"-1682255994436138829648213443423\",\n            \"-10107759010048745798990652968169\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-1264118898522834382835880961293103\",\n            \"175335396147539366747199378984306\",\n            \"-1480903532901286343978092781681499\",\n            \"-1192391017717251896100729091650720\",\n            \"1838460835508247778407301651152350\",\n            \"-218273162958334959288494722385785\",\n            \"-266094035120591056222534225926678\",\n            \"2529452524986175024854639128506489\",\n            \"809296180497156248692989775063626\",\n            \"-2062841016560545591440823200686963\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"2170563804277303232741531700370893\",\n            \"-748753118748469760570998958561667\",\n            \"916018945705575050717700426827152\",\n            \"-2184472322228724823602690942023783\",\n            \"931638193487785096171421593175885\",\n            \"2048640881231787711057765873886397\",\n            \"-1717558044075129776250633892902155\",\n            \"-2313071463687411409263290533428648\",\n            \"-2151217590832164263816790880109487\",\n            \"233680104831469375662508975501380\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"386287962215958396998754574574732663\",\n            \"-631240026268303131318958821819142960\",\n            \"-525325746870165944407752164089651120\",\n            \"226083291950635135851013581626817238\",\n            \"-248862800389803494487190616128802768\",\n            \"-504010349662551275225205203827997278\",\n            \"105517119082759430552188298694313003\",\n            \"485997620144390375276743453768158813\",\n            \"-31031956533367407083197254732570524\",\n            \"105470167017873351672604929878914316\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-483310365266775246988333151327302729\",\n            \"632542156756981952900968647179691109\",\n            \"-199686287544647062245243545386295768\",\n            \"-346768888815915145525346260667844925\",\n            \"-208917751619615348174629828212087836\",\n            \"301058117385654246394042436715253681\",\n            \"72505593750960021178904279470923063\",\n            \"-533222490246855780568633480920745903\",\n            \"218758514092273334444751656476699625\",\n            \"508751967807589006206145598647069503\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-42741017306389443150668859837924739566\",\n            \"5211098457938490686418682329098486838\",\n            \"-129969844595428022866869746117998789324\",\n            \"-94012368654033828127179346577805729097\",\n            \"35086650888287131920843468969962483767\",\n            \"-64547523416114956219242396283441262524\",\n            \"-78626332557361945510915241951325611430\",\n            \"130701192029686880255650902394824091256\",\n            \"12989363125669154968811991286890110074\",\n            \"-19085080263288132794957946754147030146\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"126277014750196607230171475233679635500\",\n            \"-134087443068240928447419624897745395408\",\n            \"85434520441165433374732053355016779518\",\n            \"61561576435107610545214363658645070358\",\n            \"-35737267355118855527515802602250082633\",\n            \"11868126818381274069679858879103809834\",\n            \"87005374759848073229912677602906854442\",\n            \"90719075388093079581459445478934240458\",\n            \"-21323038801308634493038758759215276208\",\n            \"150665237002876200779610299709080110866\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-100088170739481113599978032714704061913\",\n            \"87230434305877189656761352602340853350\",\n            \"150644562584291617352733319990979317142\",\n            \"2355696344715547537955189102551329553\",\n            \"158450070722937152732551704806734037987\",\n            \"148116003453147564228147700395660475174\",\n            \"-115716266063960239779150802300625543144\",\n            \"-158188859732442401491344398356371993578\",\n            \"-99767424729140507618824095329194502037\",\n            \"62003921486566133988081889333737019283\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-535\",\n            \"-25514\",\n            \"12848\",\n            \"27508\",\n            \"-25029\",\n            \"-8130\",\n            \"-25697\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"21948\",\n            \"-6803\",\n            \"12985\",\n            \"-11290\",\n            \"21862\",\n            \"-7890\",\n            \"7067\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-7148303\",\n            \"-4971329\",\n            \"-7052595\",\n            \"4735130\",\n            \"5847325\",\n            \"-617961\",\n            \"4747637\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-5671537\",\n            \"4122273\",\n            \"5239819\",\n            \"5517428\",\n            \"7254910\",\n            \"75359\",\n            \"2582957\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"1425327362\",\n            \"-959771469\",\n            \"934816401\",\n            \"1185248203\",\n            \"-959453286\",\n            \"392425494\",\n            \"16338144\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-1025370776\",\n            \"-572097770\",\n            \"1425619841\",\n            \"-380090147\",\n            \"-1914141867\",\n            \"-910187147\",\n            \"-1412977686\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-434340667\",\n            \"-1848805050\",\n            \"743213334\",\n            \"-324842742\",\n            \"292670937\",\n            \"-1900640639\",\n            \"-933474826\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"239743079568\",\n            \"-159475972033\",\n            \"-482663945868\",\n            \"482237623461\",\n            \"-423374537953\",\n            \"-467862671850\",\n            \"-529681543215\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-9094038950\",\n            \"163457626005\",\n            \"-104843767567\",\n            \"-374539130257\",\n            \"-470191859293\",\n            \"80376556424\",\n            \"384398483083\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1769074858487\",\n            \"83312732731055\",\n            \"-41445089577043\",\n            \"-93201479369899\",\n            \"-119343260700090\",\n            \"-68212756586620\",\n            \"-42877401031196\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"133242907747130\",\n            \"50022504118929\",\n            \"2658782627429\",\n            \"10941894796686\",\n            \"-80085216865476\",\n            \"71240008008818\",\n            \"42520497691986\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"82862936532274\",\n            \"-110751109078729\",\n            \"-88636454965649\",\n            \"89575893784635\",\n            \"-113792597216820\",\n            \"16670045303954\",\n            \"72512396633875\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-18708696209667035\",\n            \"-29729465986356868\",\n            \"7302038187080545\",\n            \"24647819387887401\",\n            \"-24274097067646472\",\n            \"8981835671516785\",\n            \"23227166627732592\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"15050466481240323\",\n            \"-24020755744281234\",\n            \"30234678633583819\",\n            \"-32972592121664681\",\n            \"-31358688408363897\",\n            \"14381538054568157\",\n            \"-21711802576304571\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-2980656018277684855\",\n            \"2130261546356574299\",\n            \"-408075321227727159\",\n            \"8286713698598987178\",\n            \"2810785916900593847\",\n            \"4658344625420734801\",\n            \"-85955245053273680\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-5045733282821378120\",\n            \"-5160561427270835799\",\n            \"7274527635644960075\",\n            \"7450048726897605750\",\n            \"1192508141799813218\",\n            \"-6935690825612507890\",\n            \"4890840298456771251\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-2095147600329911271060\",\n            \"1933472672626912165692\",\n            \"-1347315152343358826298\",\n            \"277387945491924944621\",\n            \"-769378651588853688675\",\n            \"1228702994603312892693\",\n            \"-573226298560349349125\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"949955811513626444069\",\n            \"2348831874784760844285\",\n            \"-1005596983583704859249\",\n            \"-160987643119919574079\",\n            \"-226311796781453099711\",\n            \"-777866278163013786942\",\n            \"-119808887292662530484\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-1078706430442981789252\",\n            \"-830548988474988813900\",\n            \"252173722280322777802\",\n            \"686764913963945110534\",\n            \"-300321502707885602741\",\n            \"-2341175459570789936839\",\n            \"1104794651616574646405\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"81847995433813126101147\",\n            \"-122374233040857342961394\",\n            \"-86035995805787828514539\",\n            \"126804988483725019773355\",\n            \"173993212271803349346646\",\n            \"-479430025014835876660217\",\n            \"-107472624962357365868332\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-394077530826954690702589\",\n            \"-558490301095757507242556\",\n            \"-521490538576210425997803\",\n            \"457192467034944298375289\",\n            \"-514616069321096954519829\",\n            \"478488130853503189910654\",\n            \"-577821496311805716252063\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-25044801706278642778701324\",\n            \"12810834987050168365242160\",\n            \"31708912178391271824492022\",\n            \"29246422252469203846996284\",\n            \"29386096276019991509643500\",\n            \"49156718482999311956010351\",\n            \"-146178818417047615416629788\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-113609160992875298395963861\",\n            \"-24138001744338957650286105\",\n            \"-67004809197973811498505516\",\n            \"-102688488214775613024684556\",\n            \"139561555742232655615687767\",\n            \"-148612499920539242012129054\",\n            \"-60197558339677876239964540\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"20195825920279795940729324\",\n            \"-119334106986421277897505308\",\n            \"151659610074839765261403354\",\n            \"-118170878491501590658833395\",\n            \"50153305614953569413375206\",\n            \"101283064071515743153346905\",\n            \"-8052314554905129705402755\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"23932763385345968456601647803\",\n            \"15652781673781689996402901658\",\n            \"-25714911140136998783717424112\",\n            \"-24063108817371419630967954407\",\n            \"15277383588988737590192970511\",\n            \"-19221555964336177191153095738\",\n            \"8525778421472359673700475873\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-29702031637985515415546806692\",\n            \"-13859102307407213719104673225\",\n            \"-25067618688733109656139385633\",\n            \"-24682956579651842668991571498\",\n            \"13711565425088715334400148186\",\n            \"-19366222915962629805772891305\",\n            \"-33545282070076066792477610200\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1577579865090943191123249075079\",\n            \"-3525655228029257341271764365663\",\n            \"-1050223731403232946069011798659\",\n            \"9184101680926576354398417891029\",\n            \"1090277651050981596352138640337\",\n            \"3043069214224348874921088096672\",\n            \"9123125546671244166682999591141\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"5230742018439185774351510283447\",\n            \"-3712455999261483372027089691766\",\n            \"-2990152400744505134513538814664\",\n            \"7316572061546595364944616807071\",\n            \"5602827451767519820566081421704\",\n            \"-9545247122155861772969509882401\",\n            \"7032145480601368225417113061961\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"2664567996265385909226813270251\",\n            \"5361353871754409746653525259200\",\n            \"2256932189357666584876220153595\",\n            \"-5654300048316572634355784474153\",\n            \"7631572574661069365537533985027\",\n            \"-2645945495156645486998250219170\",\n            \"2020870690070534491429622566455\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"2007985045286249696289152653639706\",\n            \"255131400056657258321022115794563\",\n            \"297050787060326049481336858216178\",\n            \"884106234438982336563352611661346\",\n            \"-2587734425716673025569123990231730\",\n            \"1957450916757365456976201890886857\",\n            \"-368089571172755563470896249505623\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1196387814490529999805386914015829\",\n            \"1038685272748955982421814739654364\",\n            \"-1193187060865049033560022310447241\",\n            \"-1172542451530951320883605317070612\",\n            \"2109806848803753145281118730755717\",\n            \"-1123127061355414245949691913443684\",\n            \"1576461862603874408384234984377650\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-622450033088710447603286926602835722\",\n            \"647404094951668977726470009898385198\",\n            \"-226340752111389342737654608992675255\",\n            \"288035057938916398743906657372237781\",\n            \"-398948521522675079718064199905049101\",\n            \"210834703229901379528655619684415338\",\n            \"-151997602879056519490824338774903819\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"599661339271767435241765491583593057\",\n            \"-405698515950459980602780956812973563\",\n            \"-651291563428939025100760124053290332\",\n            \"-657745631936196547863976296056517471\",\n            \"-600407163951273202005007415374308699\",\n            \"-238929313727252416233275164296771369\",\n            \"558497244260050726702362474833539378\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"47697045732499570659740940309604340801\",\n            \"49094216418383588916902774794940184651\",\n            \"107458416864580553906480322750546108468\",\n            \"-126667437332361921585431044198585948515\",\n            \"-53936578834290623326458038655308336078\",\n            \"104673595473921192102042280196362912884\",\n            \"87274371731568548795590851613278065574\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-57994691774977410461009466091670483898\",\n            \"-139290829877786761805444219267269803497\",\n            \"125557441407240749013229104923768296949\",\n            \"-149517211669454181272347743110271361442\",\n            \"-61144120978857663327902638374458613629\",\n            \"98284527118323795858458311216632999342\",\n            \"-121317326075664247739969129996213981006\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"31724754377471299103514825907465147200\",\n            \"-68683175193407119606110759218116809794\",\n            \"51929217413585477513343109403149838340\",\n            \"-145027261082478191639375237467632529703\",\n            \"-49770426552521492900748892821647544270\",\n            \"144672559328394602382003101451778075572\",\n            \"28345129948566882228213841519097444442\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"19013\",\n            \"16476\",\n            \"-20629\",\n            \"-13807\",\n            \"-4458\",\n            \"-14679\",\n            \"13895\",\n            \"-6591\",\n            \"28846\",\n            \"-910\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"7624\",\n            \"20461\",\n            \"18204\",\n            \"566\",\n            \"-19039\",\n            \"17312\",\n            \"-16104\",\n            \"-30039\",\n            \"28542\",\n            \"-31955\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"630872\",\n            \"-3149478\",\n            \"7212148\",\n            \"-5625858\",\n            \"4187377\",\n            \"-7592605\",\n            \"6361212\",\n            \"1360513\",\n            \"5585631\",\n            \"-1637645\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1903211\",\n            \"81573\",\n            \"7930229\",\n            \"673455\",\n            \"-5195870\",\n            \"5653300\",\n            \"756828\",\n            \"2999469\",\n            \"-5710166\",\n            \"5301041\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-1853757120\",\n            \"1047124920\",\n            \"560213792\",\n            \"-566455513\",\n            \"1050311723\",\n            \"1598909497\",\n            \"-1861461622\",\n            \"1007453606\",\n            \"186779504\",\n            \"-563460356\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1383656932\",\n            \"883468748\",\n            \"-1292278154\",\n            \"-903131312\",\n            \"-1071814745\",\n            \"-1300060646\",\n            \"-837242798\",\n            \"-200746325\",\n            \"714599424\",\n            \"-6503541\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-460640621\",\n            \"1452598777\",\n            \"-1043355004\",\n            \"601836614\",\n            \"-387360778\",\n            \"-1842549950\",\n            \"-1286045229\",\n            \"1011279045\",\n            \"897922597\",\n            \"-2075789221\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"268979329564\",\n            \"516400770279\",\n            \"-330547198646\",\n            \"-138555837050\",\n            \"326543329356\",\n            \"-135436080610\",\n            \"-179952442222\",\n            \"300111077580\",\n            \"-276023308365\",\n            \"-379534546872\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-11746421841\",\n            \"-355409685643\",\n            \"-176229485899\",\n            \"-335104431722\",\n            \"162586810440\",\n            \"-417505572341\",\n            \"-327503218560\",\n            \"-237592706942\",\n            \"284154570293\",\n            \"-247114028858\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"81497388294647\",\n            \"-105089606867026\",\n            \"-85485884825237\",\n            \"-84732918845306\",\n            \"8357901780398\",\n            \"-59052160981538\",\n            \"-118765758366224\",\n            \"76774046345709\",\n            \"-122272430514436\",\n            \"89632957325007\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-49023243323234\",\n            \"-19691482514190\",\n            \"81020005388878\",\n            \"-13049232621282\",\n            \"-64400521716964\",\n            \"-44556778372970\",\n            \"-126760338329887\",\n            \"-95545268831523\",\n            \"41700405063963\",\n            \"108419780726149\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-107526557921638\",\n            \"107593946350906\",\n            \"15717527533250\",\n            \"3802176381376\",\n            \"-95371837173682\",\n            \"31982300862443\",\n            \"11262311488441\",\n            \"-71783765256670\",\n            \"7543990555883\",\n            \"6433455104518\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"15370190057594307\",\n            \"25338659396844360\",\n            \"-12395415092069244\",\n            \"-14339801329528901\",\n            \"-4669889778034838\",\n            \"-25293753369826946\",\n            \"-3864029849168179\",\n            \"-2361320120283656\",\n            \"-1383816312214096\",\n            \"34795785958072458\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"3783311029197913\",\n            \"6715667064352355\",\n            \"20491322855651616\",\n            \"-18892806810730476\",\n            \"-29298088411781325\",\n            \"-18004762134322096\",\n            \"-6287459475318319\",\n            \"-28607277114462589\",\n            \"-21423194975668894\",\n            \"-34665915056050672\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-3801841962478573811\",\n            \"-7405589676368624854\",\n            \"8312654202555889027\",\n            \"-8469153922901405899\",\n            \"9033342105804955460\",\n            \"353262572711500661\",\n            \"-3106215324351420666\",\n            \"831047326133816380\",\n            \"8150006237115616315\",\n            \"-4283399264798386963\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-8901584431726569509\",\n            \"3464311601859524575\",\n            \"-5869426028134580414\",\n            \"-2688169706060456011\",\n            \"2295784898660947844\",\n            \"8661201927268530958\",\n            \"-1291556588632435723\",\n            \"7508890651106821342\",\n            \"-552620568374393213\",\n            \"-2414552209269209516\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1268774911788677821466\",\n            \"-1468173730086716488054\",\n            \"2333556357660662925914\",\n            \"1125086588336622451903\",\n            \"-1307938906371302432016\",\n            \"-1335315025974812297181\",\n            \"-1770591667023996442654\",\n            \"-1618151743678349641488\",\n            \"-1953870570892738899528\",\n            \"-1420698506208780653516\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"97145774678299519394\",\n            \"1227557973951035235823\",\n            \"98483114001898133318\",\n            \"-241607937190185623252\",\n            \"-1824624845562727979837\",\n            \"898642316179641750374\",\n            \"-917227455439067325819\",\n            \"1391756574048152055440\",\n            \"-2338483366275639941073\",\n            \"-236784562298273813783\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"1385658483208773656383\",\n            \"988352401637819464904\",\n            \"-834024798417789410134\",\n            \"253470261013770477298\",\n            \"1027824244823037033941\",\n            \"-295271284578270208942\",\n            \"2092749933699556157881\",\n            \"-212909696600914004341\",\n            \"430816063369429652642\",\n            \"-2118940369361998675417\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-72495282431672509310211\",\n            \"-260808002784871326009195\",\n            \"367911180219297507096976\",\n            \"475567389581679354296412\",\n            \"283347954325215180669562\",\n            \"-247672665222729098007990\",\n            \"212556445759539758862792\",\n            \"95137611300085883049338\",\n            \"-253373421791320529250788\",\n            \"222529485178868323798812\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-198192142423639484697068\",\n            \"177859535515358311773279\",\n            \"-558532822597349100035295\",\n            \"-340243398464679108564091\",\n            \"265469123993517923432529\",\n            \"345718000847558318478738\",\n            \"378018566902132428188504\",\n            \"105885046930552921000134\",\n            \"-160893570768315261756622\",\n            \"-387610702742418384935858\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-144968858380916871672160248\",\n            \"52324015489202530187648533\",\n            \"-60539725259061399057418114\",\n            \"5951149345478800610815784\",\n            \"57415730864791909115606042\",\n            \"-52801875272942350510376204\",\n            \"134592231723492901663336639\",\n            \"-140309028873563970501229424\",\n            \"-108507437605812788817593167\",\n            \"34131217432985750294482026\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"101925561886985522713167496\",\n            \"64068475454853961876718594\",\n            \"52868179913899871904937921\",\n            \"47228119380503897884367815\",\n            \"-46788993674462462832287570\",\n            \"-104610259825858116764781983\",\n            \"32354527810168930868473679\",\n            \"45056639449462594887058208\",\n            \"-135796831562998221931983419\",\n            \"-118863104811282298311979720\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-144935023148179749058126736\",\n            \"48227314826112309666538622\",\n            \"82605524173281841359546240\",\n            \"138426913971094444509629819\",\n            \"133303171716402294169615293\",\n            \"-142698067685030493395426562\",\n            \"-16118795484757783951829634\",\n            \"-127345535900813079037928402\",\n            \"31052925027573527366876496\",\n            \"6085416657630733491512226\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-35364635610587093818111370252\",\n            \"4086803468490861639250374276\",\n            \"-1753919885518013415897000208\",\n            \"26862553012392198245742349664\",\n            \"10669372287960510828219956384\",\n            \"-1007097557406650376921479141\",\n            \"-1580693773196331906210657222\",\n            \"25812917857711965549650468024\",\n            \"18724993038796357154863599325\",\n            \"-24508123889671650819840888793\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-18902279341581100470708119631\",\n            \"-36522283854701472155628358904\",\n            \"39532617789123607497080494567\",\n            \"27117584983573687565416505488\",\n            \"21636499255472286057566042509\",\n            \"18733621370093464247720680288\",\n            \"-39480534968471587456182921828\",\n            \"-37721391776569371748588571168\",\n            \"35468843832781032242301509843\",\n            \"-16165717202124486435967229402\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-4522816763549834982990574959364\",\n            \"1373820747630420236782319267397\",\n            \"-5973300398871900188157345915779\",\n            \"-3481250147289716375798626146235\",\n            \"-1694496501940066046436069391978\",\n            \"-7462383927751567171069774651591\",\n            \"8912249954123145763780574884843\",\n            \"9381633652197120079484670939176\",\n            \"-1098878014354252629151676845724\",\n            \"-2173222031454195847214087975766\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"8975610890580938533873895882166\",\n            \"6181193231273971804885197385850\",\n            \"441052995054523394237285556116\",\n            \"-8766763319719487961533692298280\",\n            \"-842714990971736191972834107071\",\n            \"6840968783732306639312843567376\",\n            \"3841095572745602224231284364820\",\n            \"9467751369945105582701807843797\",\n            \"-5351035191765711075838610630694\",\n            \"-5308772832124983511335493031630\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"9347392750318791423094898319330\",\n            \"4183549304829613232393877274325\",\n            \"-2300378611286319596549279057011\",\n            \"-6937551197751554358853541320617\",\n            \"4564202808321596383974663617261\",\n            \"-5190481232725371819825118580382\",\n            \"1822212646901438322631749853066\",\n            \"1485920178528983047791595729329\",\n            \"-1229068069521960212083202938332\",\n            \"237689578861440280652794100924\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"115106178081535021784505745982211\",\n            \"2419329305084042487339107025104645\",\n            \"-912291369331954853157175763841502\",\n            \"-900563205408184843681209632304310\",\n            \"-2409941993002043200510899606638580\",\n            \"207954557233582697210944508650947\",\n            \"2523362759243854886179529293350534\",\n            \"-1209388681794143621587165255741373\",\n            \"259026751367118542127035660878113\",\n            \"1003660757951177805123793137984087\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1364136601439660016967396025012011\",\n            \"-2319775878890049929548330062341070\",\n            \"-1449285195280197573540980195382578\",\n            \"107888626176858249017005749097741\",\n            \"-2047490557041291301727159113491968\",\n            \"-879558452744622993459196325149602\",\n            \"-1386527790084045558776796472278147\",\n            \"133271536923889936499750446388741\",\n            \"-2505010338752155970620613001087615\",\n            \"666690558706649829294657481518697\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"647827261339309139672072271604218401\",\n            \"-258811588602379592317988185007366025\",\n            \"19118764232643136124664526632131448\",\n            \"-342358790376296733951169651683991194\",\n            \"323251023333708738421455258993841741\",\n            \"379547465547461884608218077364934561\",\n            \"-377241696764273343171368191818828042\",\n            \"-474120316689176518053512200120507400\",\n            \"572902079758457973787032998836436243\",\n            \"-170695774138811733345401262184630875\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"305708404293242487627320811047392371\",\n            \"-531504659332015189310098462346024467\",\n            \"38731992465228164632556252163535297\",\n            \"663006990236245838431214438209595319\",\n            \"-118885733274822068648133582054828225\",\n            \"-144829449643189775388924778145388908\",\n            \"472872218845792265593284840437270542\",\n            \"-310671243825518439944530367781619370\",\n            \"100999780786464624037618413063970122\",\n            \"-140342096347493988777682079106141362\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"32980532793889149400753838532332705439\",\n            \"-164344442015956226607797018737685311450\",\n            \"-141620964137040177729886345057833620325\",\n            \"129406137990155072039956432976677981821\",\n            \"110860822470333733093650034824108278208\",\n            \"-55257524399499752297571098737083027353\",\n            \"21667380566056781477986443622263599784\",\n            \"-139527484497317282946286760556136131579\",\n            \"2993193228803848771670718010890478039\",\n            \"-17314058829458659076458760524200313761\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"136785414456456523483802852002988078554\",\n            \"158300488297788966764944523807878924712\",\n            \"-139182135932402606222753976139330995413\",\n            \"-65945426315720446378481044342262546327\",\n            \"150507222652197288662681358385272850559\",\n            \"103871248288732570387585721016195272008\",\n            \"71995969230355239685697947093141718491\",\n            \"123362031595790252645978327397128737346\",\n            \"-9750682546488018096795492364860912234\",\n            \"-154627508798373930419429872814370749557\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"119842907203642501605603704672016604700\",\n            \"-17268268161596497482469861499561728202\",\n            \"10844152782523585961703939469633384076\",\n            \"-62997709460500166787346095846904613371\",\n            \"88308111493725127276829193825175861897\",\n            \"51565439967137952485926321683961024024\",\n            \"47601722115696675135575316380394827453\",\n            \"-103072164908596700312680385416990765141\",\n            \"99066862329124132138915843909816085618\",\n            \"29881936603443354551348559988907820317\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"11695\",\n            \"-23366\",\n            \"12098\",\n            \"-5922\",\n            \"-24360\",\n            \"-26490\",\n            \"-8451\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"8356\",\n            \"15273\",\n            \"13350\",\n            \"13154\",\n            \"-24436\",\n            \"17249\",\n            \"18193\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-7959866\",\n            \"-4584859\",\n            \"-1849516\",\n            \"-5743547\",\n            \"-6549993\",\n            \"-2265282\",\n            \"-7704024\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"7862991\",\n            \"1982106\",\n            \"3725606\",\n            \"791227\",\n            \"4292112\",\n            \"-7820825\",\n            \"-463905\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"393711805\",\n            \"722994374\",\n            \"-1096064610\",\n            \"529484077\",\n            \"1342578673\",\n            \"866470525\",\n            \"205716816\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-791379162\",\n            \"-1640580986\",\n            \"762691364\",\n            \"1995469295\",\n            \"-421319712\",\n            \"1271534201\",\n            \"1429378995\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"302750528\",\n            \"-120846658\",\n            \"796589794\",\n            \"959422940\",\n            \"1637146863\",\n            \"-2105168751\",\n            \"959083607\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"369772287616\",\n            \"151347559746\",\n            \"310899836472\",\n            \"-72176434390\",\n            \"-96924947011\",\n            \"-228897695327\",\n            \"-200002009593\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-457074057554\",\n            \"-375995209273\",\n            \"316810959776\",\n            \"232806094204\",\n            \"494582201448\",\n            \"527142467595\",\n            \"429029914811\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-2749358243231\",\n            \"-16732337474393\",\n            \"-41981779092256\",\n            \"-31047429629139\",\n            \"85922781452400\",\n            \"-110248875388850\",\n            \"14775617632206\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-89773154375777\",\n            \"108323854266884\",\n            \"-25662671385030\",\n            \"43022064801421\",\n            \"136623279644254\",\n            \"59073010679225\",\n            \"-68467564739828\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-72813466497130\",\n            \"71140769259291\",\n            \"-80317050256498\",\n            \"-54904445398065\",\n            \"58067517976047\",\n            \"140251327559406\",\n            \"-19836322904046\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"32549494969775706\",\n            \"-440355605481950\",\n            \"11791444108889307\",\n            \"12475855272248987\",\n            \"-2784519143284935\",\n            \"32466210616699342\",\n            \"27675300306271448\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-2902857186001800\",\n            \"23303428815434999\",\n            \"22978749219565527\",\n            \"18265376949989171\",\n            \"31457574635371153\",\n            \"-7781184835189876\",\n            \"-14565659292923040\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-430513575868348426\",\n            \"-8790392468356940146\",\n            \"-4699312496566636040\",\n            \"-3993022130065929131\",\n            \"-4879440303771900917\",\n            \"-6552655591468880275\",\n            \"1746806308890936437\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-721862386033128083\",\n            \"-4475260144423557773\",\n            \"-2570981490582934517\",\n            \"-7711961915298512607\",\n            \"-4822749646811070045\",\n            \"5836898402712974203\",\n            \"1646816636258502903\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-196690994284317985909\",\n            \"-1104147372526288843337\",\n            \"-1412688911560211238060\",\n            \"2156517522260848540623\",\n            \"1969864666336817403192\",\n            \"-424864910108053276903\",\n            \"344362455866908271873\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1977829057280933277101\",\n            \"-1853366049465512956083\",\n            \"2335230945236060536049\",\n            \"-1075731044607594025734\",\n            \"1859892436977688408623\",\n            \"-315861879615022790690\",\n            \"-406105163821827431877\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"417852109818843056255\",\n            \"1752679773930708218188\",\n            \"-1943388216652054599366\",\n            \"-714786275398685414265\",\n            \"585659101400025508462\",\n            \"-2096928276954243783388\",\n            \"-5439936016422902751\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-371691511788058976981831\",\n            \"468331324108156702082525\",\n            \"-306216617268143895601700\",\n            \"585404166947186691975366\",\n            \"288996272789179095805972\",\n            \"404343176683141658586544\",\n            \"191866472956788824823964\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"315327112788086641525519\",\n            \"196752770980596165008391\",\n            \"-572486369362609381413082\",\n            \"157070379247532783973389\",\n            \"526043469975661293749107\",\n            \"-332418593565470406233968\",\n            \"-456053081488540795834833\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-32587082314199631587299920\",\n            \"133861603238939464220682787\",\n            \"-83661874551945050110053855\",\n            \"88800710199138738791487458\",\n            \"-148303404783980031631890281\",\n            \"-92723105772899258187193672\",\n            \"8503332868372431603113821\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-19332793743633931994349116\",\n            \"-96326365761369957850035834\",\n            \"-131011081713605299896434887\",\n            \"4272403363996546916496923\",\n            \"-136751423492618686805500248\",\n            \"151616186823003014418871731\",\n            \"-1671600429980516271659907\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-140178641895610194038703824\",\n            \"-101032891978279919640123306\",\n            \"81660784678037787563074285\",\n            \"39964525581604073164209878\",\n            \"-27374188725798306962666133\",\n            \"30132624370004367295733964\",\n            \"-24808854061327935626508114\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-18346621296739073329815384276\",\n            \"8129555162832277260205547644\",\n            \"36653480194016965780646040547\",\n            \"30413178297188904152302651584\",\n            \"-3894577824082035416332316895\",\n            \"-36007834468089853892594019849\",\n            \"-15800624696484429406311297074\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"22023236505727198042054799637\",\n            \"25162398511869781136612460948\",\n            \"-27627237437030757915583163269\",\n            \"2399929206249180782631036076\",\n            \"-28662435722237160171923737772\",\n            \"35814219127521949420744820118\",\n            \"-19892289081278817747121556433\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-5833740800009897266898626041467\",\n            \"-33244429845422337192185559070\",\n            \"8607576650630464089887525333430\",\n            \"-2116847884082967129690884147276\",\n            \"-1688186241717588214733687423048\",\n            \"8336863793337204216701546448411\",\n            \"-7776559106309167653701679757019\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"7677666198324057071013895406917\",\n            \"8312123351615753410594523358329\",\n            \"-9172950392603423861689575769225\",\n            \"3983044414175939736030503134666\",\n            \"8631672985863441241981992212823\",\n            \"-5092486822105432034536308372124\",\n            \"-9513508243773819164622502221862\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"5586571833059467170325581422044\",\n            \"580606001351331867421453366092\",\n            \"5459008382235569678361699614142\",\n            \"5167556446031629490226831649463\",\n            \"5538049048887584844681848848766\",\n            \"6285520963756397613259958855517\",\n            \"-6303661112625789803890168279755\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"2026431296682674250857553865416840\",\n            \"2156728720055476065414283902556465\",\n            \"-2113626044266072567032924427618725\",\n            \"1577105749037891124349723340806308\",\n            \"2341510691513285685324249715992360\",\n            \"1152985290466370765853992549550372\",\n            \"2257606784668378735530248971238219\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-1909890587318622197067905430014808\",\n            \"287541947253583018938971686094227\",\n            \"2133113520020164331925609988632397\",\n            \"877412966607662750851739644288192\",\n            \"-1354720000623937488986892371455979\",\n            \"26739837041119641398066396760126\",\n            \"-188838172981149861365490159579856\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-474782395129122353298074619574123333\",\n            \"475246432403218151819336842343219369\",\n            \"-173617778400150860563781368814715566\",\n            \"-185846112444193317541092054250459789\",\n            \"530657363533857853032769680847569540\",\n            \"-624548224136809783035837658411029096\",\n            \"16767939677460215918277184102392562\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-8794439856560424693485039347212630\",\n            \"-74573922642298735959395658944476425\",\n            \"50121637564100226023942304740008235\",\n            \"100186315919309941191487123083722961\",\n            \"-656685831019371144979565967330203175\",\n            \"598127327210536287666688394187681062\",\n            \"469011031931868490962046889570742506\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"132571096983923187471923107191482189670\",\n            \"159416816456247505951844178439417096312\",\n            \"-46858620574250494092983344457915710534\",\n            \"-32188937023483923298551233297633219014\",\n            \"23399433488123673778344704553087116420\",\n            \"49411831195906345612909906764377215656\",\n            \"-120433578968253846639971258003920226422\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-79060725002651426090157731360159425117\",\n            \"23590752860694088349229816117245792147\",\n            \"122068332660626412558932914786262751393\",\n            \"58567440788739372959622438841791498887\",\n            \"-151757958624575453818610406998254514825\",\n            \"-46670330230498566773973502369131285704\",\n            \"-67623110355947762123153960505167699960\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"19323325648279215563974499442806584258\",\n            \"160743730096300729908285974982614804782\",\n            \"98979412153227101016992388437605176538\",\n            \"169051965254068352712380666347973917472\",\n            \"33410045474491953996554951161727411456\",\n            \"87639385406550804599722815989154690961\",\n            \"-127263625338574842387718381281492249303\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"30246\",\n            \"4750\",\n            \"-19198\",\n            \"21754\",\n            \"25255\",\n            \"-32398\",\n            \"-217\",\n            \"32432\",\n            \"7160\",\n            \"2502\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-22430\",\n            \"3984\",\n            \"2068\",\n            \"-17474\",\n            \"-3604\",\n            \"15015\",\n            \"-28407\",\n            \"13805\",\n            \"3348\",\n            \"31779\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"2080492\",\n            \"-5892388\",\n            \"-4427617\",\n            \"-1926570\",\n            \"7753036\",\n            \"8027624\",\n            \"-2138635\",\n            \"-7355969\",\n            \"-5207656\",\n            \"565924\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-7581394\",\n            \"-1145315\",\n            \"-5530746\",\n            \"-1343136\",\n            \"-1965882\",\n            \"3388545\",\n            \"5063475\",\n            \"-4724789\",\n            \"-5369747\",\n            \"-4555562\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"12542417\",\n            \"1259749219\",\n            \"-475800794\",\n            \"2133922027\",\n            \"584606746\",\n            \"1701844663\",\n            \"1570293589\",\n            \"93985663\",\n            \"-1590446304\",\n            \"38383855\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"1335818368\",\n            \"1814707665\",\n            \"-1447700920\",\n            \"-13690005\",\n            \"863389254\",\n            \"-1088930392\",\n            \"2068779612\",\n            \"-431001990\",\n            \"-133595395\",\n            \"-687033383\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1433448420\",\n            \"-2037717833\",\n            \"-681228088\",\n            \"566270991\",\n            \"1714830138\",\n            \"1383333290\",\n            \"-870073230\",\n            \"1018390804\",\n            \"-1658508550\",\n            \"-1107870810\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-183566186766\",\n            \"22430286822\",\n            \"-216962582571\",\n            \"-466722944551\",\n            \"-27556463961\",\n            \"546569939868\",\n            \"-276694721505\",\n            \"-48879453774\",\n            \"260500893747\",\n            \"-442983780322\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-537420559602\",\n            \"-20381317872\",\n            \"-238654812999\",\n            \"162311255965\",\n            \"-380528677930\",\n            \"460248798746\",\n            \"-470403136829\",\n            \"41925493634\",\n            \"118729323873\",\n            \"152145641309\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"19115429868946\",\n            \"13475764429133\",\n            \"-134296438665814\",\n            \"106743314332396\",\n            \"-53710936617611\",\n            \"55826528957975\",\n            \"-6112400391073\",\n            \"29771890922370\",\n            \"12948136568295\",\n            \"70280112187588\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"75635401406293\",\n            \"29801992058998\",\n            \"-104075542445723\",\n            \"96149637189488\",\n            \"-92247279012539\",\n            \"-15060636948068\",\n            \"-56990909320532\",\n            \"-42148465517830\",\n            \"4636483585350\",\n            \"36352680284144\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"109325942422503\",\n            \"89437875709036\",\n            \"-69763342392522\",\n            \"-109570939746784\",\n            \"-51557696910336\",\n            \"106618186702949\",\n            \"-52418370534901\",\n            \"-41131112323835\",\n            \"97009168063041\",\n            \"15052093903552\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-12596475918000306\",\n            \"-10440190089661389\",\n            \"15930071291826631\",\n            \"-14154914571137080\",\n            \"-20679980275492503\",\n            \"-5555224487780486\",\n            \"19901627911606993\",\n            \"2179801741655552\",\n            \"32519637793270999\",\n            \"-12190525011728478\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-21675467468906896\",\n            \"14317453815507613\",\n            \"-19766776814356123\",\n            \"-15076731200801441\",\n            \"-22431380700345243\",\n            \"-6473570686950262\",\n            \"-8373384674763888\",\n            \"-20901722770742947\",\n            \"5175325370040911\",\n            \"24214606141441984\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-6586995582558976488\",\n            \"7822902623338681773\",\n            \"6785324312631495786\",\n            \"533690903523561420\",\n            \"-6270244316286526849\",\n            \"171361209170531205\",\n            \"-8970550092894953161\",\n            \"5694205347266685846\",\n            \"5128833225945547275\",\n            \"-6526220735860764396\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"1525290815331568444\",\n            \"8786542072042599843\",\n            \"3211936611572870417\",\n            \"-1018796928748300854\",\n            \"-5419478240797376370\",\n            \"2820144392948109276\",\n            \"-8097542825869754965\",\n            \"-1815427842766140431\",\n            \"7519915858501526150\",\n            \"6718055695379996173\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1633852390483743207506\",\n            \"-1111545040340809206837\",\n            \"244724811785233487882\",\n            \"-693891632794029583107\",\n            \"2048439746612005438484\",\n            \"-2139374266382006896259\",\n            \"824431366346499761550\",\n            \"-2178751263030852933012\",\n            \"-1927196521844590849943\",\n            \"988141071239138916737\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"2257309169850384513902\",\n            \"-574793864866852081089\",\n            \"-1948188754190708684653\",\n            \"-1683360294804356257358\",\n            \"1047989496843790848714\",\n            \"-1920909202759912391700\",\n            \"-524370318736298792785\",\n            \"-2270280452792278665082\",\n            \"-1977443531683898225523\",\n            \"996281040520873028206\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1794161457257457767507\",\n            \"-579049890249855445335\",\n            \"-1877229817480332151412\",\n            \"1516286188346047750655\",\n            \"1679089559862183244805\",\n            \"1899758075679851870084\",\n            \"187132781949105016179\",\n            \"1867935632353572731320\",\n            \"-1296841752077650621812\",\n            \"1300114283317135818081\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"158042936756450218355580\",\n            \"490847485432966130350847\",\n            \"529866300289645094459968\",\n            \"-197353870044211794005526\",\n            \"87425841556036243951489\",\n            \"373006885981853652482697\",\n            \"-287764822688722336029390\",\n            \"-190352821874203518937063\",\n            \"279464221696482690177922\",\n            \"456648278931495677210040\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"62449586174442498659851\",\n            \"91984117770625787970323\",\n            \"-386017533006981165958695\",\n            \"-252962587854796012161774\",\n            \"-41590821064900391076386\",\n            \"-482091979386779184677156\",\n            \"91503772892342811308019\",\n            \"-283504385220883938631335\",\n            \"68755932698885547223664\",\n            \"-379651999761873616235097\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-126087576931161225003970774\",\n            \"127239018834369984513800503\",\n            \"70141064110265604854079590\",\n            \"154422224583900250448650270\",\n            \"77231480791207775951166590\",\n            \"99492320089316975380000682\",\n            \"-153576307293383539264890034\",\n            \"-116341636204244696735578596\",\n            \"-15786876758860723008109946\",\n            \"-34149255348815753839077980\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"143153832119590577378917526\",\n            \"-23514921785325046830312515\",\n            \"-77172712985345097430419628\",\n            \"-14243153727807957632994400\",\n            \"-58696496713845538380317529\",\n            \"69538635574941878208722809\",\n            \"-26166185622705445056596537\",\n            \"-62690164472796028840316596\",\n            \"21101480017403262376196510\",\n            \"-26276281990810217165918990\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-40333807166719138901605362\",\n            \"-37987667593309107331951459\",\n            \"113271936526201411790724188\",\n            \"-45961181592872567354204492\",\n            \"-55914627445218102108646757\",\n            \"-104465866552974080878275370\",\n            \"123873735196193599773252021\",\n            \"-69984072371083501932162355\",\n            \"60408753566988145951843027\",\n            \"84960611400280128174752202\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"36246979996368740974728708372\",\n            \"17919686541827178802317575872\",\n            \"26685274428819984663215559869\",\n            \"-26830140388908281565789341267\",\n            \"-2931873170900073034034488176\",\n            \"33796846013743474981760651067\",\n            \"-28384722395594446851545817635\",\n            \"-22654753522493569083372946875\",\n            \"-32663458189555845828697337353\",\n            \"-35127901885613742916339593277\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"20660444307893572140115730346\",\n            \"-3785075277916670195560917943\",\n            \"505119675982960330877221727\",\n            \"6140046975369405521925948823\",\n            \"4736562894917206280220185620\",\n            \"34734639626599117839339792477\",\n            \"-37238839274684550289419840966\",\n            \"-21192307666520898522344443325\",\n            \"-25731253359857977263230009203\",\n            \"9784873768788010897306473642\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-5228112207960439532634245527389\",\n            \"5167964205023544904856267703266\",\n            \"-3153830415354733573037966725748\",\n            \"7450883686345014593203587360908\",\n            \"-6190984559160100747667669453446\",\n            \"9158379943043982798000435871289\",\n            \"-5143633836669582578660334205312\",\n            \"3857866493487182226354931788449\",\n            \"-1995529191506094552567237788773\",\n            \"-1939757494685073234017884338772\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"2983226908002458413591863312573\",\n            \"-532752777081931294958349500501\",\n            \"1691976820460575299172383596135\",\n            \"9026960176016243081320400536118\",\n            \"-6149275498377603931086308362289\",\n            \"1877762879546909895671695219561\",\n            \"-5543502816818045577508158461912\",\n            \"-9721729867149888495285508938337\",\n            \"-8920180100768743706171922537830\",\n            \"-5169979352443901899206068056740\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"8702135094804887254191507204010\",\n            \"7975177441141361458695114972857\",\n            \"4215501985734737238170439787178\",\n            \"6544777372478132898809386710105\",\n            \"2765576461694941619080416997749\",\n            \"-1508947428389258215537026450679\",\n            \"5110812407105601388124457686907\",\n            \"75095474631054730513072856363\",\n            \"-4279937210566724408068745471134\",\n            \"-4330630809933126585531848495211\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1504559618154883384814296581669162\",\n            \"-773390196196490039153882388890703\",\n            \"-1897752906170923065951917060777094\",\n            \"142958130493415644926376088950273\",\n            \"-779836256990434274653725306832085\",\n            \"-1753325836605413516914447603525700\",\n            \"-1542378627150307800859873587627455\",\n            \"-1939970582128933270354383457813584\",\n            \"-1411234208839859424724556632640107\",\n            \"-2126244899381031545661748447926471\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1307160371865080630115651820675170\",\n            \"456003844170818774621646351482357\",\n            \"631068765196513436260956185922434\",\n            \"-1965243043509431543877873260642837\",\n            \"1924094736312307345032078234417418\",\n            \"-1875239514046642535329927412930852\",\n            \"928252274243472509987779134671194\",\n            \"978995848734671073561475467379020\",\n            \"-2564475835488959647742888457890405\",\n            \"-570152793522093518749573568631120\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"480389537893603636983558781276270114\",\n            \"-322627233363211525549283706077204323\",\n            \"-175773029789054851482330028411371014\",\n            \"244330382338385690861905900080229456\",\n            \"-392607940616669928826392153052775593\",\n            \"-107267728131376637957275222403768541\",\n            \"-545143790608966683829710014599747249\",\n            \"364869469591341322932716899752758323\",\n            \"394858084329837561588098411142592437\",\n            \"-610840159277877166690985420617619153\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-192669740281245461265542023292550989\",\n            \"-12603685317720603777562699557006198\",\n            \"187283379151228677500952715809692379\",\n            \"513546955692369120286734180331431234\",\n            \"-482110749762971834845638869557855315\",\n            \"91471688959029993916111990585487772\",\n            \"220809860807910859636036119386009639\",\n            \"652850877928760022088469019476234455\",\n            \"111668879690942453024321503787659219\",\n            \"73373210253636230671660785291826427\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"44996590607819977856286386900323601897\",\n            \"-68502769785321582579070708156248378078\",\n            \"114506708080602131052528148832194410156\",\n            \"-83232569015900232819092415317550976561\",\n            \"-97716408046524726095696560404660126718\",\n            \"32040614956823782468855275605877008019\",\n            \"54753377444348733160915719409913741068\",\n            \"146560799167787084071378433728834118133\",\n            \"-46659169011613354044672675978630700660\",\n            \"-18373617990019061846229769982316099682\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"67505677281734524965060455064837775711\",\n            \"-28713223195193703313300117213126061466\",\n            \"114670528108596039585803474305454053759\",\n            \"-109328515397473152172020766238706523521\",\n            \"-57747808164476452164582125724287659511\",\n            \"-115039911119596976728830311034338189054\",\n            \"90118785065736856720547824894744092178\",\n            \"-89659383715739235835540012679951558145\",\n            \"35536568601909522172926452268384931891\",\n            \"-133420441752119085196081353415527833003\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-8627303427894096841021728602542914202\",\n            \"-157430702291942847264537187308979825421\",\n            \"117495445521490567278694563084720233793\",\n            \"60657311361342276211434917495326305014\",\n            \"-46555659115647145900825174050414002012\",\n            \"38569430641717011417297628092264146455\",\n            \"104117949912584083295919883245212540224\",\n            \"126517129168323484921506157524766805721\",\n            \"-89395247495161073292219697890210210916\",\n            \"93186204422346566052866526301928198107\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-28716\",\n            \"-7461\",\n            \"5893\",\n            \"1161\",\n            \"-17035\",\n            \"-15574\",\n            \"4237\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-5295\",\n            \"-19936\",\n            \"26923\",\n            \"2510\",\n            \"31124\",\n            \"9353\",\n            \"-28774\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-3553533\",\n            \"7148395\",\n            \"3061750\",\n            \"-1009165\",\n            \"4381645\",\n            \"-1818667\",\n            \"-5730247\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1477251\",\n            \"-5800734\",\n            \"4881425\",\n            \"-7296550\",\n            \"-1526219\",\n            \"659450\",\n            \"-8356198\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-263873982\",\n            \"-1472352429\",\n            \"787206308\",\n            \"761788112\",\n            \"-2134545176\",\n            \"1917444990\",\n            \"-145750272\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-433966181\",\n            \"-1545963916\",\n            \"814812077\",\n            \"1593862724\",\n            \"-701833517\",\n            \"706907239\",\n            \"-544182188\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"805594080\",\n            \"-1195679709\",\n            \"882347557\",\n            \"-1853839955\",\n            \"646020133\",\n            \"1484971204\",\n            \"1300988856\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"4438499204\",\n            \"135820810048\",\n            \"-298194796045\",\n            \"-167913299917\",\n            \"-257288837544\",\n            \"289738017191\",\n            \"-418170170454\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"17906290840\",\n            \"125414876927\",\n            \"-275575916904\",\n            \"86104924740\",\n            \"-164076860424\",\n            \"390339975362\",\n            \"-408791420440\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-43710596027703\",\n            \"112836996919727\",\n            \"-105977145834636\",\n            \"-112904124134240\",\n            \"94001656040741\",\n            \"65183044734455\",\n            \"-131866661735203\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-90977051496274\",\n            \"-10596476734437\",\n            \"61560055683609\",\n            \"133871189520814\",\n            \"574814014019\",\n            \"-38018623146961\",\n            \"68859957958301\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"26944281635514\",\n            \"79179252721889\",\n            \"120097494144511\",\n            \"-76597855106777\",\n            \"72037045699022\",\n            \"127107312225912\",\n            \"-51976566719455\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"386005180963195\",\n            \"17673684201876788\",\n            \"-32819779628129716\",\n            \"-26142734584760798\",\n            \"-21415081378865369\",\n            \"27386071060762895\",\n            \"-25035767854560405\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"28727678942578358\",\n            \"3716854509922265\",\n            \"-30765891503268996\",\n            \"-35428939049280802\",\n            \"31032813396558579\",\n            \"21132833493728424\",\n            \"18323423600720926\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-7388758649832651560\",\n            \"4890796540741969531\",\n            \"-6494554253322577454\",\n            \"5501693823164720471\",\n            \"-8097047242278575855\",\n            \"-6038810107886633396\",\n            \"-2806525281648999824\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"5813079697128581888\",\n            \"4678184506304863002\",\n            \"-456855996733358303\",\n            \"-2121277677973694726\",\n            \"-2248413943539318365\",\n            \"6272381020409312259\",\n            \"1274893351361543565\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1566501292452282639110\",\n            \"847789298808224186659\",\n            \"-1381494557864830190709\",\n            \"-389660191209952286951\",\n            \"-191009516626814231082\",\n            \"-96116899012721630801\",\n            \"1868221459505859782879\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1469408605037106208705\",\n            \"120169104670163997156\",\n            \"885213643526004078499\",\n            \"1656898855207585194216\",\n            \"1868990072585461344802\",\n            \"-933261783269672604472\",\n            \"274307016875459849352\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-1897801203902311359499\",\n            \"-1638391687561633219399\",\n            \"809233679262405093278\",\n            \"-1426552107698825838210\",\n            \"-2156155154558519949123\",\n            \"375648567641874627428\",\n            \"-83641445825921590041\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-54554428886951413193957\",\n            \"-422146139334599760408373\",\n            \"-181537137117950003153154\",\n            \"565479726514324786737359\",\n            \"424173391709408884362222\",\n            \"-426382471585898970959321\",\n            \"378989549983955912678977\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"332482827287198457983040\",\n            \"26269806073413044497682\",\n            \"221494228699356468610270\",\n            \"-214742700742291383196050\",\n            \"-485063025095965310275166\",\n            \"-206922662880263609184941\",\n            \"-12269499779054433613668\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-2079153784240544880908553\",\n            \"-108538000488167946369982799\",\n            \"1337702113416699090369723\",\n            \"51201975526129906812967855\",\n            \"95133477031983503992368010\",\n            \"99560753378096547573231892\",\n            \"94680749872380168429064405\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-117274302077491880342412021\",\n            \"133235309557643707264847345\",\n            \"136425992851983814996249850\",\n            \"141388968148866833783730856\",\n            \"136798627735587050485647952\",\n            \"-19126693188647933554261649\",\n            \"48757965489875879851975965\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-8286635741174299975868485\",\n            \"51609959172902905910311173\",\n            \"-109111488591575501922430237\",\n            \"-78557116791558802282576538\",\n            \"-80656136078314199047657721\",\n            \"-113053382890647628720214794\",\n            \"-118160471943246572510407260\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-25813553783572142627468328674\",\n            \"-25977427310356228285126178554\",\n            \"-23185854957388926526847402942\",\n            \"-21707862041932744516393466772\",\n            \"-6421519562360989032505224517\",\n            \"569338598241172908008799687\",\n            \"-31836549906764569188743203758\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"37793044332277423478767661867\",\n            \"20748364196925817852337750787\",\n            \"392549789846734208161909185\",\n            \"26297790988587948005258680240\",\n            \"21586249354499693315147989389\",\n            \"22288577155677496694419036361\",\n            \"7345604052580273885509583438\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"9904495274881627900139080199187\",\n            \"7482827727017947275973272651641\",\n            \"5495560179907337187222597837509\",\n            \"-4055007536622081915505189176936\",\n            \"-9465371767163898005811811099232\",\n            \"-7331632251430461716607678930512\",\n            \"7141099397756868279221372659248\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"4169713351778166668753234914191\",\n            \"5859067319849858664254420101042\",\n            \"-3754282354044818620313472353105\",\n            \"2568048327396196032282025142854\",\n            \"9311607892968389058421897582763\",\n            \"5977797766778831148484981898236\",\n            \"-6645965265653096929117017458058\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-5801906969242261868600254035787\",\n            \"-3336257298871507164494778520275\",\n            \"-2636835112016446965166101852431\",\n            \"-6885572586792737606252971841764\",\n            \"1603907679825345662447639552058\",\n            \"-6879056187486539384923466888462\",\n            \"-1790707021629779711475082448245\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-1034675525852537762364236474862575\",\n            \"1711882430155290136112735898040514\",\n            \"-95920345818202387596164300835452\",\n            \"-2249141525032950659874767503830521\",\n            \"-1652263065729457379526511839069047\",\n            \"69137670296199427018181414584483\",\n            \"-1688424122016258582447918142136846\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1068287357075711311089614491385749\",\n            \"-950554951242207664534573691846304\",\n            \"-1956036184083258810589554917733280\",\n            \"-896537215061273632781289017902857\",\n            \"-2536258376526122583868387765640523\",\n            \"-1792994625229025457039629491080247\",\n            \"1098569487026708584137620128184550\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"175091933681780709419449962505368809\",\n            \"452587234945438576574474457110999168\",\n            \"551706621587607711559343522731729738\",\n            \"205869761865384575133175619802827356\",\n            \"421828722673799022708318616794744473\",\n            \"284099079750264743351804395834429375\",\n            \"-227206504976250724681610321278346086\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"653258876517803228567267877074483421\",\n            \"88498832885550519275280233629225185\",\n            \"-76011122884235139182377528836347729\",\n            \"-306036684553026363758974895394410014\",\n            \"507096898707325051267095986297417498\",\n            \"7244969811766625291666288991989734\",\n            \"-573031189194397866985879798798669571\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-78707895658241450417047565739309187422\",\n            \"-109360485739432018575519398965631343423\",\n            \"-2428635583984270308797486033895962820\",\n            \"42753163486976599252181370759774389112\",\n            \"50819284555128794452586051816572760071\",\n            \"-144242532387316071424543222681940814787\",\n            \"-36156399915684139601256093989051959166\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"162984880645317865260475927948552198958\",\n            \"85240365845562965434048060592369612866\",\n            \"-158859671947676245091304105755240830347\",\n            \"-106305457729982387569448077637482766080\",\n            \"112063647808441935089339730874648100522\",\n            \"-89567526888097522782942387372735070337\",\n            \"-106346834442166901546233152794820385747\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"49579890402336664433922726332197359945\",\n            \"73089275354843686046803386174212568686\",\n            \"-114653905042244944982579349957812151500\",\n            \"127934754145313083729997784370486712512\",\n            \"-153960964783146902490613407319798440760\",\n            \"61282287594543529304868203724834609850\",\n            \"-95735253186395895118322435677049180510\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"27248\",\n            \"21926\",\n            \"22498\",\n            \"-21109\",\n            \"-13865\",\n            \"12084\",\n            \"-10974\",\n            \"-7421\",\n            \"11109\",\n            \"9914\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"24181\",\n            \"-10020\",\n            \"-21281\",\n            \"21049\",\n            \"19869\",\n            \"30238\",\n            \"16713\",\n            \"3878\",\n            \"-3800\",\n            \"12113\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-2112580\",\n            \"-5802445\",\n            \"-78712\",\n            \"-4496866\",\n            \"-5053677\",\n            \"2079868\",\n            \"6150553\",\n            \"-4483834\",\n            \"-8023488\",\n            \"6603846\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"1291524\",\n            \"3929930\",\n            \"-7350947\",\n            \"1175586\",\n            \"-3405008\",\n            \"-5060125\",\n            \"-8206503\",\n            \"-1303953\",\n            \"-6095530\",\n            \"-2760640\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-2147181345\",\n            \"-267715231\",\n            \"1287957097\",\n            \"604610482\",\n            \"-1548079692\",\n            \"770882347\",\n            \"-1892574560\",\n            \"-253216281\",\n            \"-399486830\",\n            \"1325921155\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"1675268343\",\n            \"554051112\",\n            \"-1764481009\",\n            \"-1789514237\",\n            \"-175051236\",\n            \"805874123\",\n            \"1858433827\",\n            \"-799955854\",\n            \"-253242360\",\n            \"31754547\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"861980915\",\n            \"-1734894499\",\n            \"5375232\",\n            \"-1346978107\",\n            \"-705850170\",\n            \"2133236007\",\n            \"759674577\",\n            \"1654618415\",\n            \"-1064241799\",\n            \"205825786\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-439739629851\",\n            \"546687129596\",\n            \"-183193050720\",\n            \"-19380489102\",\n            \"-295956872287\",\n            \"185301861617\",\n            \"-539483275533\",\n            \"174936140900\",\n            \"-216157665368\",\n            \"-323903818433\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-206902602028\",\n            \"-25523711337\",\n            \"329376290572\",\n            \"-547086561793\",\n            \"-420540489807\",\n            \"533906771992\",\n            \"-69356183432\",\n            \"-15636527669\",\n            \"-53282559214\",\n            \"-290867614525\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-71228950033910\",\n            \"-25738844726735\",\n            \"7537765437683\",\n            \"112839875804433\",\n            \"97538539157933\",\n            \"23979706973815\",\n            \"99830033351181\",\n            \"-98591255279452\",\n            \"103618021816339\",\n            \"18626785293021\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-63486282809713\",\n            \"101701065580704\",\n            \"70027248433374\",\n            \"-55296910174840\",\n            \"-79310707567811\",\n            \"71500005915799\",\n            \"-70746573691925\",\n            \"88747230972798\",\n            \"37301558421391\",\n            \"51854510134738\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-87693600270321\",\n            \"-12454309380745\",\n            \"-78257696973308\",\n            \"80285965677822\",\n            \"125254246716243\",\n            \"-117675991977555\",\n            \"10663316581359\",\n            \"24255903525594\",\n            \"81254209111391\",\n            \"-72113987036299\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"29148599662921759\",\n            \"19685775734681446\",\n            \"3333245217877997\",\n            \"2995823413324396\",\n            \"5176366661056475\",\n            \"12337102603147756\",\n            \"-20628365543902019\",\n            \"-22418243161590754\",\n            \"-29067802239769240\",\n            \"-23018730875097178\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-6176426923194882\",\n            \"-8149067582880393\",\n            \"-11749166095143035\",\n            \"18401921003901093\",\n            \"-1996265112064578\",\n            \"10197501871192290\",\n            \"-32253621163897299\",\n            \"-20847987719333936\",\n            \"-10659701083886535\",\n            \"-8278323833998893\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"5136857587879831048\",\n            \"-4226582843485454109\",\n            \"-4390294981117989663\",\n            \"4994818351801512739\",\n            \"-8267282930090047916\",\n            \"3039283087909496060\",\n            \"-4294189184656602394\",\n            \"-1041549980371122641\",\n            \"-3656126503669238317\",\n            \"9105664583047399153\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"8890565452093789405\",\n            \"516172262246414024\",\n            \"1562263263000381143\",\n            \"5536662842752237787\",\n            \"-8351947536553705606\",\n            \"6464103264200892007\",\n            \"-8790661469847258111\",\n            \"-6209442610558714656\",\n            \"435574662691177275\",\n            \"-4406978950610351547\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-288778447471678108496\",\n            \"217217798831157629251\",\n            \"-608988687910814932673\",\n            \"-2240048037329221421107\",\n            \"141299084981472691413\",\n            \"-2195387109122670914754\",\n            \"192149022897618665404\",\n            \"667039189961523482717\",\n            \"-2155889747007763781525\",\n            \"882853814250996329398\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1751402159298369348560\",\n            \"1451882575998488934096\",\n            \"1558108778681655864225\",\n            \"820503763199449595318\",\n            \"1623615880148157710724\",\n            \"-1033406684162170713762\",\n            \"1930159737768844808076\",\n            \"-940015457688702701592\",\n            \"25356638204045989132\",\n            \"758908114106815880742\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"1716471103883506022556\",\n            \"1848997534114484794729\",\n            \"-1094717836300829658295\",\n            \"1157808654390779724644\",\n            \"1974960526678787421302\",\n            \"-791852644564930461068\",\n            \"1518936215943205538052\",\n            \"993164305481300592037\",\n            \"-2190917609278580708946\",\n            \"1868797478910203743832\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"107250259596579898525274\",\n            \"36231469749575876646505\",\n            \"329436325938797206808627\",\n            \"-280578826478526573569133\",\n            \"522936041458815155368518\",\n            \"192285773258090139021578\",\n            \"-54285825226099356185035\",\n            \"-147961354881812346695825\",\n            \"600347692235230272507966\",\n            \"-353688820541444702551558\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"365491534656040934517771\",\n            \"-547465713497612713037502\",\n            \"116041079260709253587380\",\n            \"119630447821474156181639\",\n            \"522081240494430350219263\",\n            \"-474030018965150641292577\",\n            \"50270333922267433091553\",\n            \"-24643818854330102652483\",\n            \"245112928498664779365511\",\n            \"-121521490474436234210533\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"26593659860935441804716440\",\n            \"75646833540201692356918621\",\n            \"142130608477738687479162886\",\n            \"-83412542972966251252815465\",\n            \"-151155951774532976658715599\",\n            \"76154233043964388249198213\",\n            \"-46853272352917278017975341\",\n            \"32486164613383508372076408\",\n            \"-66829799824523238584057062\",\n            \"95792417909842220506235101\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"63730088675558873019939745\",\n            \"143548109718428079482639663\",\n            \"-27693260291056796500091225\",\n            \"-72348766321107397898380234\",\n            \"138677152483427690881537874\",\n            \"58516156596033347413669914\",\n            \"-107433759528371577596908748\",\n            \"-78141621760355595625354145\",\n            \"57091054796595629043991192\",\n            \"-123271655549899762394142143\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-38477417050477847045725516\",\n            \"-95888838803508348417829785\",\n            \"-93625160413861971562012467\",\n            \"117087970522726692597218305\",\n            \"5900192167374488789348559\",\n            \"-24674580893344344193379627\",\n            \"140998648377023443587850974\",\n            \"-66274038957839610112342957\",\n            \"114522458983086926572397822\",\n            \"101447863265640837765853036\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-55906306943028913908051930\",\n            \"-26457941841314857799301954576\",\n            \"21759711912953355183243610182\",\n            \"19401890234998887013156330687\",\n            \"-15933074126275848181591729540\",\n            \"27293805787497685180871118517\",\n            \"13704320194409856542280625225\",\n            \"25216830024686698097083609599\",\n            \"-33566241896826513638448226962\",\n            \"-6406030957083785743431792377\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"13296281254042409316527886192\",\n            \"5338707057590130523225415567\",\n            \"8819455897090902612324273291\",\n            \"10450242868251146464691055988\",\n            \"3984408170044123068649964640\",\n            \"31173755255592998054061179789\",\n            \"-19050412661501894628584863098\",\n            \"24644713794131254858462909618\",\n            \"25395276076315730035919041533\",\n            \"-10189071623516303081731732147\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-2273158346503188393179401750902\",\n            \"568616855647559589863643266508\",\n            \"-4280161068916792824269044568609\",\n            \"-5682425054604041528765672948927\",\n            \"2331397238480003292876981020193\",\n            \"3147988283813769672815110099822\",\n            \"-7632390386845877850077854509431\",\n            \"9840981189438011830733564669593\",\n            \"5308479141310485223873660191378\",\n            \"118932930720936450551429018688\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"741957915704735308305168907322\",\n            \"-9762021206507044939694536775050\",\n            \"-8250703757145415326282325826063\",\n            \"-1178202689406322490432919428434\",\n            \"589668456154125344611661965499\",\n            \"3829126770246418858041384052999\",\n            \"-4152282954150010503796558904446\",\n            \"2039899673016755337154781922078\",\n            \"4170256258494884707646640540653\",\n            \"8171545852305751294990084682300\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-6962616269350967896600526637270\",\n            \"-5635024743757428123953554602073\",\n            \"-3202590711760239385953136717255\",\n            \"9910046190612877780929595691738\",\n            \"-3777668629625810788137576085843\",\n            \"4614409143748488045192848474816\",\n            \"3938785692531490617884534958248\",\n            \"5437946965836538604426507932284\",\n            \"-2545690782086924734038765495913\",\n            \"616702678702978670407261429789\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-1801934502106174445176675096416695\",\n            \"-1684879803716391669315795499837023\",\n            \"1886852307739025680614537841032728\",\n            \"-2087562101318915052443253201738269\",\n            \"-289564041897678470358656657180353\",\n            \"1866276858800525721011618985335357\",\n            \"1482056324539718482806113984364738\",\n            \"1379406656844501099108553390445618\",\n            \"447265769955522315901489749442865\",\n            \"-1608978736986184364139419097387143\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"959483969247063574072923758413354\",\n            \"451668303782354619245629961105613\",\n            \"377534722039293380340942675240743\",\n            \"122765139177423843232789966201962\",\n            \"-1265814388489880705763330194364716\",\n            \"-2555618459717759708270107188671150\",\n            \"2134470347388221582022629725907413\",\n            \"104244807033941042242397388741541\",\n            \"-1292911051966102235019381832015662\",\n            \"2097241241602887003970802334050941\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"547484906495898917724309897034434982\",\n            \"187296642318494648639964887497107585\",\n            \"195010449729172050428280546508810633\",\n            \"594640376620694404142214250754771517\",\n            \"616088304853668191153025331194418912\",\n            \"-379044114359687531180765592396048067\",\n            \"-486181591192683117321273734043119484\",\n            \"-334064376837986313664550095407721034\",\n            \"290486366889561681226507320645315096\",\n            \"-347474821649864554819987979701785016\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"592690007814067700303615752186669589\",\n            \"-33347738259818305399177703203880591\",\n            \"-382688857036730057091326853248715857\",\n            \"340921527686390758273070134422955102\",\n            \"-246344114285772780156570736620316760\",\n            \"-87281520666834090344267836809132652\",\n            \"537245232536815311537081321427376564\",\n            \"-493728711296235677585761940344917200\",\n            \"-377081442166516277552025620543264222\",\n            \"2719688994411558148859579112050541\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-164648696059184796053055559504365982538\",\n            \"161879775934873933398660278767200250776\",\n            \"-29323675327274284512731239968352351966\",\n            \"22303285730412507017282414138333454321\",\n            \"37099625903665917412076794028736570815\",\n            \"-19515107152254927806948029059117184611\",\n            \"156049973457253022366642762662774258557\",\n            \"-77241044079010949387624313535905707837\",\n            \"162149982017470420229015929290220014122\",\n            \"-165344491933828504403531276296434192122\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"65054581186254715937680104906134532841\",\n            \"-60909757301953794888323625879233446757\",\n            \"114089158661229718075421585158899052989\",\n            \"107965178723789597153491785237079504326\",\n            \"52247619354554812540456199083118815935\",\n            \"146474344956199824278086927555782062440\",\n            \"-39425662132630652063257104658393984944\",\n            \"93755642240344437526921615504564431807\",\n            \"-151156356500508700657655200155812034666\",\n            \"-148636865825500491359194083438394642725\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-130344022211343875529807825195567803183\",\n            \"40014360360807493456218651568578676997\",\n            \"135874153827020334699855960081428792617\",\n            \"120470160757792083712774060829445555003\",\n            \"-146085386552734357896040388977994934530\",\n            \"64861335611000408584376324518321919018\",\n            \"6601563302721623021480813949509601323\",\n            \"-114901836202314275670611766582662166373\",\n            \"-106800567037776957620875222943893747296\",\n            \"-163938636407835983157260355753705412692\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"5622\",\n            \"-4826\",\n            \"-23503\",\n            \"-23236\",\n            \"-24902\",\n            \"-27443\",\n            \"-2505\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-18970\",\n            \"2792\",\n            \"9559\",\n            \"29810\",\n            \"20493\",\n            \"-9442\",\n            \"-2618\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-7747776\",\n            \"7378127\",\n            \"5914824\",\n            \"-7141645\",\n            \"-462534\",\n            \"7839055\",\n            \"-7683709\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"89932\",\n            \"427016\",\n            \"6342615\",\n            \"2937627\",\n            \"1091159\",\n            \"216727\",\n            \"-6413737\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1508343646\",\n            \"-714398970\",\n            \"686052863\",\n            \"2122626443\",\n            \"-2055953734\",\n            \"-1487184058\",\n            \"-327233497\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"46693013\",\n            \"-185591736\",\n            \"-1319806396\",\n            \"1714735002\",\n            \"-2133394566\",\n            \"-125069560\",\n            \"1637341168\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-24918835\",\n            \"413164011\",\n            \"-2057922849\",\n            \"2056580479\",\n            \"-457426615\",\n            \"536434479\",\n            \"-326452423\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"324353482493\",\n            \"-224184500030\",\n            \"-290036567736\",\n            \"-161876501106\",\n            \"275173073296\",\n            \"-357018570713\",\n            \"-297896568716\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-427281617130\",\n            \"-497367589935\",\n            \"73820145481\",\n            \"-254972813415\",\n            \"-60399473453\",\n            \"232313028413\",\n            \"-327759701859\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-54535480365073\",\n            \"61199946515142\",\n            \"-9892000149714\",\n            \"97913524605648\",\n            \"-85221226793073\",\n            \"-12545722671788\",\n            \"-68773831012552\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-126861055347150\",\n            \"57631355795057\",\n            \"9186109685969\",\n            \"-63002972283329\",\n            \"-58346149025908\",\n            \"115782687691468\",\n            \"139849718208364\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-93813523241112\",\n            \"119065079857991\",\n            \"-51189229753892\",\n            \"15646183077138\",\n            \"59056284602860\",\n            \"-92669522393207\",\n            \"2260801424852\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"1036615300047300\",\n            \"-28482170773083910\",\n            \"2678469281283015\",\n            \"25704309658360513\",\n            \"-12028318394798682\",\n            \"-17245374013553022\",\n            \"-16000168049485216\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-33753168399749839\",\n            \"-27740542059245417\",\n            \"-8681968124590170\",\n            \"32278807399459945\",\n            \"4851945585153961\",\n            \"14217157851976499\",\n            \"-8425777401033048\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-2766941444469888895\",\n            \"1729136918975836660\",\n            \"-1477513497854998037\",\n            \"1433050305337001645\",\n            \"-8233598361619818600\",\n            \"996969961284840283\",\n            \"6329284992445382418\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-718575473243337232\",\n            \"-7375018409999376865\",\n            \"8283859855328355879\",\n            \"-4138525682818595012\",\n            \"-4431847243389561533\",\n            \"-8084764830291418974\",\n            \"-3798062670523971527\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-565050117259497763461\",\n            \"-281556879669412834613\",\n            \"1705137738829453364168\",\n            \"-501989730825366398918\",\n            \"-1424226998969964624602\",\n            \"-2198902125834852658804\",\n            \"382157856805932111771\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-303105514873146686437\",\n            \"-1865673314410343902064\",\n            \"-1739893893314072462832\",\n            \"199753736014467107913\",\n            \"277323073744563230355\",\n            \"-1117856351014668186043\",\n            \"2336687337270391579606\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-285211332299958353660\",\n            \"-1511512024403761316173\",\n            \"-1568309493555178992532\",\n            \"1640762644342585812496\",\n            \"-393568821945143862673\",\n            \"1038579276245861014094\",\n            \"-862919179403309677858\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"592348192569902724704840\",\n            \"-26223245863895268294610\",\n            \"-338508635422316199664947\",\n            \"-486334758177154752056666\",\n            \"-326020328807272087893596\",\n            \"306693173070483770415643\",\n            \"-231885616351380144700249\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"147342012649640932496745\",\n            \"-365590949715364851039873\",\n            \"-238949724961989355524360\",\n            \"-20804180906842992000207\",\n            \"98422693216257524451712\",\n            \"99343894264393231770703\",\n            \"5240277192766874192955\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"97249345115448597432142646\",\n            \"8875195937074039828120226\",\n            \"1542565882778023075834635\",\n            \"11772316605485844570699635\",\n            \"70103217733879642573345968\",\n            \"-102512631348831506793442303\",\n            \"-30574606355593089220215659\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"119081714072400880086737325\",\n            \"-117489206105111877901926548\",\n            \"128872288419083705914038986\",\n            \"130736458515802378822355935\",\n            \"-121556241169153639422095686\",\n            \"72946657503235618393823866\",\n            \"-125663836339334145024409857\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-140434705281044213047311138\",\n            \"-28116089490630336228630975\",\n            \"103267266309928582800251241\",\n            \"-109508303463489441066925072\",\n            \"-37447408761258714290948079\",\n            \"-48348712769317916926342261\",\n            \"-140369639756363883929708964\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-9728758914128859071321834279\",\n            \"33309572658775989148537936017\",\n            \"-24668259330599725242298254275\",\n            \"32381561123351360763354670731\",\n            \"27825802768031595606954105738\",\n            \"12938216164626281948188731232\",\n            \"38931244077102153608387825162\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"10382809776177658355331432551\",\n            \"5168110327267343534258764218\",\n            \"-3267242975961960293350853731\",\n            \"18434029108189696411322869404\",\n            \"35091091873636227218260118505\",\n            \"21108165552752916181263958022\",\n            \"3661245166176387607640692752\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"7740613132371376696717495398418\",\n            \"-7707941191956096108812155008476\",\n            \"-577241601325072443290122836094\",\n            \"600167824497967521284893595791\",\n            \"3272067843081989787146120493930\",\n            \"-1030145054800689456877805292349\",\n            \"-3650234270988646330203349279059\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"7680286774308848437433168536793\",\n            \"6647565199451142367949930365916\",\n            \"-2999133161143853022620246013872\",\n            \"8804348153856092578496854714407\",\n            \"-4952285004482144846215389827781\",\n            \"-5318507214755856895477853590188\",\n            \"3057348036468872181146029422349\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"3851649300561843980682812308976\",\n            \"-5882755312906144634290218148759\",\n            \"8705902980707176681205204470899\",\n            \"-7226642038551930671682828321801\",\n            \"-437315629757074034698382119925\",\n            \"-7001534311562577654291968216882\",\n            \"-5286321524483593992727653959615\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-2529962123499222848219244545038324\",\n            \"395962666703149974739931139610831\",\n            \"57550468475234656216408472967844\",\n            \"16338486361970318802019682813255\",\n            \"-1828779660992541246630598587074810\",\n            \"-1623395548149665302699111049897215\",\n            \"-1192580008134980600742905854055406\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1236661467304426090883166445264402\",\n            \"-371744076376489711195615032257743\",\n            \"2054398363329009304225110885914248\",\n            \"2282254142354611780924986446846003\",\n            \"1335098616305012872647529459955419\",\n            \"-2333515867164879976023231383269539\",\n            \"114078543021693938325750457951500\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"464104358696147522307181233407201836\",\n            \"528236181487245695215532819816780192\",\n            \"-49582519618663647096439258967309615\",\n            \"179810448282591210237518073467287227\",\n            \"641083621863607981646658838917064705\",\n            \"-588820141403146033804863670906323881\",\n            \"-209172547311926173294677521407025768\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"27559909638983289023355911880960481\",\n            \"-225884217842248648518867386017704678\",\n            \"179899274801825611492587037729547162\",\n            \"-645804265572868735329412546507385081\",\n            \"-182001003702797629603891592835717884\",\n            \"-196383748000158684449875627005718638\",\n            \"168348539043763218469877957630344248\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"117107436058598227102369350940703879876\",\n            \"109883501439450473736462013508285281794\",\n            \"-101387654941698733435373306911208832174\",\n            \"120539446302766831060730844387212578122\",\n            \"36010116834354981290778572290676615335\",\n            \"70903063265292543021168853120103056998\",\n            \"110744444106697685492892984617486125322\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"139776289567340167051908795098181848110\",\n            \"24016711019305619625037775723051412673\",\n            \"151016471675979627009310128091857241769\",\n            \"136878330327275804538678500765431659719\",\n            \"-8175489881016674742304549992648258102\",\n            \"25386838486740756955389088300546155350\",\n            \"-58709249744971886150026166430504011518\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-156704989705626079171987231966068215654\",\n            \"144772934450911580494762210707331833351\",\n            \"-62369821560188986732383850394596682312\",\n            \"80247096547059282305305172602938473045\",\n            \"10035303749721112586071998129175567777\",\n            \"92716485473901404146553068374146350189\",\n            \"161388554243068610590428401872902762267\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-17578\",\n            \"-532\",\n            \"-29058\",\n            \"3924\",\n            \"-4368\",\n            \"19542\",\n            \"-9728\",\n            \"-30043\",\n            \"8547\",\n            \"-22611\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-8228\",\n            \"28186\",\n            \"27587\",\n            \"1067\",\n            \"-14722\",\n            \"-4268\",\n            \"19776\",\n            \"32332\",\n            \"24421\",\n            \"-18365\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-1997107\",\n            \"1099651\",\n            \"-6097698\",\n            \"-5444647\",\n            \"2942038\",\n            \"6725671\",\n            \"-1283058\",\n            \"-2877113\",\n            \"7395450\",\n            \"-3898388\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"3550186\",\n            \"1817302\",\n            \"2814668\",\n            \"-2514642\",\n            \"-135513\",\n            \"5746437\",\n            \"5761493\",\n            \"-2082501\",\n            \"-2006387\",\n            \"-32607\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-1478559549\",\n            \"-1775015351\",\n            \"1327820002\",\n            \"2075513820\",\n            \"535530878\",\n            \"1674041100\",\n            \"38780695\",\n            \"-618881922\",\n            \"-1971347341\",\n            \"271829544\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-140335353\",\n            \"1487240277\",\n            \"232889439\",\n            \"-1753621058\",\n            \"-1650070658\",\n            \"-1744522644\",\n            \"445853726\",\n            \"1638982616\",\n            \"-2109491538\",\n            \"-2031080162\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-316389553\",\n            \"625297203\",\n            \"-876965397\",\n            \"-450718571\",\n            \"943406065\",\n            \"1809117943\",\n            \"-1839008717\",\n            \"-502467791\",\n            \"-1208669208\",\n            \"-640379010\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-183748795627\",\n            \"277910510532\",\n            \"142611883754\",\n            \"444329076374\",\n            \"347496352230\",\n            \"-310879611982\",\n            \"-445269624502\",\n            \"-110940203350\",\n            \"414382789989\",\n            \"-299514156855\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"219186267200\",\n            \"-45309151531\",\n            \"361805447006\",\n            \"429814377541\",\n            \"185451738517\",\n            \"-10717952791\",\n            \"-455894293535\",\n            \"-331945266020\",\n            \"434683169128\",\n            \"-427092008228\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-35787970178921\",\n            \"126503320146241\",\n            \"-47160409383224\",\n            \"59076874352542\",\n            \"-54218256211143\",\n            \"131768259093096\",\n            \"-140694998895085\",\n            \"139329340093293\",\n            \"2946344253399\",\n            \"-11352879480875\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-47865164294131\",\n            \"18996772330627\",\n            \"82776417283585\",\n            \"-48069371769128\",\n            \"121080667078025\",\n            \"-69990715553720\",\n            \"-100167359977899\",\n            \"-117897159499581\",\n            \"-37425616598022\",\n            \"-61336459221473\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"24962306301532\",\n            \"1342549247965\",\n            \"69591424177484\",\n            \"20605092392111\",\n            \"96006776802363\",\n            \"103132673511125\",\n            \"-74474597325207\",\n            \"123891091031891\",\n            \"64647602566462\",\n            \"-33817908700461\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-19023776449141216\",\n            \"-16616980776723277\",\n            \"3679087078886167\",\n            \"667623252211990\",\n            \"28848050655097494\",\n            \"35358382636133989\",\n            \"-5528487795104389\",\n            \"-35321874926701485\",\n            \"33150704456809249\",\n            \"-35673170700881073\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"9170335166359676\",\n            \"-29152376325887866\",\n            \"27394714588707273\",\n            \"-18771083725437163\",\n            \"-22856196754531896\",\n            \"30245430696795348\",\n            \"-11339487304468022\",\n            \"11795737209688712\",\n            \"17769114732159794\",\n            \"-31196892450377756\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-7484701409133991703\",\n            \"446279878089310952\",\n            \"-9094698745269615531\",\n            \"-635203874310126070\",\n            \"-3266768293641445962\",\n            \"8803106083192049543\",\n            \"-3447545194464331596\",\n            \"-74015213448162434\",\n            \"-3494919863524679499\",\n            \"4736749662952258658\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-7862885775777111821\",\n            \"-2258339050710865419\",\n            \"8640626623613280261\",\n            \"1725474079450247834\",\n            \"718161694297051028\",\n            \"8263883702397073425\",\n            \"7878929139943328067\",\n            \"4794616785419809038\",\n            \"1846785796472594179\",\n            \"1051708514867826862\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-290275855847029699526\",\n            \"2324764544272157302715\",\n            \"-172538644237854396534\",\n            \"-1015287161642688964086\",\n            \"1083861575526398116043\",\n            \"390994735554610775082\",\n            \"-1196474592645325657445\",\n            \"1865761624558280233031\",\n            \"-1180403655805921813793\",\n            \"530628104087968783213\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"954362787050824981929\",\n            \"-667973333297772026679\",\n            \"-1003872443597233202904\",\n            \"421871596895408794289\",\n            \"-1020239034548744444861\",\n            \"718583437320525106540\",\n            \"-379642667164083852664\",\n            \"-202130841394416991102\",\n            \"-1679999734562681423770\",\n            \"-1700441593695289764413\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-2355756035699002368979\",\n            \"1788582608362609979068\",\n            \"976621959978375116033\",\n            \"551918345212846459001\",\n            \"2038738001872254112254\",\n            \"-104241764012041061597\",\n            \"1815004322628837717025\",\n            \"-366030095473004039888\",\n            \"-212188636908643977409\",\n            \"-2212197067753662412081\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-157029864053237435585940\",\n            \"580349464450639935626054\",\n            \"274606111559531706158496\",\n            \"-271531107176514984144572\",\n            \"-283271260947610926629996\",\n            \"-102992963880630057053386\",\n            \"-151438874243484297766280\",\n            \"267231765639661935826287\",\n            \"6412575179562556131083\",\n            \"-447284995394712155520012\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"82122697814709630556960\",\n            \"-173674944109113014109917\",\n            \"-545487196009632239998847\",\n            \"497347624990809943036106\",\n            \"-403342273894709674210901\",\n            \"-408545942001809410098345\",\n            \"-596472526090909588749503\",\n            \"-516275782103386775147265\",\n            \"571758314045638582710655\",\n            \"-260772039821490889738006\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"151997540068811973892699427\",\n            \"75525965773514350955041445\",\n            \"86334400095685499194704768\",\n            \"-99446476458777770659737285\",\n            \"-36773561228702583990719229\",\n            \"114833233963970911445935291\",\n            \"-53580285648134851613933202\",\n            \"-107255936095104666984539508\",\n            \"11411674730798920037840357\",\n            \"144310491490477735136741915\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"111539513842329174253547474\",\n            \"134891345910083773681115377\",\n            \"4883280022715795599398831\",\n            \"-93475601770663945655266004\",\n            \"69463434873811940745671423\",\n            \"123064229528351805775861869\",\n            \"-150461278409905335393794684\",\n            \"5582686657272910816484271\",\n            \"-41856573658852576713916684\",\n            \"138680097641830104297300861\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-151772029737772929726728403\",\n            \"35642043181692385372706993\",\n            \"22083653620753836019287236\",\n            \"-132784292547512147409668783\",\n            \"-68828393278683857783700197\",\n            \"-76581151082179815290212905\",\n            \"39692809847260519264925858\",\n            \"100268541173636388889856795\",\n            \"-84443541640950891574906466\",\n            \"-56403642052264302619910023\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-28164201707581895339796457396\",\n            \"18512437657026840590853158320\",\n            \"-725631091722477987250581723\",\n            \"12378738266464188323153378043\",\n            \"1884164162561779726605459613\",\n            \"27835210450137278935849561805\",\n            \"-33957093897194026793294927588\",\n            \"24705712105631658413881985230\",\n            \"-20752699574766143719562108952\",\n            \"-25390963174699799711871467610\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-30515239169198036972672053279\",\n            \"-16714522371588133629312659687\",\n            \"20089473716367036753654096200\",\n            \"-26078971629524511775014771330\",\n            \"17501247017496478629908047849\",\n            \"-2928637003025782311993801087\",\n            \"21291695736216764696592795686\",\n            \"31536521455601627910426594990\",\n            \"23365283652803300319589541711\",\n            \"-21352428429043964655987017640\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-1871820427329445630900753275833\",\n            \"3231762858097800568377706484053\",\n            \"-7593147127830990171207926819911\",\n            \"-1328646573449438418929234745911\",\n            \"7929494242245932071338824047776\",\n            \"-3966690046585197915967741713421\",\n            \"-2665638134601027112326964326194\",\n            \"9493723499691953230194922419753\",\n            \"-192784910368186052857726341060\",\n            \"968457352886861403532133623589\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1799593923874731933560217881204\",\n            \"-4108892863880965470839888494269\",\n            \"-9288585435136926537350897814111\",\n            \"5657445890165360156029413482367\",\n            \"9566538541825565997512161866226\",\n            \"-8660816252467569077590355298227\",\n            \"-8872018686223204958393278690220\",\n            \"2747605566704311318475704614163\",\n            \"-5898641587743100416084001786515\",\n            \"-3297823611414655609450786579230\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"3031062632211056878773391959697\",\n            \"4539157404236993497036298560754\",\n            \"-89011930344651313281485505381\",\n            \"6329124475577017732572836547528\",\n            \"10013839443292860323774055369057\",\n            \"-1017595829075308067813401189014\",\n            \"2867701530636012507846076321736\",\n            \"5049199938873542782410309132373\",\n            \"-8360248192335873845319826952230\",\n            \"-8573205393401942663978510341713\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1119504478489389158114715132398217\",\n            \"-1196861483850018707503891203312216\",\n            \"1577676525610019362542143335287170\",\n            \"-828524918774712338254714242796201\",\n            \"2195372295538823359262046660137804\",\n            \"-2090592767226916350765817876441046\",\n            \"1267778113117072331278680263282405\",\n            \"1899343874503183337053685132483541\",\n            \"-1547991409572962043085814686518526\",\n            \"1902230290372078686946188304673897\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"693293489583149990962930554361914\",\n            \"440506011505476370060528227243171\",\n            \"-1325383072032732660105399745630800\",\n            \"917607968990684241788700315356108\",\n            \"1743560964081196656600523814562949\",\n            \"-1632234260262962178728375599295415\",\n            \"-1245497842582367367033445464435845\",\n            \"-1845276210960982951119705348291628\",\n            \"-852049233534078951923277630775327\",\n            \"-1061875438802298101158411197338174\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"662874337110619540246196737572533840\",\n            \"-646712275200560229865863897728322608\",\n            \"378197263526199456522160076139313754\",\n            \"-655367409488714240118815274020981441\",\n            \"-117363023724417392064609064984193546\",\n            \"379968998004796503715316062979365386\",\n            \"581971463075521396879850081437709346\",\n            \"486590909317284352288769404708849420\",\n            \"339153058170383739672141264076027632\",\n            \"368011261202186797510454029551864010\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"611471791995589932000290011287342073\",\n            \"-238320595795246885451815237904493030\",\n            \"129885954954066668429052045867305389\",\n            \"-593881411984223406801058087690854990\",\n            \"208716878349646304461338632058153168\",\n            \"294341067601902100416283102151104072\",\n            \"48828028516396476570316169415440949\",\n            \"621606094524397617471379378110976418\",\n            \"-24429954817222979379361646729750851\",\n            \"174309609239946237584153302119176933\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"38764350872143269830409050492580474774\",\n            \"-1783556143128429347444249923707622466\",\n            \"-73796525965417826742774297120572978723\",\n            \"130398981933491578275105091583750862109\",\n            \"166691015795481448891415156743596861442\",\n            \"137059374902539614554733085225910695585\",\n            \"-52077108529588489247990938655971916018\",\n            \"91346637728026911154761148563604037923\",\n            \"33500089399138437200753844820194648392\",\n            \"-129284621583923871181594899462237973804\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"155321932412457790454079866994618338188\",\n            \"27813009907673742133398066472232685666\",\n            \"39272698207745895563541959640721556926\",\n            \"-122722120683994266643963991712613165291\",\n            \"-130174397926461656752602397741063391588\",\n            \"82090308774368119635497681294792018586\",\n            \"-59839129775569455414641041372080794175\",\n            \"-24104505156877231797915313008748415591\",\n            \"-108881215793562491957481808068270876072\",\n            \"76694630138799355396392615062949976885\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"165547688447137835687250676649889094237\",\n            \"-163339935116527850906013137286281712121\",\n            \"-71022445758504577564847869973739799734\",\n            \"145194176986878243647893329429477538354\",\n            \"64521796946193208156404560040536806244\",\n            \"39300237731247748947718794529964696310\",\n            \"-57247755378136552231880640476421831435\",\n            \"-46273099289129264614986219324959153834\",\n            \"-55042141398285192896194894621330572941\",\n            \"-152341554718452744063215754531967241888\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"18698\",\n            \"5226\",\n            \"22280\",\n            \"556\",\n            \"8799\",\n            \"29440\",\n            \"451\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-23904\",\n            \"31878\",\n            \"21043\",\n            \"7840\",\n            \"-4061\",\n            \"973\",\n            \"-1228\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"2724325\",\n            \"-4798020\",\n            \"1908664\",\n            \"-1806352\",\n            \"-6499685\",\n            \"-7280271\",\n            \"-2257879\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-4011001\",\n            \"6863924\",\n            \"-6697732\",\n            \"-2217484\",\n            \"1921902\",\n            \"4699368\",\n            \"5306140\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-121080047\",\n            \"1970737025\",\n            \"177569772\",\n            \"-675421071\",\n            \"-412793147\",\n            \"1025987892\",\n            \"-1489708604\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-2045004499\",\n            \"539874307\",\n            \"-1997427023\",\n            \"1708485386\",\n            \"541003597\",\n            \"-2142889980\",\n            \"-1571929387\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-1277841834\",\n            \"369437735\",\n            \"115131390\",\n            \"1767292952\",\n            \"-737609351\",\n            \"-1060380702\",\n            \"1495387052\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"197387161100\",\n            \"-254436366157\",\n            \"286370837399\",\n            \"19374886452\",\n            \"-98965142936\",\n            \"-44474737185\",\n            \"443205205790\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-11626723519\",\n            \"446888208290\",\n            \"385477838312\",\n            \"269092016708\",\n            \"-115706867693\",\n            \"186662180742\",\n            \"443402603648\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-101903913010014\",\n            \"-17846116772043\",\n            \"-127568468992217\",\n            \"138034513755219\",\n            \"-22440181460716\",\n            \"63908344819874\",\n            \"71092752187712\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-10514368675102\",\n            \"18576548276665\",\n            \"11989898233479\",\n            \"-94964748076982\",\n            \"-25130417074236\",\n            \"-12150591292188\",\n            \"29627314247145\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-128065487316393\",\n            \"-51607804296775\",\n            \"9339364520761\",\n            \"136634838298533\",\n            \"-51187175560258\",\n            \"120582565367596\",\n            \"-113392529877605\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-6014210637334865\",\n            \"8607066096461461\",\n            \"24796296381889212\",\n            \"-21982938527186312\",\n            \"22830978621256619\",\n            \"-26845542068057233\",\n            \"-1207835268472696\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"3833038092952487\",\n            \"22879010815516439\",\n            \"35249449760784991\",\n            \"-17068864041186991\",\n            \"-26423231151454707\",\n            \"-3215687274393412\",\n            \"-23458194802999605\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"3125947421774122944\",\n            \"-8281228069349294860\",\n            \"-8475285212132358531\",\n            \"-5284781313458999470\",\n            \"8164712809196122859\",\n            \"1812915631649193077\",\n            \"4405900031418971351\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"4032410419461492356\",\n            \"-3461877490707766960\",\n            \"-1034170339182657409\",\n            \"-3390159984142309139\",\n            \"-8014068544953344330\",\n            \"-2322898039699171514\",\n            \"-4866093356373866447\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"746866223721616048807\",\n            \"-1092102356202329139788\",\n            \"-1546383537243345586308\",\n            \"-147480023935690463533\",\n            \"-1613816966398143873591\",\n            \"-1366145607207253623527\",\n            \"-1277834349517264956600\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-779628592648894155798\",\n            \"833551847015048377342\",\n            \"2350685094213395401616\",\n            \"-646450799987582052640\",\n            \"512671457318054258029\",\n            \"889600361052664942457\",\n            \"-1281226453859217419451\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-189794651087146365523\",\n            \"1730990859510508481978\",\n            \"84730118226610466482\",\n            \"-2271149966448749710655\",\n            \"-457693344089241611732\",\n            \"220532349183084708104\",\n            \"667161504208011399088\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-84007006749190537913356\",\n            \"-246149963758082151700698\",\n            \"58599320110198036377337\",\n            \"419084729775542661330649\",\n            \"-414234870389293282071427\",\n            \"-525262946081080156584518\",\n            \"136640685388491267545797\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-119294228731180826417958\",\n            \"8761229936388021822082\",\n            \"487012390130773891175460\",\n            \"-311845427865456314818185\",\n            \"559648900054229910709345\",\n            \"139393885514427519830624\",\n            \"107325890167816018081235\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"17089147827907561627837757\",\n            \"-94429323577754654200100992\",\n            \"-4473969571146714207261485\",\n            \"141782659389643845693155915\",\n            \"-93892358423502207196670410\",\n            \"-145554766670598055216282741\",\n            \"37597111607123600576198257\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-137314033837313163998637\",\n            \"72449797169876132616353909\",\n            \"-70161038289080296659386196\",\n            \"-43462961961878972425525973\",\n            \"42101201201192529980096415\",\n            \"-81066870591720969078480725\",\n            \"90267013220354821004402329\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"117713797316457619471160158\",\n            \"-70167250212359158255102362\",\n            \"-11552912460279859107138583\",\n            \"-29885413874861556795770843\",\n            \"4421888524449146349137592\",\n            \"104643958570092735443054627\",\n            \"50425644614078606322832703\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-30334928923978531796147629088\",\n            \"27288518731802156666631771366\",\n            \"13824378221071923474948637231\",\n            \"4644693338626225213907016302\",\n            \"11634130769035763812486389217\",\n            \"7684952376163662025235478239\",\n            \"-33239678106944925691053930083\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-11528961365515593522622576679\",\n            \"17133737086982694882922251878\",\n            \"13646045761710072112428841241\",\n            \"-11389171932161374967609239435\",\n            \"4257823513423339355354889471\",\n            \"-28413425236629841784233274651\",\n            \"39588941214204919522713866880\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1793447129255862870401371387102\",\n            \"-4521183177824322286238857131690\",\n            \"-7015296797702626396918062112070\",\n            \"-8405199754772912051218827051767\",\n            \"-5847103288844519371863856372805\",\n            \"-4986004223819988818141294208919\",\n            \"1152074979591001029103861569975\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-6349141188765631755738960028456\",\n            \"-2660433342897400293313691984408\",\n            \"8110414928660755884872240488403\",\n            \"-3255774704770639692268716192582\",\n            \"-5624565439076989481811168712985\",\n            \"8242854258628200994627074750006\",\n            \"-632483613318590601476620619686\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1906797773505486015084475661167\",\n            \"1831532006604140257182189698277\",\n            \"8658935091181123523496177509351\",\n            \"4083753014008812543656172710815\",\n            \"-703732616202838478277623562522\",\n            \"-6578720101664337167243397144316\",\n            \"-4231412865947716065230260553709\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1481793740573226627257507227084301\",\n            \"1987274798160197648897728495716203\",\n            \"-2253699799337436551660654810527205\",\n            \"-1664891149611323142615003737883555\",\n            \"-812147342830058889078154049835125\",\n            \"1133591471991032412967586858920266\",\n            \"373066807517996728955491798981682\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1308500817719514731390159580539356\",\n            \"-2472263601229082178453567330649492\",\n            \"806886383595845079530117586003857\",\n            \"1483914875922945517574389647107123\",\n            \"-2447637035834905490061551060827517\",\n            \"-2584877975554282277356767257919022\",\n            \"1137264392772462522125091324886529\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-202694815737861835748583337438619141\",\n            \"-567475487177382119320244018738653105\",\n            \"240870396569462382448904278424042886\",\n            \"565877554788860310777372508885337792\",\n            \"-16105501605830402808140696954471983\",\n            \"-608678904857721513901782286805392766\",\n            \"89500838347412802178721155164713004\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-92477909222259270232496020800286668\",\n            \"-253868659242284214237281896032894612\",\n            \"-571911363839430504720309156797127441\",\n            \"-630228046136182620305988015405040527\",\n            \"-145796823877333917115220895453473596\",\n            \"-544416500996245714271727684022145559\",\n            \"62108147716790867959393946884530570\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"30196559748662473034683824360446700718\",\n            \"-145993220223129636351442638734923612124\",\n            \"-31744581905865529412669045728747964315\",\n            \"-42689243253906548960505899054623799466\",\n            \"-3278727297709430585641819106144408715\",\n            \"-139194553088228069126405551246144950996\",\n            \"-18860658848674927408656595634636715361\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"14098620813169356460637219212014489435\",\n            \"-25133450166458778557679753986808320092\",\n            \"-10717831626644290242659474112607023736\",\n            \"61898419746062756560226489821314179510\",\n            \"19338062857571632481395798424446979882\",\n            \"-80563484496287165417026379634301213058\",\n            \"38933787489872054716116934865976579056\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-18244737545312093171930563627683906325\",\n            \"-69817450526652822027490267764416914485\",\n            \"-161214969184468418385603069469725822547\",\n            \"132041756256234747183020020523975575773\",\n            \"-57875703366203729680850430132447338202\",\n            \"133741584114580239596914015216689701177\",\n            \"-104202051211600429556397759132978847898\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-25325\",\n            \"10828\",\n            \"-13355\",\n            \"8467\",\n            \"-14673\",\n            \"13128\",\n            \"-11338\",\n            \"-7976\",\n            \"-2935\",\n            \"28799\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-25899\",\n            \"15808\",\n            \"5036\",\n            \"5817\",\n            \"21295\",\n            \"6991\",\n            \"30262\",\n            \"-29206\",\n            \"22545\",\n            \"14281\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"5139488\",\n            \"-4603800\",\n            \"-4322358\",\n            \"5568494\",\n            \"2927252\",\n            \"-2770864\",\n            \"3950127\",\n            \"-402389\",\n            \"-1551328\",\n            \"4307703\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"1273196\",\n            \"-6043029\",\n            \"-2124152\",\n            \"6239939\",\n            \"486272\",\n            \"1367187\",\n            \"-4466034\",\n            \"-7300079\",\n            \"1984393\",\n            \"3056986\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"389208900\",\n            \"185157703\",\n            \"-2134187956\",\n            \"217215497\",\n            \"-2063962325\",\n            \"284328714\",\n            \"-1798439100\",\n            \"-1345866522\",\n            \"-44759387\",\n            \"1568455956\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-1988645525\",\n            \"793006818\",\n            \"-251491455\",\n            \"247123050\",\n            \"2046505050\",\n            \"-1728516425\",\n            \"-435424560\",\n            \"-308364872\",\n            \"-1892211705\",\n            \"-126815551\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-773671966\",\n            \"1358683392\",\n            \"-1755115842\",\n            \"1643669576\",\n            \"-878872476\",\n            \"-1809618284\",\n            \"-1045892795\",\n            \"-1775853987\",\n            \"-1403818658\",\n            \"482449875\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"241099970526\",\n            \"514993919499\",\n            \"-496567360082\",\n            \"502604322768\",\n            \"-28679500586\",\n            \"519917943945\",\n            \"413447742457\",\n            \"221064262119\",\n            \"-391763012706\",\n            \"-181222719579\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"509145597895\",\n            \"47721898418\",\n            \"201713081857\",\n            \"183700101234\",\n            \"314513786407\",\n            \"-33405756748\",\n            \"-532243541621\",\n            \"-107548030858\",\n            \"126151420688\",\n            \"285956004348\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"116275668335152\",\n            \"122141214739207\",\n            \"-63430344564549\",\n            \"-111832080367574\",\n            \"112155501448142\",\n            \"19656387304429\",\n            \"96601821131959\",\n            \"57545046918456\",\n            \"107104563639101\",\n            \"-59870112678790\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"45356471648224\",\n            \"14779609611199\",\n            \"-33962279108195\",\n            \"-98944840181309\",\n            \"91625511308220\",\n            \"-110850158882954\",\n            \"87916556152463\",\n            \"80467617162481\",\n            \"93925586648150\",\n            \"-113372051519249\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"19606854898583\",\n            \"-55504890190933\",\n            \"-15147315545027\",\n            \"40456424289866\",\n            \"-6247604760181\",\n            \"-93639696496745\",\n            \"-84665878592107\",\n            \"-100053850686284\",\n            \"16367469522358\",\n            \"99753371265059\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"24282640953032762\",\n            \"10091709048435857\",\n            \"-21974172647175281\",\n            \"14073179053430222\",\n            \"34109384946231056\",\n            \"5226653906582893\",\n            \"-33819520810414763\",\n            \"-22931875185563773\",\n            \"-24002071163260726\",\n            \"-1715146803898567\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-30659716847381795\",\n            \"-15836145091878170\",\n            \"-30830890473364625\",\n            \"-25423275503125707\",\n            \"-15385992609067487\",\n            \"-27328827163588642\",\n            \"-26765399453321294\",\n            \"21083654833354492\",\n            \"-19809350790025647\",\n            \"-2472980520466774\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"946065176298096897\",\n            \"520206069634010822\",\n            \"-2372009740528541735\",\n            \"-3605114825675420401\",\n            \"-4132067089809310737\",\n            \"705141097139262042\",\n            \"-7256635106430568358\",\n            \"-8105301464259245359\",\n            \"599492648809263584\",\n            \"4365466939375502140\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"8277129333648717097\",\n            \"-8448354335880876032\",\n            \"2913319982453504823\",\n            \"8736245116433424334\",\n            \"6387017288276853607\",\n            \"-4081208528945745050\",\n            \"46515463897966715\",\n            \"-1495751169585677679\",\n            \"-6665852657838015529\",\n            \"1497421528845365759\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"867602266070578599219\",\n            \"2247746875415261031076\",\n            \"1934169958376882247885\",\n            \"-1983965311174074790761\",\n            \"994286831208120914465\",\n            \"-2053360980630830501597\",\n            \"-352322923068724990708\",\n            \"-275529843474582648430\",\n            \"117569307044473834744\",\n            \"-2057119187357998311386\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-983989144481816608421\",\n            \"-227041553316359265394\",\n            \"-2338398780830635151885\",\n            \"-1425288624511611388041\",\n            \"-1200460011151461084288\",\n            \"-37860255133068080397\",\n            \"168815163262920902402\",\n            \"-1589043880708207878151\",\n            \"1999861056072554689170\",\n            \"-1063012832871660661701\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-934629893504979755792\",\n            \"1330023560256145633360\",\n            \"471809371618383733343\",\n            \"2321922756694883212096\",\n            \"-1145621103195820184004\",\n            \"432986056770166636184\",\n            \"527912618672815906694\",\n            \"-1383597906408951487454\",\n            \"-1840681975964590350984\",\n            \"1003431919766458755951\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-295917082043583082770621\",\n            \"-231343988449013068326631\",\n            \"5312383381819468949750\",\n            \"-139157207556611762942758\",\n            \"-241655483652404463403757\",\n            \"-512476477719184343596604\",\n            \"599410803946810481042938\",\n            \"67078249271685046714164\",\n            \"409870524862445838681667\",\n            \"-198986259949659924965247\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-278030681373064235595749\",\n            \"393693012596137044946808\",\n            \"113099188405109327204683\",\n            \"415775568903274402438459\",\n            \"-42076558072135973151428\",\n            \"-219378272136268135495431\",\n            \"-582613624074409026792710\",\n            \"191194427072366781075751\",\n            \"-9835457748214809790370\",\n            \"442340177819471571537141\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-125407723627032808185149189\",\n            \"-127693057085441986254509099\",\n            \"143049524315591523657757604\",\n            \"66172074121241277336416638\",\n            \"105043654403595832965542333\",\n            \"88321001961584231003626866\",\n            \"43148804784313926260363839\",\n            \"33183564004779395803780452\",\n            \"-145197017290377600759079842\",\n            \"119167929014336096222821000\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"119039071826650750074654630\",\n            \"44751775197664106490961349\",\n            \"27864406843200354265918393\",\n            \"15658656552850314500730985\",\n            \"-8220185761405769037321341\",\n            \"-83569483397839034074232516\",\n            \"-15999238535942008358971638\",\n            \"51943353221378823545548335\",\n            \"124460320105770697840371762\",\n            \"96188240730380539592133999\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-23740546198484978874875407\",\n            \"76636632473705803978381047\",\n            \"-56311328440996031370265536\",\n            \"-17243365633279424695862822\",\n            \"-86114647089246738996946962\",\n            \"77779733094924174077783969\",\n            \"-154377399990419141152689913\",\n            \"-58108558577026614888610010\",\n            \"32011657995884029676678558\",\n            \"-85849178273273349349099772\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"38268503482208460783689168776\",\n            \"415498958203045688529744846\",\n            \"-5469243189225899466540717631\",\n            \"-27069951860473838447007129302\",\n            \"2300819963695030297957821979\",\n            \"27013864454418030545712879052\",\n            \"33795947339603501913179687623\",\n            \"-36867304093401804903210992872\",\n            \"6652565972383263112675657430\",\n            \"21252184018008067722844465790\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"20488449679781423383625400864\",\n            \"28945181199727711698700316165\",\n            \"9535784301505998719738045771\",\n            \"-20854663557065706429017034430\",\n            \"-8496482734431467304571929654\",\n            \"39529776626237782521053868212\",\n            \"20282963743253661057874523422\",\n            \"39168299995389261713687626653\",\n            \"-2895774161826797358583901454\",\n            \"27415786790395091445855072594\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"7274372610033635352026015117499\",\n            \"-9390827953122518631957223639932\",\n            \"-2203836129140192889937266167905\",\n            \"4596600214642310892345897847127\",\n            \"983389576577548413649282888500\",\n            \"1964366100910371172669585857215\",\n            \"-4168439792076922929733693975481\",\n            \"3161618514384549987863457101037\",\n            \"-7790441321891779327083714442512\",\n            \"-7686467965572840837470847326318\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"9529887427430029315427723731097\",\n            \"4336235122315854607986015683663\",\n            \"-9706927952229870397920454025649\",\n            \"4499727370692865250957373478909\",\n            \"-5923209179547863758996820315917\",\n            \"-2626628904315332468993978106025\",\n            \"685916912461697873229704570250\",\n            \"-2838726730006480465962589525945\",\n            \"2039415276453860859795422056351\",\n            \"7628942068105897131623029254615\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"126535036553237060539012806767\",\n            \"-6939129554517585745715778319177\",\n            \"-7532363115381746277033981571367\",\n            \"7225306379513685172919544982624\",\n            \"2081180225728056445004841883009\",\n            \"6331729734153410979163746567493\",\n            \"5450234392691226980537948053828\",\n            \"-3339385174687947070096507831241\",\n            \"-6555844461598841325077996060011\",\n            \"9279765521180487317778800396224\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"2228023644252832655241598402411269\",\n            \"431676701798775425411616196133933\",\n            \"478260014584588677437872352249827\",\n            \"-1507262382979849604564706747863757\",\n            \"-2288462503836870608309925185139281\",\n            \"49393515288688670462360817470707\",\n            \"-2579210515571147629042989663475866\",\n            \"589507628712335934139197077166366\",\n            \"1989953354399049606431153717140929\",\n            \"-965660095005622252483438158567899\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1816053260927088757790173812582767\",\n            \"-2405480415192625953224616207989887\",\n            \"-2328044646297041482107281923018610\",\n            \"872987268389289710890938214776251\",\n            \"643667272856490093246696929059356\",\n            \"2135937810867387131247124235309141\",\n            \"-348035586025203024239919226158367\",\n            \"1200248021086499011518529585918610\",\n            \"2026575827504135717840864217744664\",\n            \"-1601765059510950727183880983778417\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"65074355550728584791094991091725510\",\n            \"655697096560546628903998665713057646\",\n            \"-526498334932676728875521670389483820\",\n            \"-660406393116184719913940975963998661\",\n            \"198613257448920495951253934679652556\",\n            \"-43713779768026581579783258854735948\",\n            \"24173852238556377483338028432771484\",\n            \"-323536680150552559099100992362365559\",\n            \"216972493779019710120712154999597849\",\n            \"391545022377807490738436750954965632\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-128389779235154808800484297421230508\",\n            \"491001613177916842185576260455747135\",\n            \"-455096123184868191344797938977008190\",\n            \"-309905590996917800177765369517052165\",\n            \"349603248086460094879044594595289453\",\n            \"173998676594990878495537914769309496\",\n            \"580673547960002977806631871571859052\",\n            \"304595872857331938936691935503967494\",\n            \"-309341788503071907892541600073298273\",\n            \"-445388828339388242207829894494395187\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-116759118799696740987833268006312595507\",\n            \"-240339187668656185170580579099921345\",\n            \"-165524819667082744814917029626210589845\",\n            \"112546391769223555027822608825303955489\",\n            \"-48744565225770459292490161985480679384\",\n            \"-61852298378918957927732680541183991273\",\n            \"-109815699785003222394734941309206527496\",\n            \"-161541054014304007303713671841308424373\",\n            \"38232801342956757143716333070831819830\",\n            \"-82876982197717752657894986064058509459\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"166626734583125926562909642736739648863\",\n            \"-537561525487190105228039554746904245\",\n            \"56724835995658384592515263322742572769\",\n            \"154738535117659769768747849261742373987\",\n            \"133841382783265265669107205599295242333\",\n            \"-82481830171752743723415208240895428708\",\n            \"47401574357301211579457100619126454320\",\n            \"101450166334449946734731337888765885526\",\n            \"-9655734409491446777009001964705514650\",\n            \"-20474375954705981387014226963404713903\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"97166129096528442889485736329241954705\",\n            \"-20654655171391656743269829102430663484\",\n            \"-19774868324035406536117826166021377349\",\n            \"-14595360169302341242602534087132194253\",\n            \"-77171889502077963021661942682977180668\",\n            \"-67805573373674104708253116675406619851\",\n            \"107903125463174461399865488130215282736\",\n            \"13666179504242759743615908229099766154\",\n            \"-14923042555307260112864102940917241528\",\n            \"-93735255641317514829426639104109826896\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-15637\",\n            \"-21826\",\n            \"23207\",\n            \"24299\",\n            \"9996\",\n            \"18466\",\n            \"7067\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-26781\",\n            \"22205\",\n            \"-30862\",\n            \"4191\",\n            \"22380\",\n            \"-31397\",\n            \"-16113\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-5606512\",\n            \"-841159\",\n            \"-1722865\",\n            \"-7412802\",\n            \"3421093\",\n            \"1404395\",\n            \"1763678\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-4174091\",\n            \"-6797376\",\n            \"-6735178\",\n            \"3654374\",\n            \"433672\",\n            \"1994930\",\n            \"1820130\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-27695193\",\n            \"235417726\",\n            \"1925960030\",\n            \"-1068170333\",\n            \"-1618156350\",\n            \"-317495919\",\n            \"1423560212\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-613673600\",\n            \"875021835\",\n            \"1453808997\",\n            \"1717180769\",\n            \"1580762908\",\n            \"1840132086\",\n            \"-1345743252\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"582856351\",\n            \"1284574124\",\n            \"340320670\",\n            \"-1092859214\",\n            \"1110297876\",\n            \"1357226248\",\n            \"1402761903\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-3179119623\",\n            \"450280234735\",\n            \"-246304555798\",\n            \"-119827255352\",\n            \"-525274364087\",\n            \"-230257922796\",\n            \"256828899002\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"172087714641\",\n            \"446734015461\",\n            \"215626082740\",\n            \"310099426632\",\n            \"262400844124\",\n            \"-403709578552\",\n            \"-543955348408\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"79497412466729\",\n            \"-17627606697345\",\n            \"-56306219857785\",\n            \"-44419610515947\",\n            \"-10505875477448\",\n            \"-137201986324719\",\n            \"-41490578530344\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"87785849879213\",\n            \"72153641766797\",\n            \"81344597122488\",\n            \"116608220424101\",\n            \"120127927299953\",\n            \"91392864468246\",\n            \"789277742054\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"16742530979330\",\n            \"-27276173304601\",\n            \"112787046376927\",\n            \"80422014882468\",\n            \"-53996799818821\",\n            \"-51482063936845\",\n            \"-109285996873057\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-27011971722513841\",\n            \"-25715520475567957\",\n            \"-31692200074647251\",\n            \"19797016206092429\",\n            \"13033529853072966\",\n            \"-34190512535950112\",\n            \"21391090647858827\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-2689551968658208\",\n            \"-11978754119332225\",\n            \"27943059826706703\",\n            \"30925593314872225\",\n            \"-25299415665884227\",\n            \"-6588871840929638\",\n            \"-13529612932491138\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-5877424150753455644\",\n            \"-750157543599527648\",\n            \"7844548247743823168\",\n            \"1983390184771773250\",\n            \"8109668973322170403\",\n            \"4662100181419928346\",\n            \"-7990733746417221683\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-4001316145812913855\",\n            \"8636276014947384575\",\n            \"255439123904346461\",\n            \"-5910657878241983749\",\n            \"-8574194995013797995\",\n            \"6656912349600694116\",\n            \"-153848629100633274\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"251402997439201416147\",\n            \"-773260098260956584464\",\n            \"-219271115207772204546\",\n            \"-1036039623941759511644\",\n            \"359482472533162316496\",\n            \"1965913949245283018894\",\n            \"599718122444765908168\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1438319238194982234339\",\n            \"1577759903359206474839\",\n            \"188186678199824158300\",\n            \"1276273466028897015455\",\n            \"-1836059768603829828246\",\n            \"-571809172339201000757\",\n            \"-1423862618055329967277\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1054493543273151908590\",\n            \"-996798431306463901700\",\n            \"1030912998214022157210\",\n            \"1165909344715451535690\",\n            \"1678758991439476296198\",\n            \"-1261232816117225764157\",\n            \"-275535923846867412400\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-265478781031709465954466\",\n            \"-45885532800194657389599\",\n            \"47123250342923949029333\",\n            \"-28918098710716253013235\",\n            \"-216245678184360771226258\",\n            \"-67592927029058001825983\",\n            \"-216606971904693341187546\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-454834495768691198335625\",\n            \"-121587423919595203596630\",\n            \"-180702613619856867200053\",\n            \"-586233612775783081876233\",\n            \"-146313510918473805475897\",\n            \"-19249352342706744822274\",\n            \"602537232274909092052368\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-138817970110646913589715549\",\n            \"71212874681781732508199238\",\n            \"-36634575975569063090531384\",\n            \"-118838660864234798642972931\",\n            \"-63677435476346500972940088\",\n            \"-143253302639820088137695781\",\n            \"-10005431182625326908184063\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-24132845688739832600198664\",\n            \"70223772618132296366621411\",\n            \"39697053813238829872031989\",\n            \"-4463405036654040634416246\",\n            \"-114850114696918748689370315\",\n            \"24197714526405477903473970\",\n            \"-85613480517918645906993903\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-78615821810256843179885264\",\n            \"-9435616174371737446306696\",\n            \"14724235985325181617831683\",\n            \"-77554225473063349798518023\",\n            \"-151687049843944286803049399\",\n            \"152830772381840371720809534\",\n            \"41342447912435620711044487\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-7452626331051061693783872103\",\n            \"-37477886858762005988951878072\",\n            \"29024564721311845466178480817\",\n            \"27253762906471645828276940493\",\n            \"-19788635697675024252549748007\",\n            \"33227312025585737614263740454\",\n            \"-37713444931406134334378281082\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-25886791622624942457173736636\",\n            \"34370751906575221175682318842\",\n            \"-9932886803302690926326494218\",\n            \"3324237332180497322466960837\",\n            \"21125203591871926273778796597\",\n            \"-11276967068824629033564949936\",\n            \"28441370093039134290858059521\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"8912358001421025895832248632442\",\n            \"-8916798266948379553115396290654\",\n            \"-161154141964359329876263021833\",\n            \"3858086459715378537257910522289\",\n            \"8040021746182360241076098633516\",\n            \"4716833692114616471008198034491\",\n            \"3496285339125640710658712687020\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-9184049173255469554998225870729\",\n            \"-1938356198264242814346866467899\",\n            \"-4206826697895630793180053762195\",\n            \"-9497517245200463036658297067684\",\n            \"-5584086501913874255219443240156\",\n            \"8412140854426525037463120473138\",\n            \"-6042832331708829719042645761969\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-6643586848533296755722567177838\",\n            \"-1193404893030123421103724263326\",\n            \"-7351808613718633597834537706852\",\n            \"-4546872325918455995201693474980\",\n            \"5044513193984398500316947717350\",\n            \"-3564202300291159147721754279587\",\n            \"9899326223400708541507662547701\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"2538490507550203557654476537964592\",\n            \"-171852815793316039580834325499002\",\n            \"579673614387874228055248480157807\",\n            \"1547316751704920851604992499434244\",\n            \"82956532861960233155706332616871\",\n            \"2270532599099227110701079190556481\",\n            \"-1551256727215408667915785904404011\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-1697323961096836989990113960348683\",\n            \"2269492088271616903476594268476027\",\n            \"563384931675005850944800674271399\",\n            \"1829983204109953557442975861814188\",\n            \"-2099108441853345032440560303311823\",\n            \"-1159901622227230738337097223322335\",\n            \"1320399948477362419558701661162682\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-227649207549335409555288103485379868\",\n            \"541380090188013381867176032991003854\",\n            \"259040738101837697543772263422611758\",\n            \"468607824887048977270254889483333053\",\n            \"-37414275284716090078813150850969270\",\n            \"414632729703080747958410749710577970\",\n            \"-628951504936585588032719800558474149\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-585201720045860251224192209434417167\",\n            \"468582923778969233979378862262684223\",\n            \"134642897337460953327600517844593153\",\n            \"36157897287467373309609536222700125\",\n            \"42661449938741236454803304780412295\",\n            \"212096786713676119368154634300273677\",\n            \"585017229375111099843942749410082953\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-138591685930594567129919412699083355323\",\n            \"77060413350994913049260494214760663038\",\n            \"39700904836694418018645309917065762876\",\n            \"-31664403115710800671259751306315806980\",\n            \"63928998864039165846312590158916247833\",\n            \"-3586180789611960233999050211148582684\",\n            \"-42878742931457980860298222400389073217\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-102158662182543310745650009612358481115\",\n            \"-110662400233487451872440612242183030235\",\n            \"-4734079005823009383561681338545373884\",\n            \"25428205135817899705171309423993396942\",\n            \"119935163858170485692044331984703633688\",\n            \"27795979506302295159346827031425803891\",\n            \"-17630802775799110077215936154218710903\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-167820728718740728757244841820454776505\",\n            \"-95721966128938572947248972085749061555\",\n            \"140529351854457382631585268999194010048\",\n            \"-169071957026901707361219133333712549941\",\n            \"-70939221559844798247914114191797953094\",\n            \"-127614892614854677120213423457262257204\",\n            \"-102794811166159877868688547277286760364\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"21474\",\n            \"4094\",\n            \"16234\",\n            \"-10475\",\n            \"-25906\",\n            \"-12657\",\n            \"13211\",\n            \"20482\",\n            \"29407\",\n            \"-3604\"\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"9720\",\n            \"-23643\",\n            \"9540\",\n            \"-23720\",\n            \"31318\",\n            \"-25292\",\n            \"18536\",\n            \"-9162\",\n            \"58\",\n            \"-7786\"\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-7627572\",\n            \"-38899\",\n            \"2443108\",\n            \"-438758\",\n            \"-2210056\",\n            \"2273095\",\n            \"3114432\",\n            \"-124491\",\n            \"-1605021\",\n            \"8009315\"\n          ]\n        },\n        {\n          \"name\": \"f3\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"574992\",\n            \"-1257531\",\n            \"-2806474\",\n            \"-3352205\",\n            \"2915457\",\n            \"-7014958\",\n            \"-7579817\",\n            \"-2215757\",\n            \"-576189\",\n            \"-8360149\"\n          ]\n        },\n        {\n          \"name\": \"f4\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-2041265396\",\n            \"732584234\",\n            \"-1999454822\",\n            \"1704993828\",\n            \"-210935878\",\n            \"929286432\",\n            \"1109525853\",\n            \"582363395\",\n            \"-1825179353\",\n            \"1409680841\"\n          ]\n        },\n        {\n          \"name\": \"f5\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1991977558\",\n            \"1762056301\",\n            \"1455216951\",\n            \"1449185192\",\n            \"254303971\",\n            \"140252798\",\n            \"935225387\",\n            \"1899985780\",\n            \"-927824213\",\n            \"-208960670\"\n          ]\n        },\n        {\n          \"name\": \"f6\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"1480625771\",\n            \"1040969656\",\n            \"-1003085364\",\n            \"-553744456\",\n            \"1343292649\",\n            \"-325165443\",\n            \"-1346706809\",\n            \"-965803077\",\n            \"723994410\",\n            \"-20304136\"\n          ]\n        },\n        {\n          \"name\": \"f7\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-101818947634\",\n            \"-229200189261\",\n            \"-424288334493\",\n            \"227262504132\",\n            \"432555641000\",\n            \"328751277087\",\n            \"50785160524\",\n            \"387280003539\",\n            \"323702572325\",\n            \"-130440892777\"\n          ]\n        },\n        {\n          \"name\": \"f8\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"285258640838\",\n            \"-31233562378\",\n            \"413535063358\",\n            \"366447174903\",\n            \"51794529119\",\n            \"81104642011\",\n            \"-229146846972\",\n            \"-500253706209\",\n            \"26427555726\",\n            \"238540328738\"\n          ]\n        },\n        {\n          \"name\": \"f9\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"72984542244109\",\n            \"-85349566014644\",\n            \"-61750715247480\",\n            \"-107963169778383\",\n            \"-72064927212019\",\n            \"74634683457234\",\n            \"-5692709274261\",\n            \"-137801733360366\",\n            \"66863319822840\",\n            \"53790391904569\"\n          ]\n        },\n        {\n          \"name\": \"f10\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-30506162400564\",\n            \"44134792179061\",\n            \"43208822949445\",\n            \"116111507835088\",\n            \"-52652763068808\",\n            \"30227545743701\",\n            \"54132435978158\",\n            \"-84979416074353\",\n            \"-77767629770125\",\n            \"-49700250599015\"\n          ]\n        },\n        {\n          \"name\": \"f11\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-33646284874231\",\n            \"-39843156046137\",\n            \"135855350625826\",\n            \"67173686029441\",\n            \"47373973603503\",\n            \"-81315792116685\",\n            \"126362930268105\",\n            \"62326866041404\",\n            \"-79917419899133\",\n            \"116346318505097\"\n          ]\n        },\n        {\n          \"name\": \"f12\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-17623564370335172\",\n            \"13940102868728695\",\n            \"31159892605228020\",\n            \"19288139749976327\",\n            \"-32162377831099808\",\n            \"-25334882778439881\",\n            \"-9293849274157177\",\n            \"25753846620057242\",\n            \"-2715500844487831\",\n            \"17297835213572781\"\n          ]\n        },\n        {\n          \"name\": \"f13\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-24802265556783267\",\n            \"-1071851274851707\",\n            \"-20708121978765252\",\n            \"21106785059579409\",\n            \"895452156504814\",\n            \"-17439295017291261\",\n            \"-29860734942289352\",\n            \"-24366392879871907\",\n            \"-24844781251317766\",\n            \"5691042499081415\"\n          ]\n        },\n        {\n          \"name\": \"f14\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-950656153293958588\",\n            \"-7026895800290111295\",\n            \"-2906486337048393634\",\n            \"-2487298974163906537\",\n            \"-7240801780393004497\",\n            \"-5928987398455158527\",\n            \"91252511169998609\",\n            \"-4434565223927059941\",\n            \"6114237547594359253\",\n            \"-5649241382570014194\"\n          ]\n        },\n        {\n          \"name\": \"f15\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-9125944744613843645\",\n            \"2767912703851717499\",\n            \"-5594414080371870722\",\n            \"1326878363883364298\",\n            \"6250061466047884457\",\n            \"4167357360257738660\",\n            \"3185444479792598034\",\n            \"2850893211432323540\",\n            \"4099400621617587983\",\n            \"1911788567774553475\"\n          ]\n        },\n        {\n          \"name\": \"f16\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"2243798170232923011194\",\n            \"1260790852369524872646\",\n            \"1926129514370913291084\",\n            \"1923482934016917609948\",\n            \"-1337597225338052576342\",\n            \"-1396976913710878087379\",\n            \"1760383914304461201041\",\n            \"-2084424105474946896583\",\n            \"546847183858239970168\",\n            \"-950422829529740640046\"\n          ]\n        },\n        {\n          \"name\": \"f17\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"2278561335636612407116\",\n            \"2226551432527285815529\",\n            \"1102614999141365247364\",\n            \"282444931594177029536\",\n            \"1707175857213323708724\",\n            \"-1813457685182877716617\",\n            \"1969563893365610364950\",\n            \"-1294229647104229980192\",\n            \"1058028980431521243786\",\n            \"1425804620843155435443\"\n          ]\n        },\n        {\n          \"name\": \"f18\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-666605901201678736091\",\n            \"2294247840458377820087\",\n            \"-120100005268248092109\",\n            \"-2117030120296482991359\",\n            \"-936538133650490467428\",\n            \"1909556929153544496029\",\n            \"668148430777958474013\",\n            \"1300546260152428176254\",\n            \"-1307847030795641403330\",\n            \"962024918692270891085\"\n          ]\n        },\n        {\n          \"name\": \"f19\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"429007353965964812441246\",\n            \"-539416061647283176800407\",\n            \"-246119986866263363195168\",\n            \"519288706159858079097852\",\n            \"145290868494128799776491\",\n            \"435391066127563014503225\",\n            \"-212517380359649480302803\",\n            \"229639965616877780412338\",\n            \"-228549196983767607874750\",\n            \"254322220652598819404701\"\n          ]\n        },\n        {\n          \"name\": \"f20\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"302744770146464834277007\",\n            \"349890188007940826732505\",\n            \"-395767415302716050551365\",\n            \"-55506738483590549708985\",\n            \"-42546607637771046763757\",\n            \"599890205870578843548554\",\n            \"-566080596849854240867084\",\n            \"240819660280603920408014\",\n            \"490355076012318604086830\",\n            \"-444452608521493383189339\"\n          ]\n        },\n        {\n          \"name\": \"f21\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"140098423234498101984955781\",\n            \"114972555620228418385387046\",\n            \"-103855128687529946029391332\",\n            \"-56453596465478079539961341\",\n            \"112899417755966489798807822\",\n            \"92479416756872049033014234\",\n            \"-20220375538499957175667596\",\n            \"49619147776130236286406382\",\n            \"75868169169602577596893114\",\n            \"-33991855971785669167684812\"\n          ]\n        },\n        {\n          \"name\": \"f22\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-27955923849772806651093661\",\n            \"-15134268062501921536631099\",\n            \"-76180691187952624554132166\",\n            \"8417609600056713913269682\",\n            \"122210737333544046425988875\",\n            \"-8255971110072598553761320\",\n            \"72059712120402848706275333\",\n            \"136669805857501664860962453\",\n            \"117226067843670223572552823\",\n            \"9538509353520989293188292\"\n          ]\n        },\n        {\n          \"name\": \"f23\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"140326260020124618484882670\",\n            \"-7604232162274599406456263\",\n            \"-37578322955437058565218623\",\n            \"82251242821235569071412696\",\n            \"48934521009186759426554144\",\n            \"-111502425314556830584865049\",\n            \"143399285732546087389279250\",\n            \"-145031030627834093577440455\",\n            \"-56753812486185622944448939\",\n            \"-131020484598181539722605940\"\n          ]\n        },\n        {\n          \"name\": \"f24\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"7163957691918374413440392122\",\n            \"29895408949428293949825637565\",\n            \"24953244787599080815469023689\",\n            \"12933037616695046483291587011\",\n            \"12911061711671395434197711654\",\n            \"-662465023864870915737125277\",\n            \"32902737578296234199724114196\",\n            \"-13332149788556638691010135470\",\n            \"28732116950622282825950924835\",\n            \"-606082615276279539679739878\"\n          ]\n        },\n        {\n          \"name\": \"f25\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-2225441768919818543256115590\",\n            \"36300525663713292309356899587\",\n            \"22146605949936394498917396829\",\n            \"-13799763611538096768550340984\",\n            \"13697106267730772282848050012\",\n            \"37987370502999491375497665834\",\n            \"-15959212476158770181464939730\",\n            \"37740896499376085097100094638\",\n            \"-3277570747229261911544243044\",\n            \"34646859779346958641044018113\"\n          ]\n        },\n        {\n          \"name\": \"f26\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"8464727847598438214667266343191\",\n            \"3659092136516017614153405697408\",\n            \"8898836896743628102604107262318\",\n            \"-5124678781048461345216331096076\",\n            \"7048310126754458455427182472252\",\n            \"-7485149236907192851539148176189\",\n            \"4765944987612723450221212104859\",\n            \"3507852604123913333443796199231\",\n            \"-3638691289771499903484086224708\",\n            \"-1548294157076139554924261118715\"\n          ]\n        },\n        {\n          \"name\": \"f27\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"1960248254240505083559553622556\",\n            \"6334649991475602141352059045232\",\n            \"5429973568679996304865347312737\",\n            \"-5574768356761641457841827808332\",\n            \"2921634229104833962007853636995\",\n            \"6645606916555794304028632924702\",\n            \"7402711760974614198662134839264\",\n            \"-2430215409038042282074825546118\",\n            \"9189456250491239952337287624422\",\n            \"-6746525342617036236303085693943\"\n          ]\n        },\n        {\n          \"name\": \"f28\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"-2303252604266546830450692395647\",\n            \"24931561165839460953255704242\",\n            \"3539774568243302781625620724843\",\n            \"-4119755165665461319885896453094\",\n            \"9980798001735069049033995442687\",\n            \"6400453710768026204203981933498\",\n            \"-1785561568444900500617881894975\",\n            \"-1238657151175445676210732724686\",\n            \"-4115303461735084227982174922353\",\n            \"-4830151905286143893643036559970\"\n          ]\n        },\n        {\n          \"name\": \"f29\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-744732514813865310675102410677837\",\n            \"586923153993520038833541626305861\",\n            \"631405070127015389249055779739635\",\n            \"2375722591461493864257181946361349\",\n            \"536327416123747764992062327728379\",\n            \"4403250929897292075500020549198\",\n            \"-920102429093431209270145990206427\",\n            \"-1943957685901230324468842397328959\",\n            \"-1793159792601568795672835117263773\",\n            \"2539832186764726126109095059589925\"\n          ]\n        },\n        {\n          \"name\": \"f30\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"1736943855683500361344260536843977\",\n            \"-1041915987085848668127887646443139\",\n            \"-2073351044084729515377756324458994\",\n            \"-2499860712727710930829417979309376\",\n            \"-1334132038144948687896176896558215\",\n            \"2497357047334342837216894037461981\",\n            \"-2593640175489681036725320634980356\",\n            \"83143781366050188466245498529346\",\n            \"-1907502149335575039303599318337661\",\n            \"769063293620504337906197233553371\"\n          ]\n        },\n        {\n          \"name\": \"f31\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-250745229891973039581681177880223505\",\n            \"327446904412556324074846927736374445\",\n            \"-549111820347488138618064952270999012\",\n            \"-107667493114547862984588921499141796\",\n            \"-213442200532407781713670495439019398\",\n            \"-357538486078878970354893736102694429\",\n            \"556639003636036852879832060230162340\",\n            \"-263609850789709040712893190708950606\",\n            \"83507483892195138402414967192218438\",\n            \"122845115500690774528208372788074092\"\n          ]\n        },\n        {\n          \"name\": \"f32\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"155941392458135251949747004728456096\",\n            \"-351841600639304120253871824228008989\",\n            \"13489132228213437891031310407260140\",\n            \"98346439010414420839370528660894148\",\n            \"110095662267504106346877402686062417\",\n            \"272056686592458102197893958630607521\",\n            \"-568455603353918918719268251254453391\",\n            \"-641181026054843530064046004084619896\",\n            \"-153598039697896424251301260354494095\",\n            \"-238169729901866634377216907979943085\"\n          ]\n        },\n        {\n          \"name\": \"f33\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-76486506229583148953575426031378420083\",\n            \"-25268246003138515244204194206040713884\",\n            \"151680852047855885899827416129131343552\",\n            \"-65868597846063019193194432937954865449\",\n            \"-37353304147507335221409678836410716004\",\n            \"-83375093114704443137943855826794265870\",\n            \"58765750477038687599983055893883073980\",\n            \"-124247461021880357230108144628851373656\",\n            \"-97168006373071667635001937044389371121\",\n            \"147332252855265140513988431868146207163\"\n          ]\n        },\n        {\n          \"name\": \"f34\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-93004622235567469002573559852323599733\",\n            \"-136486146006693484453265708648174772555\",\n            \"50333349154635707168287760155624850500\",\n            \"56065748751155225550881020072304819143\",\n            \"-89047403980608497862076968023015862559\",\n            \"-138188932216419239057464674728657893212\",\n            \"73805817848460887264703472962238324754\",\n            \"-146887621381330685164768807944413153241\",\n            \"-58194523976849290302949585080581301830\",\n            \"-147081260537816177520155637200701099095\"\n          ]\n        },\n        {\n          \"name\": \"f35\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"-40110048976612650804598426597711067016\",\n            \"124144731433352682852630636540845469156\",\n            \"145245442856314145141703280651554450780\",\n            \"-144190927886671777348422824785547904228\",\n            \"51752695865288273345113477117624659857\",\n            \"147665067149574600679327527424233686202\",\n            \"51752916559949464310444304180016487848\",\n            \"65187705658195518441807850839061980569\",\n            \"-132615731354653260112463459795520015874\",\n            \"-16458882186479214359093418885286436364\"\n          ]\n        }\n      ]\n    }\n  ]\n}"
  },
  {
    "path": "test/arrowjson/dictionary.json",
    "content": "{\n  \"schema\": {\n    \"fields\": [\n      {\n        \"name\": \"dict0\",\n        \"type\": {\n          \"name\": \"utf8\"\n        },\n        \"nullable\": true,\n        \"children\": [],\n        \"dictionary\": {\n          \"id\": 0,\n          \"indexType\": {\n            \"name\": \"int\",\n            \"isSigned\": true,\n            \"bitWidth\": 8\n          },\n          \"isOrdered\": false\n        }\n      },\n      {\n        \"name\": \"dict1\",\n        \"type\": {\n          \"name\": \"utf8\"\n        },\n        \"nullable\": true,\n        \"children\": [],\n        \"dictionary\": {\n          \"id\": 1,\n          \"indexType\": {\n            \"name\": \"int\",\n            \"isSigned\": true,\n            \"bitWidth\": 32\n          },\n          \"isOrdered\": false\n        }\n      },\n      {\n        \"name\": \"dict2\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 64\n        },\n        \"nullable\": true,\n        \"children\": [],\n        \"dictionary\": {\n          \"id\": 2,\n          \"indexType\": {\n            \"name\": \"int\",\n            \"isSigned\": true,\n            \"bitWidth\": 16\n          },\n          \"isOrdered\": false\n        }\n      }\n    ]\n  },\n  \"dictionaries\": [\n    {\n      \"id\": 0,\n      \"data\": {\n        \"count\": 10,\n        \"columns\": [\n          {\n            \"name\": \"DICT0\",\n            \"count\": 10,\n            \"VALIDITY\": [\n              0,\n              0,\n              1,\n              0,\n              1,\n              1,\n              1,\n              1,\n              0,\n              0\n            ],\n            \"OFFSET\": [\n              0,\n              0,\n              0,\n              7,\n              7,\n              20,\n              27,\n              36,\n              45,\n              45,\n              45\n            ],\n            \"DATA\": [\n              \"\",\n              \"\",\n              \"kfii3eo\",\n              \"\",\n              \"\\u00f4eh5\\u77e2\\u20ac\\u00a3\",\n              \"wa3fdmj\",\n              \"3\\u00b5i\\u00a3146\",\n              \"eo\\u00f4rp3\\u00b5\",\n              \"\",\n              \"\"\n            ]\n          }\n        ]\n      }\n    },\n    {\n      \"id\": 1,\n      \"data\": {\n        \"count\": 5,\n        \"columns\": [\n          {\n            \"name\": \"DICT1\",\n            \"count\": 5,\n            \"VALIDITY\": [\n              1,\n              0,\n              1,\n              0,\n              0\n            ],\n            \"OFFSET\": [\n              0,\n              11,\n              11,\n              20,\n              20,\n              20\n            ],\n            \"DATA\": [\n              \"n6\\u20ac\\u00b54g\\u00b0\",\n              \"\",\n              \"o3\\u77e2kbr2\",\n              \"\",\n              \"\"\n            ]\n          }\n        ]\n      }\n    },\n    {\n      \"id\": 2,\n      \"data\": {\n        \"count\": 50,\n        \"columns\": [\n          {\n            \"name\": \"DICT2\",\n            \"count\": 50,\n            \"VALIDITY\": [\n              1,\n              1,\n              0,\n              0,\n              0,\n              1,\n              1,\n              1,\n              0,\n              1,\n              0,\n              1,\n              1,\n              1,\n              1,\n              1,\n              1,\n              0,\n              1,\n              1,\n              0,\n              1,\n              1,\n              0,\n              1,\n              1,\n              0,\n              0,\n              1,\n              1,\n              0,\n              1,\n              1,\n              1,\n              1,\n              1,\n              0,\n              0,\n              1,\n              0,\n              0,\n              1,\n              1,\n              1,\n              0,\n              0,\n              1,\n              0,\n              1,\n              1\n            ],\n            \"DATA\": [\n              \"-2147483648\",\n              \"2147483647\",\n              \"2063303031\",\n              \"575556936\",\n              \"994232893\",\n              \"-733018692\",\n              \"-1869839205\",\n              \"818048194\",\n              \"-780203826\",\n              \"1956041779\",\n              \"1352257839\",\n              \"-411979330\",\n              \"-1676682633\",\n              \"-284358770\",\n              \"-1409435091\",\n              \"722395458\",\n              \"2117191004\",\n              \"-1448425086\",\n              \"-1128563576\",\n              \"-1190200669\",\n              \"1780667813\",\n              \"-987872595\",\n              \"-160215270\",\n              \"-2042614145\",\n              \"-801319359\",\n              \"940981753\",\n              \"-1432601950\",\n              \"-546534432\",\n              \"970337383\",\n              \"319587202\",\n              \"494356019\",\n              \"1832436202\",\n              \"-932834552\",\n              \"1463915583\",\n              \"1779474803\",\n              \"253308913\",\n              \"1534215558\",\n              \"1946313834\",\n              \"87626535\",\n              \"-2043979004\",\n              \"1625504442\",\n              \"-1819229860\",\n              \"-176171291\",\n              \"135039336\",\n              \"-836907545\",\n              \"792617942\",\n              \"602157568\",\n              \"81724808\",\n              \"103096742\",\n              \"282026629\"\n            ]\n          }\n        ]\n      }\n    }\n  ],\n  \"batches\": [\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"dict0\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            5,\n            9,\n            1,\n            8,\n            0,\n            8,\n            5\n          ]\n        },\n        {\n          \"name\": \"dict1\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            4,\n            2,\n            2,\n            3,\n            0,\n            0,\n            3\n          ]\n        },\n        {\n          \"name\": \"dict2\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            8,\n            44,\n            46,\n            42,\n            11,\n            26,\n            15\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"dict0\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            6,\n            8,\n            2,\n            3,\n            8,\n            4,\n            9,\n            2,\n            4,\n            8\n          ]\n        },\n        {\n          \"name\": \"dict1\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            4,\n            2,\n            3,\n            3,\n            4,\n            1,\n            3,\n            0,\n            2,\n            4\n          ]\n        },\n        {\n          \"name\": \"dict2\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            1,\n            38,\n            40,\n            32,\n            19,\n            46,\n            30,\n            25,\n            32,\n            28\n          ]\n        }\n      ]\n    }\n  ]\n}"
  },
  {
    "path": "test/arrowjson/dictionary_unsigned.json",
    "content": "{\n  \"schema\": {\n    \"fields\": [\n      {\n        \"name\": \"f0\",\n        \"type\": {\n          \"name\": \"utf8\"\n        },\n        \"nullable\": true,\n        \"children\": [],\n        \"dictionary\": {\n          \"id\": 0,\n          \"indexType\": {\n            \"name\": \"int\",\n            \"isSigned\": false,\n            \"bitWidth\": 8\n          },\n          \"isOrdered\": false\n        }\n      },\n      {\n        \"name\": \"f1\",\n        \"type\": {\n          \"name\": \"utf8\"\n        },\n        \"nullable\": true,\n        \"children\": [],\n        \"dictionary\": {\n          \"id\": 1,\n          \"indexType\": {\n            \"name\": \"int\",\n            \"isSigned\": false,\n            \"bitWidth\": 16\n          },\n          \"isOrdered\": false\n        }\n      },\n      {\n        \"name\": \"f2\",\n        \"type\": {\n          \"name\": \"utf8\"\n        },\n        \"nullable\": true,\n        \"children\": [],\n        \"dictionary\": {\n          \"id\": 2,\n          \"indexType\": {\n            \"name\": \"int\",\n            \"isSigned\": false,\n            \"bitWidth\": 32\n          },\n          \"isOrdered\": false\n        }\n      }\n    ]\n  },\n  \"dictionaries\": [\n    {\n      \"id\": 0,\n      \"data\": {\n        \"count\": 5,\n        \"columns\": [\n          {\n            \"name\": \"DICT0\",\n            \"count\": 5,\n            \"VALIDITY\": [\n              1,\n              1,\n              1,\n              1,\n              1\n            ],\n            \"OFFSET\": [\n              0,\n              7,\n              17,\n              26,\n              37,\n              45\n            ],\n            \"DATA\": [\n              \"nai4kkd\",\n              \"1\\u00a3n\\u00a3\\u00a336\",\n              \"2f\\u77e2wei4\",\n              \"f\\u00c2g\\u00b5\\u00b5m\\u00f4\",\n              \"\\u00b5r2bkd1\"\n            ]\n          }\n        ]\n      }\n    },\n    {\n      \"id\": 1,\n      \"data\": {\n        \"count\": 5,\n        \"columns\": [\n          {\n            \"name\": \"DICT1\",\n            \"count\": 5,\n            \"VALIDITY\": [\n              1,\n              0,\n              0,\n              1,\n              1\n            ],\n            \"OFFSET\": [\n              0,\n              7,\n              7,\n              7,\n              15,\n              23\n            ],\n            \"DATA\": [\n              \"bor21pg\",\n              \"\",\n              \"\",\n              \"erohj\\u00c2d\",\n              \"5\\u00b0jogf2\"\n            ]\n          }\n        ]\n      }\n    },\n    {\n      \"id\": 2,\n      \"data\": {\n        \"count\": 5,\n        \"columns\": [\n          {\n            \"name\": \"DICT2\",\n            \"count\": 5,\n            \"VALIDITY\": [\n              0,\n              1,\n              1,\n              1,\n              1\n            ],\n            \"OFFSET\": [\n              0,\n              0,\n              10,\n              18,\n              29,\n              39\n            ],\n            \"DATA\": [\n              \"\",\n              \"\\u77e2\\u00a3efhcg\",\n              \"lii\\u00b5wwm\",\n              \"1\\u20ace2\\u77e24c\",\n              \"bio\\u20ac\\u00b04l\"\n            ]\n          }\n        ]\n      }\n    }\n  ],\n  \"batches\": [\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            3,\n            1,\n            1,\n            0,\n            4,\n            1,\n            0\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            1,\n            2,\n            0,\n            2,\n            1,\n            0,\n            0\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            0,\n            3,\n            4,\n            3,\n            2,\n            0,\n            1\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"f0\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            4,\n            3,\n            2,\n            2,\n            0,\n            2,\n            4,\n            2,\n            2,\n            0\n          ]\n        },\n        {\n          \"name\": \"f1\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            1,\n            0,\n            4,\n            4,\n            4,\n            2,\n            4,\n            2,\n            2,\n            4\n          ]\n        },\n        {\n          \"name\": \"f2\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            1,\n            1,\n            4,\n            0,\n            1,\n            1,\n            1,\n            4,\n            3,\n            2\n          ]\n        }\n      ]\n    }\n  ]\n}"
  },
  {
    "path": "test/arrowjson/map.json",
    "content": "{\n  \"schema\": {\n    \"fields\": [\n      {\n        \"name\": \"map_nullable\",\n        \"type\": {\n          \"name\": \"map\",\n          \"keysSorted\": false\n        },\n        \"nullable\": true,\n        \"children\": [\n          {\n            \"name\": \"entries\",\n            \"type\": {\n              \"name\": \"struct\"\n            },\n            \"nullable\": false,\n            \"children\": [\n              {\n                \"name\": \"key\",\n                \"type\": {\n                  \"name\": \"utf8\"\n                },\n                \"nullable\": false,\n                \"children\": []\n              },\n              {\n                \"name\": \"value\",\n                \"type\": {\n                  \"name\": \"int\",\n                  \"isSigned\": true,\n                  \"bitWidth\": 32\n                },\n                \"nullable\": true,\n                \"children\": []\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  },\n  \"batches\": [\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"map_nullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"OFFSET\": [\n            0,\n            3,\n            3,\n            3,\n            3,\n            5,\n            6,\n            9\n          ],\n          \"children\": [\n            {\n              \"name\": \"entries\",\n              \"count\": 9,\n              \"VALIDITY\": [\n                1,\n                1,\n                1,\n                1,\n                1,\n                1,\n                1,\n                1,\n                1\n              ],\n              \"children\": [\n                {\n                  \"name\": \"key\",\n                  \"count\": 9,\n                  \"VALIDITY\": [\n                    1,\n                    1,\n                    1,\n                    1,\n                    1,\n                    1,\n                    1,\n                    1,\n                    1\n                  ],\n                  \"OFFSET\": [\n                    0,\n                    7,\n                    18,\n                    26,\n                    35,\n                    42,\n                    50,\n                    59,\n                    67,\n                    77\n                  ],\n                  \"DATA\": [\n                    \"nk23ghl\",\n                    \"hr\\u00b0rr\\u77e2\\u00b0\",\n                    \"b\\u00b5reapd\",\n                    \"\\u00a3\\u00a3fprlo\",\n                    \"42lfc64\",\n                    \"ifcmf\\u00b54\",\n                    \"mo\\u00b51\\u00b5gr\",\n                    \"alfkm\\u00c2m\",\n                    \"r\\u20acj333\\u00f4\"\n                  ]\n                },\n                {\n                  \"name\": \"value\",\n                  \"count\": 9,\n                  \"VALIDITY\": [\n                    1,\n                    0,\n                    1,\n                    0,\n                    1,\n                    1,\n                    1,\n                    0,\n                    1\n                  ],\n                  \"DATA\": [\n                    -2147483648,\n                    2147483647,\n                    -364117737,\n                    -1036293739,\n                    595547911,\n                    -136984751,\n                    1113642047,\n                    -174490757,\n                    247058944\n                  ]\n                }\n              ]\n            }\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"map_nullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"OFFSET\": [\n            0,\n            0,\n            3,\n            5,\n            5,\n            5,\n            9,\n            9,\n            9,\n            12,\n            12\n          ],\n          \"children\": [\n            {\n              \"name\": \"entries\",\n              \"count\": 12,\n              \"VALIDITY\": [\n                1,\n                1,\n                1,\n                1,\n                1,\n                1,\n                1,\n                1,\n                1,\n                1,\n                1,\n                1\n              ],\n              \"children\": [\n                {\n                  \"name\": \"key\",\n                  \"count\": 12,\n                  \"VALIDITY\": [\n                    1,\n                    1,\n                    1,\n                    1,\n                    1,\n                    1,\n                    1,\n                    1,\n                    1,\n                    1,\n                    1,\n                    1\n                  ],\n                  \"OFFSET\": [\n                    0,\n                    7,\n                    15,\n                    23,\n                    31,\n                    41,\n                    48,\n                    57,\n                    67,\n                    76,\n                    88,\n                    95,\n                    106\n                  ],\n                  \"DATA\": [\n                    \"nii3ppw\",\n                    \"am3a\\u00c2f4\",\n                    \"pc\\u00a3heh3\",\n                    \"d\\u00c2a6n5b\",\n                    \"\\u00f4mf2\\u20acc4\",\n                    \"r1jdf4r\",\n                    \"njo4\\u00b0\\u00b0k\",\n                    \"or\\u20acm\\u00f4lr\",\n                    \"em\\u00f4i\\u00f4ab\",\n                    \"\\u00a3\\u20acg\\u00c2\\u00b53a\",\n                    \"nfrim36\",\n                    \"\\u00b0\\u00c2b\\u00f4a\\u00b5w\"\n                  ]\n                },\n                {\n                  \"name\": \"value\",\n                  \"count\": 12,\n                  \"VALIDITY\": [\n                    1,\n                    0,\n                    1,\n                    1,\n                    1,\n                    0,\n                    1,\n                    1,\n                    1,\n                    1,\n                    1,\n                    0\n                  ],\n                  \"DATA\": [\n                    -2147483648,\n                    2147483647,\n                    -296180340,\n                    -44923686,\n                    2123774743,\n                    1831761340,\n                    1290652534,\n                    68203103,\n                    1896803149,\n                    -1837559303,\n                    -517631115,\n                    289945925\n                  ]\n                }\n              ]\n            }\n          ]\n        }\n      ]\n    }\n  ]\n}"
  },
  {
    "path": "test/arrowjson/nested.json",
    "content": "{\n  \"schema\": {\n    \"fields\": [\n      {\n        \"name\": \"list_nullable\",\n        \"type\": {\n          \"name\": \"list\"\n        },\n        \"nullable\": true,\n        \"children\": [\n          {\n            \"name\": \"item\",\n            \"type\": {\n              \"name\": \"int\",\n              \"isSigned\": true,\n              \"bitWidth\": 32\n            },\n            \"nullable\": true,\n            \"children\": []\n          }\n        ]\n      },\n      {\n        \"name\": \"fixedsizelist_nullable\",\n        \"type\": {\n          \"name\": \"fixedsizelist\",\n          \"listSize\": 4\n        },\n        \"nullable\": true,\n        \"children\": [\n          {\n            \"name\": \"item\",\n            \"type\": {\n              \"name\": \"int\",\n              \"isSigned\": true,\n              \"bitWidth\": 32\n            },\n            \"nullable\": true,\n            \"children\": []\n          }\n        ]\n      },\n      {\n        \"name\": \"struct_nullable\",\n        \"type\": {\n          \"name\": \"struct\"\n        },\n        \"nullable\": true,\n        \"children\": [\n          {\n            \"name\": \"f1\",\n            \"type\": {\n              \"name\": \"int\",\n              \"isSigned\": true,\n              \"bitWidth\": 32\n            },\n            \"nullable\": true,\n            \"children\": []\n          },\n          {\n            \"name\": \"f2\",\n            \"type\": {\n              \"name\": \"utf8\"\n            },\n            \"nullable\": true,\n            \"children\": []\n          }\n        ]\n      }\n    ]\n  },\n  \"batches\": [\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"list_nullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1\n          ],\n          \"OFFSET\": [\n            0,\n            0,\n            4,\n            4,\n            4,\n            4,\n            4,\n            7\n          ],\n          \"children\": [\n            {\n              \"name\": \"item\",\n              \"count\": 7,\n              \"VALIDITY\": [\n                1,\n                0,\n                0,\n                0,\n                1,\n                1,\n                1\n              ],\n              \"DATA\": [\n                -2147483648,\n                2147483647,\n                1151956889,\n                -381487027,\n                873948027,\n                1643402405,\n                1658614443\n              ]\n            }\n          ]\n        },\n        {\n          \"name\": \"fixedsizelist_nullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"children\": [\n            {\n              \"name\": \"item\",\n              \"count\": 28,\n              \"VALIDITY\": [\n                0,\n                0,\n                0,\n                1,\n                0,\n                0,\n                1,\n                0,\n                1,\n                1,\n                0,\n                1,\n                1,\n                0,\n                0,\n                1,\n                0,\n                0,\n                1,\n                0,\n                1,\n                1,\n                0,\n                1,\n                1,\n                0,\n                0,\n                1\n              ],\n              \"DATA\": [\n                -2147483648,\n                2147483647,\n                1455417103,\n                -386721267,\n                1200555928,\n                416671823,\n                -426485775,\n                1024100580,\n                1264993422,\n                -1001974859,\n                1688456056,\n                1130147884,\n                -1020099019,\n                1848995454,\n                2101085138,\n                1609275375,\n                1517442455,\n                -1648565699,\n                994186796,\n                2006991970,\n                -620340903,\n                -846162493,\n                1646215825,\n                468219400,\n                1580372269,\n                -1426972627,\n                1957501966,\n                1539427720\n              ]\n            }\n          ]\n        },\n        {\n          \"name\": \"struct_nullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"children\": [\n            {\n              \"name\": \"f1\",\n              \"count\": 7,\n              \"VALIDITY\": [\n                1,\n                1,\n                1,\n                1,\n                0,\n                0,\n                0\n              ],\n              \"DATA\": [\n                -2147483648,\n                2147483647,\n                531016632,\n                1805412611,\n                -1194513600,\n                -1267423429,\n                1000139479\n              ]\n            },\n            {\n              \"name\": \"f2\",\n              \"count\": 7,\n              \"VALIDITY\": [\n                1,\n                0,\n                0,\n                0,\n                1,\n                0,\n                0\n              ],\n              \"OFFSET\": [\n                0,\n                9,\n                9,\n                9,\n                9,\n                21,\n                21,\n                21\n              ],\n              \"DATA\": [\n                \"dej\\u00c2\\u00a3pr\",\n                \"\",\n                \"\",\n                \"\",\n                \"i\\u77e2j\\u00a3\\u00b0\\u00b5m\",\n                \"\",\n                \"\"\n              ]\n            }\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"list_nullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"OFFSET\": [\n            0,\n            2,\n            5,\n            9,\n            9,\n            9,\n            9,\n            11,\n            13,\n            13,\n            13\n          ],\n          \"children\": [\n            {\n              \"name\": \"item\",\n              \"count\": 13,\n              \"VALIDITY\": [\n                0,\n                1,\n                1,\n                1,\n                0,\n                1,\n                1,\n                1,\n                0,\n                0,\n                1,\n                0,\n                1\n              ],\n              \"DATA\": [\n                -2147483648,\n                2147483647,\n                248935155,\n                -322392706,\n                -115480117,\n                -1828031254,\n                -1766278277,\n                444059471,\n                -805219796,\n                1061714770,\n                423821865,\n                1278080160,\n                -1936049755\n              ]\n            }\n          ]\n        },\n        {\n          \"name\": \"fixedsizelist_nullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"children\": [\n            {\n              \"name\": \"item\",\n              \"count\": 40,\n              \"VALIDITY\": [\n                0,\n                1,\n                1,\n                0,\n                0,\n                1,\n                1,\n                0,\n                0,\n                1,\n                1,\n                0,\n                0,\n                1,\n                0,\n                0,\n                1,\n                0,\n                1,\n                0,\n                1,\n                1,\n                0,\n                0,\n                1,\n                0,\n                1,\n                0,\n                0,\n                1,\n                1,\n                1,\n                0,\n                1,\n                0,\n                0,\n                0,\n                0,\n                0,\n                0\n              ],\n              \"DATA\": [\n                -2147483648,\n                2147483647,\n                -376399341,\n                -1632957441,\n                -2143340689,\n                -159866261,\n                419032293,\n                1196087612,\n                784095846,\n                -435963426,\n                -574319754,\n                534646696,\n                -444534026,\n                1281811213,\n                -105831675,\n                -23408446,\n                348235550,\n                -1986936151,\n                -1558484167,\n                941484009,\n                2144967535,\n                830399805,\n                31470129,\n                -792586642,\n                -29778291,\n                1445584989,\n                -1344862682,\n                -1973973713,\n                -875795314,\n                556638175,\n                1282112437,\n                -2054079892,\n                -881420523,\n                1038384760,\n                846630800,\n                -442527632,\n                -975132694,\n                84102477,\n                1771796204,\n                -153752454\n              ]\n            }\n          ]\n        },\n        {\n          \"name\": \"struct_nullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"children\": [\n            {\n              \"name\": \"f1\",\n              \"count\": 10,\n              \"VALIDITY\": [\n                0,\n                0,\n                1,\n                1,\n                1,\n                1,\n                0,\n                1,\n                1,\n                1\n              ],\n              \"DATA\": [\n                -2147483648,\n                2147483647,\n                -1568585736,\n                1732529716,\n                1236302061,\n                -232126550,\n                -1554873925,\n                191321500,\n                570901234,\n                -2063634007\n              ]\n            },\n            {\n              \"name\": \"f2\",\n              \"count\": 10,\n              \"VALIDITY\": [\n                0,\n                0,\n                0,\n                1,\n                1,\n                1,\n                1,\n                0,\n                0,\n                1\n              ],\n              \"OFFSET\": [\n                0,\n                0,\n                0,\n                0,\n                9,\n                20,\n                28,\n                36,\n                36,\n                36,\n                46\n              ],\n              \"DATA\": [\n                \"\",\n                \"\",\n                \"\",\n                \"h3\\u00f46c\\u00b0i\",\n                \"opa\\u20acdf\\u20ac\",\n                \"ncdcpe\\u00f4\",\n                \"4fwflo\\u00b0\",\n                \"\",\n                \"\",\n                \"pf41\\u00c2\\u77e24\"\n              ]\n            }\n          ]\n        }\n      ]\n    }\n  ]\n}"
  },
  {
    "path": "test/arrowjson/primitive-empty.json",
    "content": "{\n  \"schema\": {\n    \"fields\": [\n      {\n        \"name\": \"bool_nullable\",\n        \"type\": {\n          \"name\": \"bool\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"bool_nonnullable\",\n        \"type\": {\n          \"name\": \"bool\"\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"int8_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 8\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"int8_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 8\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"int16_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 16\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"int16_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 16\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"int32_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 32\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"int32_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 32\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"int64_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 64\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"int64_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 64\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint8_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 8\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint8_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 8\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint16_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 16\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint16_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 16\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint32_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 32\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint32_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 32\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint64_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 64\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint64_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 64\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"float32_nullable\",\n        \"type\": {\n          \"name\": \"floatingpoint\",\n          \"precision\": \"SINGLE\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"float32_nonnullable\",\n        \"type\": {\n          \"name\": \"floatingpoint\",\n          \"precision\": \"SINGLE\"\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"float64_nullable\",\n        \"type\": {\n          \"name\": \"floatingpoint\",\n          \"precision\": \"DOUBLE\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"float64_nonnullable\",\n        \"type\": {\n          \"name\": \"floatingpoint\",\n          \"precision\": \"DOUBLE\"\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"binary_nullable\",\n        \"type\": {\n          \"name\": \"binary\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"binary_nonnullable\",\n        \"type\": {\n          \"name\": \"binary\"\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"utf8_nullable\",\n        \"type\": {\n          \"name\": \"utf8\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"utf8_nonnullable\",\n        \"type\": {\n          \"name\": \"utf8\"\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"fixedsizebinary_19_nullable\",\n        \"type\": {\n          \"name\": \"fixedsizebinary\",\n          \"byteWidth\": 19\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"fixedsizebinary_19_nonnullable\",\n        \"type\": {\n          \"name\": \"fixedsizebinary\",\n          \"byteWidth\": 19\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"fixedsizebinary_120_nullable\",\n        \"type\": {\n          \"name\": \"fixedsizebinary\",\n          \"byteWidth\": 120\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"fixedsizebinary_120_nonnullable\",\n        \"type\": {\n          \"name\": \"fixedsizebinary\",\n          \"byteWidth\": 120\n        },\n        \"nullable\": false,\n        \"children\": []\n      }\n    ]\n  },\n  \"batches\": [\n    {\n      \"count\": 0,\n      \"columns\": [\n        {\n          \"name\": \"bool_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"bool_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int8_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int8_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int16_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int16_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int32_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int32_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int64_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int64_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint8_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint8_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint16_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint16_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint32_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint32_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint64_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint64_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"float32_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"float32_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"float64_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"float64_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"binary_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"OFFSET\": [\n            0\n          ],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"binary_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"OFFSET\": [\n            0\n          ],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"utf8_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"OFFSET\": [\n            0\n          ],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"utf8_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"OFFSET\": [\n            0\n          ],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"fixedsizebinary_19_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"fixedsizebinary_19_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"fixedsizebinary_120_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"fixedsizebinary_120_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        }\n      ]\n    },\n    {\n      \"count\": 0,\n      \"columns\": [\n        {\n          \"name\": \"bool_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"bool_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int8_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int8_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int16_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int16_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int32_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int32_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int64_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int64_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint8_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint8_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint16_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint16_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint32_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint32_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint64_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint64_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"float32_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"float32_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"float64_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"float64_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"binary_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"OFFSET\": [\n            0\n          ],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"binary_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"OFFSET\": [\n            0\n          ],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"utf8_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"OFFSET\": [\n            0\n          ],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"utf8_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"OFFSET\": [\n            0\n          ],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"fixedsizebinary_19_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"fixedsizebinary_19_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"fixedsizebinary_120_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"fixedsizebinary_120_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        }\n      ]\n    },\n    {\n      \"count\": 0,\n      \"columns\": [\n        {\n          \"name\": \"bool_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"bool_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int8_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int8_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int16_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int16_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int32_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int32_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int64_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"int64_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint8_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint8_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint16_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint16_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint32_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint32_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint64_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"uint64_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"float32_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"float32_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"float64_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"float64_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"binary_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"OFFSET\": [\n            0\n          ],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"binary_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"OFFSET\": [\n            0\n          ],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"utf8_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"OFFSET\": [\n            0\n          ],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"utf8_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"OFFSET\": [\n            0\n          ],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"fixedsizebinary_19_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"fixedsizebinary_19_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"fixedsizebinary_120_nullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        },\n        {\n          \"name\": \"fixedsizebinary_120_nonnullable\",\n          \"count\": 0,\n          \"VALIDITY\": [],\n          \"DATA\": []\n        }\n      ]\n    }\n  ]\n}"
  },
  {
    "path": "test/arrowjson/primitive.json",
    "content": "{\n  \"schema\": {\n    \"fields\": [\n      {\n        \"name\": \"bool_nullable\",\n        \"type\": {\n          \"name\": \"bool\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"bool_nonnullable\",\n        \"type\": {\n          \"name\": \"bool\"\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"int8_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 8\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"int8_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 8\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"int16_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 16\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"int16_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 16\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"int32_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 32\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"int32_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 32\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"int64_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 64\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"int64_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 64\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint8_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 8\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint8_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 8\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint16_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 16\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint16_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 16\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint32_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 32\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint32_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 32\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint64_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 64\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint64_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 64\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"float32_nullable\",\n        \"type\": {\n          \"name\": \"floatingpoint\",\n          \"precision\": \"SINGLE\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"float32_nonnullable\",\n        \"type\": {\n          \"name\": \"floatingpoint\",\n          \"precision\": \"SINGLE\"\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"float64_nullable\",\n        \"type\": {\n          \"name\": \"floatingpoint\",\n          \"precision\": \"DOUBLE\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"float64_nonnullable\",\n        \"type\": {\n          \"name\": \"floatingpoint\",\n          \"precision\": \"DOUBLE\"\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"binary_nullable\",\n        \"type\": {\n          \"name\": \"binary\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"binary_nonnullable\",\n        \"type\": {\n          \"name\": \"binary\"\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"utf8_nullable\",\n        \"type\": {\n          \"name\": \"utf8\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"utf8_nonnullable\",\n        \"type\": {\n          \"name\": \"utf8\"\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"fixedsizebinary_19_nullable\",\n        \"type\": {\n          \"name\": \"fixedsizebinary\",\n          \"byteWidth\": 19\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"fixedsizebinary_19_nonnullable\",\n        \"type\": {\n          \"name\": \"fixedsizebinary\",\n          \"byteWidth\": 19\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"fixedsizebinary_120_nullable\",\n        \"type\": {\n          \"name\": \"fixedsizebinary\",\n          \"byteWidth\": 120\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"fixedsizebinary_120_nonnullable\",\n        \"type\": {\n          \"name\": \"fixedsizebinary\",\n          \"byteWidth\": 120\n        },\n        \"nullable\": false,\n        \"children\": []\n      }\n    ]\n  },\n  \"batches\": [\n    {\n      \"count\": 7,\n      \"columns\": [\n        {\n          \"name\": \"bool_nullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            true,\n            false,\n            true,\n            true,\n            true,\n            true,\n            true\n          ]\n        },\n        {\n          \"name\": \"bool_nonnullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            true,\n            true,\n            false,\n            false,\n            true,\n            true,\n            true\n          ]\n        },\n        {\n          \"name\": \"int8_nullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            -128,\n            127,\n            -122,\n            28,\n            -83,\n            84,\n            6\n          ]\n        },\n        {\n          \"name\": \"int8_nonnullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            -128,\n            127,\n            70,\n            -103,\n            82,\n            -1,\n            32\n          ]\n        },\n        {\n          \"name\": \"int16_nullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            -32768,\n            32767,\n            -28794,\n            -4798,\n            -9144,\n            -6471,\n            -28809\n          ]\n        },\n        {\n          \"name\": \"int16_nonnullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            -32768,\n            32767,\n            -29297,\n            -8851,\n            -7684,\n            22714,\n            16282\n          ]\n        },\n        {\n          \"name\": \"int32_nullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            -2147483648,\n            2147483647,\n            -279511779,\n            789939398,\n            1566952883,\n            459144944,\n            112645645\n          ]\n        },\n        {\n          \"name\": \"int32_nonnullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            -2147483648,\n            2147483647,\n            1460305573,\n            -781342537,\n            -894485209,\n            -611261236,\n            -1733393626\n          ]\n        },\n        {\n          \"name\": \"int64_nullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-2147483648\",\n            \"2147483647\",\n            \"-1338619198\",\n            \"1195898730\",\n            \"-196833435\",\n            \"65722453\",\n            \"227331787\"\n          ]\n        },\n        {\n          \"name\": \"int64_nonnullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-2147483648\",\n            \"2147483647\",\n            \"134673412\",\n            \"-1352599527\",\n            \"799755210\",\n            \"-1393335016\",\n            \"-1401944839\"\n          ]\n        },\n        {\n          \"name\": \"uint8_nullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            0,\n            255,\n            120,\n            36,\n            174,\n            74,\n            109\n          ]\n        },\n        {\n          \"name\": \"uint8_nonnullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            0,\n            255,\n            0,\n            157,\n            120,\n            198,\n            153\n          ]\n        },\n        {\n          \"name\": \"uint16_nullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            0,\n            65535,\n            58782,\n            40076,\n            39160,\n            7864,\n            28844\n          ]\n        },\n        {\n          \"name\": \"uint16_nonnullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            0,\n            65535,\n            19124,\n            52442,\n            22182,\n            56048,\n            17204\n          ]\n        },\n        {\n          \"name\": \"uint32_nullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1\n          ],\n          \"DATA\": [\n            0,\n            2147483647,\n            919579300,\n            484217231,\n            723422877,\n            219335907,\n            1153201262\n          ]\n        },\n        {\n          \"name\": \"uint32_nonnullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            0,\n            2147483647,\n            1433308719,\n            68323683,\n            1195265875,\n            2106315800,\n            348904267\n          ]\n        },\n        {\n          \"name\": \"uint64_nullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"0\",\n            \"2147483647\",\n            \"731435646\",\n            \"90213947\",\n            \"1630338070\",\n            \"1558676470\",\n            \"1207455205\"\n          ]\n        },\n        {\n          \"name\": \"uint64_nonnullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"0\",\n            \"2147483647\",\n            \"1521875652\",\n            \"1531293596\",\n            \"277775570\",\n            \"618952130\",\n            \"1948103139\"\n          ]\n        },\n        {\n          \"name\": \"float32_nullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            138.786,\n            335.978,\n            868.094,\n            -252.928,\n            433.858,\n            -1044.852,\n            -540.461\n          ]\n        },\n        {\n          \"name\": \"float32_nonnullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            -1645.756,\n            -1634.941,\n            -469.511,\n            489.177,\n            89.502,\n            -1068.882,\n            -1212.052\n          ]\n        },\n        {\n          \"name\": \"float64_nullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            915.264,\n            45.397,\n            1247.676,\n            724.292,\n            -78.253,\n            -751.91,\n            1169.159\n          ]\n        },\n        {\n          \"name\": \"float64_nonnullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            -404.256,\n            -348.975,\n            273.1,\n            691.512,\n            -448.703,\n            632.765,\n            -1195.87\n          ]\n        },\n        {\n          \"name\": \"binary_nullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"OFFSET\": [\n            0,\n            0,\n            5,\n            7,\n            8,\n            14,\n            14,\n            14\n          ],\n          \"DATA\": [\n            \"\",\n            \"51D99B869B\",\n            \"F442\",\n            \"83\",\n            \"7C2BEBE65E6C\",\n            \"\",\n            \"\"\n          ]\n        },\n        {\n          \"name\": \"binary_nonnullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"OFFSET\": [\n            0,\n            10,\n            14,\n            15,\n            16,\n            17,\n            26,\n            26\n          ],\n          \"DATA\": [\n            \"D6DDC948702117DC0840\",\n            \"533708DF\",\n            \"FB\",\n            \"EA\",\n            \"44\",\n            \"BCCD4C61F06C883F73\",\n            \"\"\n          ]\n        },\n        {\n          \"name\": \"utf8_nullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            1\n          ],\n          \"OFFSET\": [\n            0,\n            12,\n            12,\n            12,\n            12,\n            20,\n            27,\n            35\n          ],\n          \"DATA\": [\n            \"\\u00b0\\u00c2mgw\\u20ac\\u00b0\",\n            \"\",\n            \"\",\n            \"\",\n            \"iah6c\\u00a36\",\n            \"rokidwr\",\n            \"6ja\\u00b5fa1\"\n          ]\n        },\n        {\n          \"name\": \"utf8_nonnullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"OFFSET\": [\n            0,\n            10,\n            19,\n            28,\n            36,\n            44,\n            52,\n            59\n          ],\n          \"DATA\": [\n            \"g\\u77e2\\u00a3k4c2\",\n            \"orfbb\\u77e2a\",\n            \"m2k23\\u00a3\\u00b5\",\n            \"5rl6\\u00f45d\",\n            \"egijr\\u00b0b\",\n            \"jple\\u00b0ch\",\n            \"rkiw42p\"\n          ]\n        },\n        {\n          \"name\": \"fixedsizebinary_19_nullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"50243F2281B31338EF651FCF9256388A319101\",\n            \"9BECDDC65F62CFAB152F965E8C5311662E972F\",\n            \"C7599811DDB43DFD35EAD3D3FB7FAF0AAFB9F2\",\n            \"619D0F38B15A69CEA060657758CD9F6820C3DE\",\n            \"C977E16BB93CFE804EB187E0DB4FB5C7E5E613\",\n            \"2339A0EE888B27EFC693DF65DD717AB624DF0F\",\n            \"F8F3629704844DAEF6E952A498504192D33913\"\n          ]\n        },\n        {\n          \"name\": \"fixedsizebinary_19_nonnullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"9AD533F0DD44FC7229F465337FDAC9BEF5FACA\",\n            \"E0EC91C117CC0C3E82BF9B288D7C3A7CB48A2E\",\n            \"CC930B39BCAA159A659588751DC6EEA7F3F933\",\n            \"2B236ECB372BF9606EC626C1CFA6928D7D0CE2\",\n            \"DDF3F3C8D9DAA76406FCF6D6BEA375FF474C0E\",\n            \"828A465C7EF01C9341782A7421C877718F2282\",\n            \"FC34EC8BFEEF50D51F04B14DA64D1CD180757A\"\n          ]\n        },\n        {\n          \"name\": \"fixedsizebinary_120_nullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            0,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"8B96BE80C69B5CEA1C7535D822E8E8B93D22836318AD95BD33F2502084DF803C94735559F3191BB6D44DCE09BB77F9AF48E1851C0483B47A8EAE37ED92ABC071E46975F17685E9DD44640414E24F9C9F150BD29B0E2CABD4FB235A6D2CD5655D647724520C47AB1FE4DC7D418CDF3F55459E6DDF5B46F726\",\n            \"ED0007F8435C9848C5F886245DC9C0AF5CA5796136146A967771E50DE82CA664B3C94C5AF0B10C8A6AB36B51D88E761181CEC6B8729FD6EB781255084F3A19F2CE1B0B2469B1E5B41468C125A391AED7313F8D088CB50C1B4090BA34BE96532377215DB8D02740C3577AEAB769CDC11F5C45EEFA54607F95\",\n            \"E8253141328AE443B2DBC4217FFC251D7C8501924A54071DDEDF06D249F88119161DE1B4CFA929868E965E2EA102BBECA7908180C867F24E5CE1519DD734BC1E8EC77F12D9BF2876077B2A497E03B46B0203FB7BB9173B5A401B4A9D8DA152A13CC5AC218B0BED3131DE47F99909103754CB890104DCB4CD\",\n            \"EE2CA14099A48D8E69A3EF6FBC20389F83F39692BD5E2490D25542EACB623FB79578CDD66C40A26B7732D1EFD5B5930E851F9E8C1E18C18455DA76D8BDB1562F7C6704F071B7707863AB91C9B3D10B5DB17BB451F3EF1FF1F1F2DD4AC2FB10FE6CB43E8F00EDDC5AF4785E7C4EED05BC5FEA73B9D08FDFB8\",\n            \"277EB8E2CDCE71E471B8AF106BC682F76FA50F580EA09031E797D68464736EA29C50326845A935E1E8EFE77387B4DC4424DC1AA84834BB07779869BF50059953020034FF201E10CC710C76F87366435FD20AE6292712BB4A746ED0B8D263D3BE2A8E8DE8AF54E0667D04B1F8B3147206C74BECFD010320FC\",\n            \"784E3DF66A677FD1D5D30EC37B3A9D8E77D876D1FE23EB4EDA9B721CF62D0C1AACBAEE2A4AF953547E472AF6D5F78BAE10D6FA7A2ED19F0C3D716F9C955157245EA7BAED58F6473DD03B6891CAA7AD551B1847A5C196A98716782C4C8479F0ED5BF5E505F01C0A772FA1805E2E7A81BC1409AC4D33CA25C7\",\n            \"51BD3890033C88951DE28101F9A5B90D77083C4342065B86B5D7057F0E07827E70F398DAD0CF60AEAF30CADF988F6CD096F1B58AC48DBB4928BB0831A10D6180F300CBE31AF3D8388C8AF52EEA5DD317A213DFE69F53516DD90A2EDC015B29E73C07ED04C2DABC2EB63C42C474D26DCC4CBAD785D39533D3\"\n          ]\n        },\n        {\n          \"name\": \"fixedsizebinary_120_nonnullable\",\n          \"count\": 7,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"E6439C34B42D20E636A6263B095E98EE7BFE0B33DFFF009EA4B9A14E15E5C7898D0408BB4FB41E73E50A25DE7210FDAF36B1DC57ACD9516236DE6C2B1D6B22618EE24EE657C4DE5001CF05088BCBDFD3B9B1048329DF8A9DF6AAF7A4747461A11E1A425D9007217C9542B7F93DAA9766338C4276A5D00B79\",\n            \"D721489C85BF19A80DB99F84C529B900677A8647FFB6704A33914E8A80448E50143E2F7805F54D52B4B5C6920D57023D1B7FC4B8C4720F8768A9455D35F28097709CB8BE7EED669F20FFF7D8A11903AD66C61F1FC4D3761A487010F8164A20C02F7381F08C335DF4EF28E7E07E8CD1956B73C3805728CCF7\",\n            \"D29C90A96829D519E24EA6E91C59CA3484BCD7E3E7ABD9FEA6358355C67A6F1E903466D1DCCF99ED5205E19C0B3E744827B1F1F4BF1F1438F818482591EC4CED55A21B0F8FE49E18E6CF8BC17920F62710F193A9D7CE786D4FFEA5AB2F86FC375B25239203F9CEF85144252D8D51D953A0AD549D82FF24E1\",\n            \"665D643C48F33A6DC1C6D2A182F693BE49729C1976886AA5709E10B47992D4AC81682FD815447EC072852A112C5E056B21ACA45C4259DC6101893EF693CC83AB8023D431FD226C30DD9D543004D4655F18F1176B0A216FA425482244AB58E7B35C98E87A67D24723E17FB6009CD7520C1DDD6965F028CECF\",\n            \"B6F739AA817BF09B1D324D2ED41CAC7BF2BB48DFA36539661EB015619365D109D56DD3B0FC0D6D1F88A3C14D20E130CE3F2AC7544983145B33D0F431556093958077967AC3420545A786C18F3C3C8A3358D5EB4EFE6829F4A7E989810578C9A1B2CEDC6A4154DE1138497E7EF69DCBCC96FC28DD50CAB9B2\",\n            \"FF506B98BF6FB212E31A785A4B31BF897BBA4043C90FA9BE028183FB7A00B27055D4524EA9996A5CBC8C1A1EFC85D24A88385064245D9F694B504FCAB55A6DA2462FA3A0238990C3EBED78291272520D8C4DF6A8AB930562A0372C15CE02C89CF157819C8C8C1D39767BC413B64587EE41B95145B4C458E3\",\n            \"EF0D024C1652A39F750EEEDC0C116634A844F238724C6825D30D228DA51CC7CFFA0F249B46A72B3A50C80593D070C91424625A738F810238EBE5DB26B3ED0D3358E3E762EDB538FB7A6CEBEDAA0EC2606061DC7AFD2F2707AC1EE64D25053BCE5351F15C297CC17382C81C1F6AEBBACBB54C6452E0B28F94\"\n          ]\n        }\n      ]\n    },\n    {\n      \"count\": 10,\n      \"columns\": [\n        {\n          \"name\": \"bool_nullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            false,\n            false,\n            false,\n            true,\n            true,\n            false,\n            true,\n            true,\n            true,\n            false\n          ]\n        },\n        {\n          \"name\": \"bool_nonnullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            true,\n            true,\n            false,\n            false,\n            true,\n            true,\n            false,\n            true,\n            false,\n            true\n          ]\n        },\n        {\n          \"name\": \"int8_nullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            -128,\n            127,\n            -65,\n            89,\n            -62,\n            -22,\n            -34,\n            65,\n            120,\n            15\n          ]\n        },\n        {\n          \"name\": \"int8_nonnullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            -128,\n            127,\n            123,\n            70,\n            100,\n            -36,\n            113,\n            -108,\n            -6,\n            86\n          ]\n        },\n        {\n          \"name\": \"int16_nullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            0,\n            0,\n            0,\n            0,\n            0,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            -32768,\n            32767,\n            9740,\n            -7733,\n            2637,\n            -2516,\n            -17569,\n            11730,\n            -2908,\n            -8593\n          ]\n        },\n        {\n          \"name\": \"int16_nonnullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            -32768,\n            32767,\n            11718,\n            15880,\n            -6679,\n            -22888,\n            23270,\n            18088,\n            20637,\n            -15533\n          ]\n        },\n        {\n          \"name\": \"int32_nullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            -2147483648,\n            2147483647,\n            477524758,\n            -606134564,\n            393807314,\n            -128112077,\n            717176459,\n            -1600977792,\n            978954235,\n            1860414687\n          ]\n        },\n        {\n          \"name\": \"int32_nonnullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            -2147483648,\n            2147483647,\n            -829757574,\n            -578351845,\n            -1348186787,\n            1890352675,\n            1086502698,\n            855304232,\n            181164543,\n            1057305604\n          ]\n        },\n        {\n          \"name\": \"int64_nullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0\n          ],\n          \"DATA\": [\n            \"-2147483648\",\n            \"2147483647\",\n            \"794060722\",\n            \"198709512\",\n            \"-8995664\",\n            \"-620701969\",\n            \"1130202008\",\n            \"415910253\",\n            \"-84549711\",\n            \"1106943323\"\n          ]\n        },\n        {\n          \"name\": \"int64_nonnullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"-2147483648\",\n            \"2147483647\",\n            \"674480972\",\n            \"1486723112\",\n            \"633112390\",\n            \"245208998\",\n            \"-1174152026\",\n            \"-321990725\",\n            \"-902510995\",\n            \"2067119255\"\n          ]\n        },\n        {\n          \"name\": \"uint8_nullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            0,\n            0,\n            1,\n            1,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            0,\n            255,\n            239,\n            62,\n            105,\n            206,\n            159,\n            158,\n            131,\n            187\n          ]\n        },\n        {\n          \"name\": \"uint8_nonnullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            0,\n            255,\n            228,\n            195,\n            119,\n            246,\n            233,\n            73,\n            227,\n            240\n          ]\n        },\n        {\n          \"name\": \"uint16_nullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            0,\n            65535,\n            45066,\n            6178,\n            34711,\n            47964,\n            27512,\n            44887,\n            24908,\n            55701\n          ]\n        },\n        {\n          \"name\": \"uint16_nonnullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            0,\n            65535,\n            34339,\n            47690,\n            52236,\n            13,\n            16102,\n            11524,\n            57102,\n            29731\n          ]\n        },\n        {\n          \"name\": \"uint32_nullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            0,\n            2147483647,\n            1647048552,\n            2065866351,\n            1252022470,\n            1848990303,\n            16726832,\n            597785424,\n            1240213577,\n            867494515\n          ]\n        },\n        {\n          \"name\": \"uint32_nonnullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            0,\n            2147483647,\n            1852519148,\n            672549034,\n            1636451193,\n            2103372287,\n            680709579,\n            969728024,\n            959488127,\n            712543217\n          ]\n        },\n        {\n          \"name\": \"uint64_nullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1,\n            1,\n            0,\n            0\n          ],\n          \"DATA\": [\n            \"0\",\n            \"2147483647\",\n            \"706989612\",\n            \"89417634\",\n            \"753617711\",\n            \"863868960\",\n            \"844763261\",\n            \"1277577256\",\n            \"520788201\",\n            \"1438973022\"\n          ]\n        },\n        {\n          \"name\": \"uint64_nonnullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"0\",\n            \"2147483647\",\n            \"343654149\",\n            \"1874151572\",\n            \"1405305125\",\n            \"1695099154\",\n            \"1823719899\",\n            \"1099199355\",\n            \"649954155\",\n            \"1371446104\"\n          ]\n        },\n        {\n          \"name\": \"float32_nullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            0,\n            0\n          ],\n          \"DATA\": [\n            -1963.405,\n            -521.792,\n            -1054.599,\n            -908.552,\n            478.058,\n            689.984,\n            -728.344,\n            -328.966,\n            -992.419,\n            357.03\n          ]\n        },\n        {\n          \"name\": \"float32_nonnullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            -3537.833,\n            887.934,\n            -844.73,\n            -564.775,\n            -1264.466,\n            45.573,\n            -1352.096,\n            -1115.417,\n            62.628,\n            19.499\n          ]\n        },\n        {\n          \"name\": \"float64_nullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            1,\n            1,\n            0\n          ],\n          \"DATA\": [\n            2290.58,\n            1382.481,\n            304.522,\n            919.074,\n            -224.893,\n            941.403,\n            746.143,\n            -945.379,\n            -335.496,\n            -92.736\n          ]\n        },\n        {\n          \"name\": \"float64_nonnullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            1537.239,\n            1200.259,\n            900.506,\n            -183.952,\n            1331.255,\n            2447.965,\n            -394.255,\n            -1930.895,\n            -85.89,\n            -67.091\n          ]\n        },\n        {\n          \"name\": \"binary_nullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            1,\n            1,\n            0,\n            0,\n            1,\n            0,\n            0,\n            1,\n            0\n          ],\n          \"OFFSET\": [\n            0,\n            0,\n            9,\n            11,\n            11,\n            11,\n            13,\n            13,\n            13,\n            13,\n            13\n          ],\n          \"DATA\": [\n            \"\",\n            \"EA766EF95797A0C9B8\",\n            \"84D5\",\n            \"\",\n            \"\",\n            \"AD57\",\n            \"\",\n            \"\",\n            \"\",\n            \"\"\n          ]\n        },\n        {\n          \"name\": \"binary_nonnullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"OFFSET\": [\n            0,\n            0,\n            1,\n            3,\n            4,\n            6,\n            7,\n            10,\n            12,\n            13,\n            14\n          ],\n          \"DATA\": [\n            \"\",\n            \"3D\",\n            \"9E86\",\n            \"EA\",\n            \"C091\",\n            \"AD\",\n            \"2D3828\",\n            \"3EE2\",\n            \"84\",\n            \"F8\"\n          ]\n        },\n        {\n          \"name\": \"utf8_nullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"OFFSET\": [\n            0,\n            10,\n            10,\n            19,\n            28,\n            39,\n            39,\n            49,\n            59,\n            73,\n            83\n          ],\n          \"DATA\": [\n            \"f5\\u77e2jnm\\u00a3\",\n            \"\",\n            \"lnc\\u77e2bbe\",\n            \"a\\u77e2r2pd1\",\n            \"2d\\u00f4\\u00c2e\\u20acg\",\n            \"\",\n            \"\\u00b5\\u00c2rh\\u00c2rn\",\n            \"g\\u00b5e\\u00f4h\\u00f4r\",\n            \"\\u00a32\\u77e2a\\u77e2\\u00b5\\u00c2\",\n            \"m\\u00f4\\u00f4\\u00b56in\"\n          ]\n        },\n        {\n          \"name\": \"utf8_nonnullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"OFFSET\": [\n            0,\n            10,\n            19,\n            26,\n            37,\n            46,\n            57,\n            65,\n            77,\n            86,\n            95\n          ],\n          \"DATA\": [\n            \"5j\\u00a3n\\u77e265\",\n            \"pdwf\\u00f4\\u00f45\",\n            \"ifwnble\",\n            \"1g\\u00c2\\u00b0h\\u00b0\\u00c2\",\n            \"4e\\u00c2fkb\\u00c2\",\n            \"\\u00a3\\u20ac\\u00b55omr\",\n            \"4f36\\u00a3rp\",\n            \"jhw\\u20ac\\u20ac\\u00f4c\",\n            \"5r\\u77e2wl2h\",\n            \"6\\u77e2bnin1\"\n          ]\n        },\n        {\n          \"name\": \"fixedsizebinary_19_nullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            0,\n            0,\n            1,\n            1,\n            1,\n            0,\n            1,\n            0,\n            0,\n            1\n          ],\n          \"DATA\": [\n            \"C85E25A3CCE5865762DCFC6E07E23481189581\",\n            \"833BACCDA190F764DEDB416EE08B8BC302AB63\",\n            \"D7573E24B94D3B70E23743918DBE9BA3272FA5\",\n            \"E3AE2D60B3E7513863A71E78874BE0B714524A\",\n            \"833E27429BC71A6CBCC0A1349F58112AA5307E\",\n            \"CB3F3571BCA366F6DA6AD3B182452529BDEA1C\",\n            \"5B4F8DD3A1694411902AAF6C0087143581B2CB\",\n            \"D7C308DBC4A59CCD176076941788705CFDA2ED\",\n            \"D5C307EEE12A6E4D0B2AD848DC52EB252ECDEF\",\n            \"D778B9EB37E4D5FFC1BF753ABAEB069A5E45E2\"\n          ]\n        },\n        {\n          \"name\": \"fixedsizebinary_19_nonnullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"C75F1645509DC011AB32AC2F576CAE7ECA7B16\",\n            \"CB8E1A1F0A4B75B4E8E199EE6959E2C0CC64B6\",\n            \"9D53CFDBD99B04F4FB034256CDDAAC86CD134A\",\n            \"0B78B4D2F163FC63BF2F36FEC8E9466B79A3C8\",\n            \"D89F13F6448B6E7FD84B2E19A460AD8E105E31\",\n            \"CE7121C392A8560257CB0F36A3D4CEFEAA120D\",\n            \"540FE8D61D90A7B5984B45A082BF2842126253\",\n            \"97EC73B3236B90B522AAC15817626E0566780D\",\n            \"3A8B546C8FE7624CD4E1EE8B3E0D77D89D5EC1\",\n            \"3E601ED2EA586F69F56387556D17512A482A08\"\n          ]\n        },\n        {\n          \"name\": \"fixedsizebinary_120_nullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            0,\n            1,\n            1,\n            1,\n            1,\n            0,\n            0,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"D49D31D22EB091811343B3B583AE276D5DF5BC8EA636000DE72FCBB3031FBA4D05F433EBC75124D60C56656F5411B3A0E6EECDA4346CF3105F87E7B1DEBF3C6FCF938F07B3C470DDE33436D19C07D9BA128B47554E5276D47C21C715BEF67E3802ECA55BB6759E50F130590ADEDDCD86A958F56C9D077C70\",\n            \"6AC6110369AFA04648213B52CD109586E85CD77D5B3F262576BC3FF98A9EC90761912FC88940F798CDA6163F3E3D7994285A903470365243F551111621F6350B078CA055001EB406B5A7C07706F2E04B2730A2335D87C151368A160EDBC0C26201EA6441990354ED302894B8ACC1A257D6DE9E17B2564898\",\n            \"DCE126B0DCB6195E93DC878CAF5F064BAE1184A6DBC06C2C8A1628D019BCEC17411521E3BC58A8ACBC73FCCE887B9D6E45645B7C2100AD624FF6734241676C747A3C6DC61C52D605A379F906C662215DCE3115A7BD1213B6E7F5C9AFF2D6221BFE4C0C4FF4AF9B18BA2E7D425BD8D98C0D7BDA249EA37BA8\",\n            \"4B18DD4F1927AD7AF60F7C11C982FCCCFD42A17849EA8654A30DDC58C1CBD641C1B70A924EA1F3D2DCF750DBF87B16CBC4E00D9617E88737A22B9F9B7D20F779381A71879FC46D591A7C0426A2BC5FF563C6F33CA0566A6E7D471033961D45F685D403F4E9D3164FE8CF5ECBF131D3EFBA371DAE1C6C2E6B\",\n            \"33C9DE972AD49D58C52F895B0F81EEE1E819BA427E9197F2DC3F37FD9D6B31E847016B4590BC72C60BA40C89D0647A0064C5192FD917CCBC7351650885DAA03217E8FFA1B568582AC2354499852CDCC17967F3301DE60EAB044A66AD0A0175DCE71229D5ECD83325B0D2A4D75169A38DC11F6504A8CF9F92\",\n            \"943EA9C4927C15AB07594F7FABFAE47061670FF75663C9B3AF5F08C8EE1523AACA9E631996D3A17644B23DC1CC6FB3157A177340CA9F93FC7D0E2C3BF907EB74AB4C5DE8B49319B86BB9457649360DA39B66BC145721A6BAF056961172EC6C93CB7CBFC9A2C682DBE8A74F8CDC20324CDAB7388480908F18\",\n            \"00FA841BCDD7C5D584C9C27E3577C7CC3FD1AC6C760B1914D1CBF765418EF21005AB7E065AF3C08424F7CEF98EECAE1694939728B71F750A096B3FF8F78843AC768C37FC7712A075786C7F1FC90AD316D20838693002DEA9B32B5864948709B200FF3E278B578E0B47A1E63583DAB18AABED963207642992\",\n            \"4DCB937A9E3144A2383FFF5C3EF93EFFD128FC3C131DD9469A2CB0E59DA7EBDBA77AD01A0979B99FBA10055567EDA3CFCA77A515BD1D4D632C6BA9B698813F1C0AFFBEFF227D140407BF5728EC943F9D3833DA1B8D2B5B60398CB219500022B1AB9312273C5275D6282EC4A4E648B6491212B954470CA6BE\",\n            \"A0BBC95D4894952D2E4945538AF4CE60828A1B94949143EEA065C0917BD5CDDBD68AA838AA1F75EFED37DC7256618C0CA762EE7CF75A287D529ADBFC81FD11A5F75CE23BF27940150E737E73992ACF085F52AE14E02BCEE2D229F20AEB862A8CC3D5881AE4E6267CC8B1EEF1D2AC97D4769CAD14DD4BFB96\",\n            \"F54B84661C426B3D0E37A455738000E50EF024258EBCE2AA3FEC5AA4E2EC3C48150B56BD44E96658C7CCB6267DB8C5484DA153FBFE0478073720BCBB65927681B36C17AE976568129E3C2FD1CBBDE89DBEE1D461FD7C6DBA455D80DC02A107855C5D04808AA164D85CF1F72EDB153685B2046E12968DB052\"\n          ]\n        },\n        {\n          \"name\": \"fixedsizebinary_120_nonnullable\",\n          \"count\": 10,\n          \"VALIDITY\": [\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"DATA\": [\n            \"383BB0920976B030D92B51AA60DC74922A0EB112955D1D934E19EC0CDE12CAB87C6E069439EB4F9FC105F7250BFE7DD983CC10728B8445735A7E52720FBDCD4AB7113BF52B797A05B187F572A330DABEA5E8DB5698168538775825001E7EB6CA0468F06F623A77AD99E5BB63D90A267AF243D7840B099F2C\",\n            \"074AC397B235ADA4A90B56B3B37D5148BEA22D6A6746B308DEA7E81A7294AEF6F3C6097A0941CA8DF01147B27040A672D5DCCF073DEB5DC0AC360E083BFB8378D7364EB2E4A09D629264BC9ED28D967184A6710424DC36D80E7D4FF499FA3CF1C0D77117CFB3E5783735F8B00D52A1243521A598F44A139F\",\n            \"0612AE357E65463291258B15782DA04D8B8F004F4360EB1DAB17FB57B5A5772ECCF419EE132FC94A1C0D00A2C731B887C25CDAF192BE78E6C94145421884243B234DC7A80592E70D6ECCCAEA8C08AEAE2A1AD70D786B039DA894B6FE7996F5BF6EC6670FCBBE7042430D0174D5CA9043DB7B79899A360C94\",\n            \"FE0A6A2B3A475AF6AA63CE24997BCAFA096B9269DA9368CEBD03444223F2497907FBD66CA071A7BEAA68D76CFD9A507280BF6108303F16558225883351E2FDF88E425DBE6ACEBE29E69CF57E41B74952391DF1B04F80363E3879A1326B9DD2D4AD94092D1FDD8EE574AC69D1F22A1BC1EC7F04BBAEC32AB7\",\n            \"588F15533772FD3C26415F6DC5DDB98264BEB79868908B6CB216D59A3A227E75F443A448B0D7A405AA248F6A6F049EB247B1826A02DA6F2624E16B0A899056B1D0565429434006CB11D5E3D224CA4AE7A4C19817685CB46DC0BF789AC94BF755A47B4668EBA8898CF85CD0C4F2309E97F0FE25EFB508B635\",\n            \"5351D21576971DFFDF48693B65895450FC098F21722B44E4CE583E969ACDF47A686AA849B265CECEAAD67CD122C10FBA7069E52326B64FD146054EE8C3F621AF28FFB2127E75FFC99B0E72B72BC615C4E9B7310C088CE5883CF41AC717DABCDF6F140B9933C831CB828EF9C02E02DC35501B527E46B1933C\",\n            \"6B7D83AB9AC067A38C0F2A95A4B4A3CE63C4731C729C9ED568FDA35D750262B5E7B44809D131F9F7996B2630C6075C083F31736EBA9CBB1CC62A257EBE294C55B750154E004F768EB670F648E17EB5DA40E28350B19070E924001F16846F6BC197897F189E31F30C93D43098DBE39F0EBF2E4A7FD7A25A55\",\n            \"26C342B09B0D6D690753743D15F78B9F2CDBAF14B95DF0D5BC9D7E1AC0C4416F3852AD0CD3D51610A6B7B6BEC766672E274C971E5692FA9AB982C3C828EA9A270BFB524EDCA50D0E8444540B82752201BDC9BA56CE6A01A04E25D5514C045515FDE12AE0B0A0533AAFD5E5FF18ABD22312DFEC854C496391\",\n            \"7C6D76970A57EFEC88857971E84675A3EDC47F0B2E1AA20B916601842394BC674F3CF10729DF32D10BC7BE05B74B8F68E24884637F0553A7EC84353C43B4640AC5582EBAF0827D247CE49BC95B74D842E2EE25D80741F80C3019D7EDF58CCB47112C70835F32E538F3664B5625C5FC3C761FE96E329AF03C\",\n            \"3A97DD53C812EBB096458C9B8E382F9404BB5F1F29FFF7973E15FB547A06F32DAFD300719AEE30E11DF794603B5D196AAAB5BE44A127590388E420367C3F542E6288A1505D83283B63417F9DBD5E2609D436773106940756DDB71910ACFD5FEF8A1F92AD3366E778FD1849C1CB2C0439B6D5719299E59D96\"\n          ]\n        }\n      ]\n    }\n  ]\n}"
  },
  {
    "path": "test/arrowjson/primitive_no_batches.json",
    "content": "{\n  \"schema\": {\n    \"fields\": [\n      {\n        \"name\": \"bool_nullable\",\n        \"type\": {\n          \"name\": \"bool\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"bool_nonnullable\",\n        \"type\": {\n          \"name\": \"bool\"\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"int8_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 8\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"int8_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 8\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"int16_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 16\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"int16_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 16\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"int32_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 32\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"int32_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 32\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"int64_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 64\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"int64_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": true,\n          \"bitWidth\": 64\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint8_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 8\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint8_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 8\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint16_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 16\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint16_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 16\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint32_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 32\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint32_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 32\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint64_nullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 64\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"uint64_nonnullable\",\n        \"type\": {\n          \"name\": \"int\",\n          \"isSigned\": false,\n          \"bitWidth\": 64\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"float32_nullable\",\n        \"type\": {\n          \"name\": \"floatingpoint\",\n          \"precision\": \"SINGLE\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"float32_nonnullable\",\n        \"type\": {\n          \"name\": \"floatingpoint\",\n          \"precision\": \"SINGLE\"\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"float64_nullable\",\n        \"type\": {\n          \"name\": \"floatingpoint\",\n          \"precision\": \"DOUBLE\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"float64_nonnullable\",\n        \"type\": {\n          \"name\": \"floatingpoint\",\n          \"precision\": \"DOUBLE\"\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"binary_nullable\",\n        \"type\": {\n          \"name\": \"binary\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"binary_nonnullable\",\n        \"type\": {\n          \"name\": \"binary\"\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"utf8_nullable\",\n        \"type\": {\n          \"name\": \"utf8\"\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"utf8_nonnullable\",\n        \"type\": {\n          \"name\": \"utf8\"\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"fixedsizebinary_19_nullable\",\n        \"type\": {\n          \"name\": \"fixedsizebinary\",\n          \"byteWidth\": 19\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"fixedsizebinary_19_nonnullable\",\n        \"type\": {\n          \"name\": \"fixedsizebinary\",\n          \"byteWidth\": 19\n        },\n        \"nullable\": false,\n        \"children\": []\n      },\n      {\n        \"name\": \"fixedsizebinary_120_nullable\",\n        \"type\": {\n          \"name\": \"fixedsizebinary\",\n          \"byteWidth\": 120\n        },\n        \"nullable\": true,\n        \"children\": []\n      },\n      {\n        \"name\": \"fixedsizebinary_120_nonnullable\",\n        \"type\": {\n          \"name\": \"fixedsizebinary\",\n          \"byteWidth\": 120\n        },\n        \"nullable\": false,\n        \"children\": []\n      }\n    ]\n  },\n  \"batches\": []\n}"
  },
  {
    "path": "test/arrowjson.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nmodule ArrowJSON\n\nusing Mmap\nusing StructTypes, JSON3, Tables, SentinelArrays, Arrow\n\n# read json files as \"table\"\n# write to arrow stream/file\n# read arrow stream/file back\n\nabstract type Type end\nType() = Null(\"null\")\nStructTypes.StructType(::Base.Type{Type}) = StructTypes.AbstractType()\n\nchildren(::Base.Type{T}) where {T} = Field[]\n\nmutable struct Int <: Type\n    name::String\n    bitWidth::Int64\n    isSigned::Base.Bool\nend\n\nInt() = Int(\"\", 0, true)\nType(::Base.Type{T}) where {T<:Integer} = Int(\"int\", 8 * sizeof(T), T <: Signed)\nStructTypes.StructType(::Base.Type{Int}) = StructTypes.Mutable()\nfunction juliatype(f, x::Int)\n    T =\n        x.bitWidth == 8 ? Int8 :\n        x.bitWidth == 16 ? Int16 :\n        x.bitWidth == 32 ? Int32 : x.bitWidth == 64 ? Int64 : Int128\n    return x.isSigned ? T : unsigned(T)\nend\n\nstruct FloatingPoint <: Type\n    name::String\n    precision::String\nend\n\nType(::Base.Type{T}) where {T<:AbstractFloat} = FloatingPoint(\n    \"floatingpoint\",\n    T == Float16 ? \"HALF\" : T == Float32 ? \"SINGLE\" : \"DOUBLE\",\n)\nStructTypes.StructType(::Base.Type{FloatingPoint}) = StructTypes.Struct()\njuliatype(f, x::FloatingPoint) =\n    x.precision == \"HALF\" ? Float16 : x.precision == \"SINGLE\" ? Float32 : Float64\n\nstruct FixedSizeBinary <: Type\n    name::String\n    byteWidth::Int64\nend\n\nType(::Base.Type{NTuple{N,UInt8}}) where {N} = FixedSizeBinary(\"fixedsizebinary\", N)\nchildren(::Base.Type{NTuple{N,UInt8}}) where {N} = Field[]\nStructTypes.StructType(::Base.Type{FixedSizeBinary}) = StructTypes.Struct()\njuliatype(f, x::FixedSizeBinary) = NTuple{x.byteWidth,UInt8}\n\nstruct Decimal <: Type\n    name::String\n    precision::Int32\n    scale::Int32\nend\n\nType(::Base.Type{Arrow.Decimal{P,S,T}}) where {P,S,T} = Decimal(\"decimal\", P, S)\nStructTypes.StructType(::Base.Type{Decimal}) = StructTypes.Struct()\njuliatype(f, x::Decimal) = Arrow.Decimal{x.precision,x.scale,Int128}\n\nmutable struct Timestamp <: Type\n    name::String\n    unit::String\n    timezone::Union{Nothing,String}\nend\n\nTimestamp() = Timestamp(\"\", \"\", nothing)\nunit(U) =\n    U == Arrow.Meta.TimeUnit.SECOND ? \"SECOND\" :\n    U == Arrow.Meta.TimeUnit.MILLISECOND ? \"MILLISECOND\" :\n    U == Arrow.Meta.TimeUnit.MICROSECOND ? \"MICROSECOND\" : \"NANOSECOND\"\nType(::Base.Type{Arrow.Timestamp{U,TZ}}) where {U,TZ} =\n    Timestamp(\"timestamp\", unit(U), TZ === nothing ? nothing : String(TZ))\nStructTypes.StructType(::Base.Type{Timestamp}) = StructTypes.Mutable()\nunitT(u) =\n    u == \"SECOND\" ? Arrow.Meta.TimeUnit.SECOND :\n    u == \"MILLISECOND\" ? Arrow.Meta.TimeUnit.MILLISECOND :\n    u == \"MICROSECOND\" ? Arrow.Meta.TimeUnit.MICROSECOND : Arrow.Meta.TimeUnit.NANOSECOND\njuliatype(f, x::Timestamp) =\n    Arrow.Timestamp{unitT(x.unit),x.timezone === nothing ? nothing : Symbol(x.timezone)}\n\nstruct Duration <: Type\n    name::String\n    unit::String\nend\n\nType(::Base.Type{Arrow.Duration{U}}) where {U} = Duration(\"duration\", unit(U))\nStructTypes.StructType(::Base.Type{Duration}) = StructTypes.Struct()\njuliatype(f, x::Duration) = Arrow.Duration{unit % (x.unit)}\n\nstruct Date <: Type\n    name::String\n    unit::String\nend\n\nType(::Base.Type{Arrow.Date{U,T}}) where {U,T} =\n    Date(\"date\", U == Arrow.Meta.DateUnit.DAY ? \"DAY\" : \"MILLISECOND\")\nStructTypes.StructType(::Base.Type{Date}) = StructTypes.Struct()\njuliatype(f, x::Date) = Arrow.Date{\n    x.unit == \"DAY\" ? Arrow.Meta.DateUnit.DAY : Arrow.Meta.DateUnit.MILLISECOND,\n    x.unit == \"DAY\" ? Int32 : Int64,\n}\n\nstruct Time <: Type\n    name::String\n    unit::String\n    bitWidth::Int64\nend\n\nType(::Base.Type{Arrow.Time{U,T}}) where {U,T} = Time(\"time\", unit(U), 8 * sizeof(T))\nStructTypes.StructType(::Base.Type{Time}) = StructTypes.Struct()\njuliatype(f, x::Time) =\n    Arrow.Time{unitT(x.unit),x.unit == \"SECOND\" || x.unit == \"MILLISECOND\" ? Int32 : Int64}\n\nstruct Interval <: Type\n    name::String\n    unit::String\nend\n\nType(::Base.Type{Arrow.Interval{U,T}}) where {U,T} = Interval(\n    \"interval\",\n    U == Arrow.Meta.IntervalUnit.YEAR_MONTH ? \"YEAR_MONTH\" : \"DAY_TIME\",\n)\nStructTypes.StructType(::Base.Type{Interval}) = StructTypes.Struct()\njuliatype(f, x::Interval) = Arrow.Interval{\n    x.unit == \"YEAR_MONTH\" ? Arrow.Meta.IntervalUnit.YEAR_MONTH :\n    Arrow.Meta.IntervalUnit.DAY_TIME,\n    x.unit == \"YEAR_MONTH\" ? Int32 : Int64,\n}\n\nstruct UnionT <: Type\n    name::String\n    mode::String\n    typIds::Vector{Int64}\nend\n\nType(::Base.Type{Arrow.UnionT{T,typeIds,U}}) where {T,typeIds,U} =\n    UnionT(\"union\", T == Arrow.Meta.UnionMode.Dense ? \"DENSE\" : \"SPARSE\", collect(typeIds))\nchildren(::Base.Type{Arrow.UnionT{T,typeIds,U}}) where {T,typeIds,U} =\n    Field[Field(\"\", fieldtype(U, i), nothing) for i = 1:fieldcount(U)]\nStructTypes.StructType(::Base.Type{UnionT}) = StructTypes.Struct()\njuliatype(f, x::UnionT) = Arrow.UnionT{\n    x.mode == \"DENSE\" ? Arrow.Meta.UnionMode.DENSE : Arrow.Meta.UnionMode.SPARSE,\n    Tuple(x.typeIds),\n    Tuple{(juliatype(y) for y in f.children)...},\n}\n\nstruct List <: Type\n    name::String\nend\n\nType(::Base.Type{Vector{T}}) where {T} = List(\"list\")\nchildren(::Base.Type{Vector{T}}) where {T} = [Field(\"item\", T, nothing)]\nStructTypes.StructType(::Base.Type{List}) = StructTypes.Struct()\njuliatype(f, x::List) = Vector{juliatype(f.children[1])}\n\nstruct LargeList <: Type\n    name::String\nend\n\nStructTypes.StructType(::Base.Type{LargeList}) = StructTypes.Struct()\njuliatype(f, x::LargeList) = Vector{juliatype(f.children[1])}\n\nstruct FixedSizeList <: Type\n    name::String\n    listSize::Int64\nend\n\nType(::Base.Type{NTuple{N,T}}) where {N,T} = FixedSizeList(\"fixedsizelist\", N)\nchildren(::Base.Type{NTuple{N,T}}) where {N,T} = [Field(\"item\", T, nothing)]\nStructTypes.StructType(::Base.Type{FixedSizeList}) = StructTypes.Struct()\njuliatype(f, x::FixedSizeList) = NTuple{x.listSize,juliatype(f.children[1])}\n\nstruct Struct <: Type\n    name::String\nend\n\nType(::Base.Type{NamedTuple{names,types}}) where {names,types} = Struct(\"struct\")\nchildren(::Base.Type{NamedTuple{names,types}}) where {names,types} =\n    [Field(names[i], fieldtype(types, i), nothing) for i = 1:length(names)]\nStructTypes.StructType(::Base.Type{Struct}) = StructTypes.Struct()\njuliatype(f, x::Struct) = NamedTuple{\n    Tuple(Symbol(x.name) for x in f.children),\n    Tuple{(juliatype(y) for y in f.children)...},\n}\n\nstruct Map <: Type\n    name::String\n    keysSorted::Base.Bool\nend\n\nType(::Base.Type{Dict{K,V}}) where {K,V} = Map(\"map\", false)\nchildren(::Base.Type{Dict{K,V}}) where {K,V} =\n    [Field(\"entries\", Arrow.KeyValue{K,V}, nothing)]\nStructTypes.StructType(::Base.Type{Map}) = StructTypes.Struct()\njuliatype(f, x::Map) =\n    Dict{juliatype(f.children[1].children[1]),juliatype(f.children[1].children[2])}\n\nType(::Base.Type{Arrow.KeyValue{K,V}}) where {K,V} = Struct(\"struct\")\nchildren(::Base.Type{Arrow.KeyValue{K,V}}) where {K,V} =\n    [Field(\"key\", K, nothing), Field(\"value\", V, nothing)]\n\nstruct Null <: Type\n    name::String\nend\n\nType(::Base.Type{Missing}) = Null(\"null\")\nStructTypes.StructType(::Base.Type{Null}) = StructTypes.Struct()\njuliatype(f, x::Null) = Missing\n\nstruct Utf8 <: Type\n    name::String\nend\n\nType(::Base.Type{<:String}) = Utf8(\"utf8\")\nStructTypes.StructType(::Base.Type{Utf8}) = StructTypes.Struct()\njuliatype(f, x::Utf8) = String\n\nstruct LargeUtf8 <: Type\n    name::String\nend\n\nStructTypes.StructType(::Base.Type{LargeUtf8}) = StructTypes.Struct()\njuliatype(f, x::LargeUtf8) = String\n\nstruct Binary <: Type\n    name::String\nend\n\nType(::Base.Type{Vector{UInt8}}) = Binary(\"binary\")\nchildren(::Base.Type{Vector{UInt8}}) = Field[]\nStructTypes.StructType(::Base.Type{Binary}) = StructTypes.Struct()\njuliatype(f, x::Binary) = Vector{UInt8}\n\nstruct LargeBinary <: Type\n    name::String\nend\n\nStructTypes.StructType(::Base.Type{LargeBinary}) = StructTypes.Struct()\njuliatype(f, x::LargeBinary) = Vector{UInt8}\n\nstruct Bool <: Type\n    name::String\nend\n\nType(::Base.Type{Base.Bool}) = Bool(\"bool\")\nStructTypes.StructType(::Base.Type{Bool}) = StructTypes.Struct()\njuliatype(f, x::Bool) = Base.Bool\n\nStructTypes.subtypekey(::Base.Type{Type}) = :name\n\nconst SUBTYPES = @eval (\n    int=Int,\n    floatingpoint=FloatingPoint,\n    fixedsizebinary=FixedSizeBinary,\n    decimal=Decimal,\n    timestamp=Timestamp,\n    duration=Duration,\n    date=Date,\n    time=Time,\n    interval=Interval,\n    union=UnionT,\n    list=List,\n    largelist=LargeList,\n    fixedsizelist=FixedSizeList,\n    ($(Symbol(\"struct\")))=Struct,\n    map=Map,\n    null=Null,\n    utf8=Utf8,\n    largeutf8=LargeUtf8,\n    binary=Binary,\n    largebinary=LargeBinary,\n    bool=Bool,\n)\n\nStructTypes.subtypes(::Base.Type{Type}) = SUBTYPES\n\nconst Metadata = Union{Nothing,Vector{NamedTuple{(:key, :value),Tuple{String,String}}}}\nMetadata() = nothing\n\nmutable struct DictEncoding\n    id::Int64\n    indexType::Type\n    isOrdered::Base.Bool\nend\n\nDictEncoding() = DictEncoding(0, Type(), false)\nStructTypes.StructType(::Base.Type{DictEncoding}) = StructTypes.Mutable()\n\nmutable struct Field\n    name::String\n    nullable::Base.Bool\n    type::Type\n    children::Vector{Field}\n    dictionary::Union{DictEncoding,Nothing}\n    metadata::Metadata\nend\n\nField() = Field(\"\", true, Type(), Field[], nothing, Metadata())\nStructTypes.StructType(::Base.Type{Field}) = StructTypes.Mutable()\nBase.copy(f::Field) =\n    Field(f.name, f.nullable, f.type, f.children, f.dictionary, f.metadata)\n\nfunction juliatype(f::Field)\n    T = juliatype(f, f.type)\n    return f.nullable ? Union{T,Missing} : T\nend\n\nfunction Field(nm, ::Base.Type{T}, dictencodings) where {T}\n    S = Arrow.maybemissing(T)\n    type = Type(S)\n    ch = children(S)\n    if dictencodings !== nothing && haskey(dictencodings, nm)\n        dict = dictencodings[nm]\n    else\n        dict = nothing\n    end\n    return Field(nm, T !== S, type, ch, dict, nothing)\nend\n\nmutable struct Schema\n    fields::Vector{Field}\n    metadata::Metadata\nend\n\nSchema() = Schema(Field[], Metadata())\nStructTypes.StructType(::Base.Type{Schema}) = StructTypes.Mutable()\n\nstruct Offsets{T} <: AbstractVector{T}\n    data::Vector{T}\nend\n\nBase.size(x::Offsets) = size(x.data)\nBase.getindex(x::Offsets, i::Base.Int) = getindex(x.data, i)\n\nmutable struct FieldData\n    name::String\n    count::Int64\n    VALIDITY::Union{Nothing,Vector{Int8}}\n    OFFSET::Union{Nothing,Offsets}\n    TYPE_ID::Union{Nothing,Vector{Int8}}\n    DATA::Union{Nothing,Vector{Any}}\n    children::Vector{FieldData}\nend\n\nFieldData() = FieldData(\"\", 0, nothing, nothing, nothing, nothing, FieldData[])\nStructTypes.StructType(::Base.Type{FieldData}) = StructTypes.Mutable()\n\nfunction FieldData(nm, ::Base.Type{T}, col, dictencodings) where {T}\n    if dictencodings !== nothing && haskey(dictencodings, nm)\n        refvals = DataAPI.refarray(col.data)\n        if refvals !== col.data\n            IT = eltype(refvals)\n            col = (x - one(T) for x in refvals)\n        else\n            _, de = dictencodings[nm]\n            IT = de.indexType\n            vals = unique(col)\n            col = Arrow.DictEncoder(col, vals, Arrow.encodingtype(length(vals)))\n        end\n        return FieldData(nm, IT, col, nothing)\n    end\n    S = Arrow.maybemissing(T)\n    len = Arrow._length(col)\n    VALIDITY = OFFSET = TYPE_ID = DATA = nothing\n    children = FieldData[]\n    if S <: Pair\n        return FieldData(\n            nm,\n            Vector{Arrow.KeyValue{Arrow._keytype(S),Arrow._valtype(S)}},\n            (Arrow.KeyValue(k, v) for (k, v) in pairs(col)),\n        )\n    elseif S !== Missing\n        # VALIDITY\n        VALIDITY = Int8[!ismissing(x) for x in col]\n        # OFFSET\n        if S <: Vector || S == String\n            lenfun =\n                S == String ? x -> ismissing(x) ? 0 : sizeof(x) :\n                x -> ismissing(x) ? 0 : length(x)\n            tot = sum(lenfun, col)\n            if tot > 2147483647\n                OFFSET = String[String(lenfun(x)) for x in col]\n                pushfirst!(OFFSET, \"0\")\n            else\n                OFFSET = Int32[ismissing(x) ? 0 : lenfun(x) for x in col]\n                pushfirst!(OFFSET, 0)\n            end\n            OFFSET = Offsets(OFFSET)\n            push!(\n                children,\n                FieldData(\n                    \"item\",\n                    eltype(S),\n                    Arrow.flatten(skipmissing(col)),\n                    dictencodings,\n                ),\n            )\n        elseif S <: NTuple\n            if Arrow.ArrowTypes.gettype(Arrow.ArrowTypes.ArrowKind(S)) == UInt8\n                DATA = [\n                    ismissing(x) ? Arrow.ArrowTypes.default(S) : String(collect(x)) for\n                    x in col\n                ]\n            else\n                push!(\n                    children,\n                    FieldData(\n                        \"item\",\n                        Arrow.ArrowTypes.gettype(Arrow.ArrowTypes.ArrowKind(S)),\n                        Arrow.flatten(\n                            coalesce(x, Arrow.ArrowTypes.default(S)) for x in col\n                        ),\n                        dictencodings,\n                    ),\n                )\n            end\n        elseif S <: NamedTuple\n            for (nm, typ) in zip(fieldnames(S), fieldtypes(S))\n                push!(\n                    children,\n                    FieldData(\n                        String(nm),\n                        typ,\n                        (getfield(x, nm) for x in col),\n                        dictencodings,\n                    ),\n                )\n            end\n        elseif S <: Arrow.UnionT\n            U = eltype(S)\n            tids = Arrow.typeids(S) === nothing ? (0:fieldcount(U)) : Arrow.typeids(S)\n            TYPE_ID = [x === missing ? 0 : tids[Arrow.isatypeid(x, U)] for x in col]\n            if Arrow.unionmode(S) == Arrow.Meta.UnionMode.Dense\n                offs = zeros(Int32, fieldcount(U))\n                OFFSET = Int32[]\n                for x in col\n                    idx = x === missing ? 1 : Arrow.isatypeid(x, U)\n                    push!(OFFSET, offs[idx])\n                    offs[idx] += 1\n                end\n                for i = 1:fieldcount(U)\n                    SS = fieldtype(U, i)\n                    push!(\n                        children,\n                        FieldData(\n                            \"$i\",\n                            SS,\n                            Arrow.filtered(\n                                i == 1 ? Union{SS,Missing} : Arrow.maybemissing(SS),\n                                col,\n                            ),\n                            dictencodings,\n                        ),\n                    )\n                end\n            else\n                for i = 1:fieldcount(U)\n                    SS = fieldtype(U, i)\n                    push!(\n                        children,\n                        FieldData(\"$i\", SS, Arrow.replaced(SS, col), dictencodings),\n                    )\n                end\n            end\n        elseif S <: KeyValue\n            push!(\n                children,\n                FieldData(\"key\", Arrow.keyvalueK(S), (x.key for x in col), dictencodings),\n            )\n            push!(\n                children,\n                FieldData(\n                    \"value\",\n                    Arrow.keyvalueV(S),\n                    (x.value for x in col),\n                    dictencodings,\n                ),\n            )\n        end\n    end\n    return FieldData(nm, len, VALIDITY, OFFSET, TYPE_ID, DATA, children)\nend\n\nmutable struct RecordBatch\n    count::Int64\n    columns::Vector{FieldData}\nend\n\nRecordBatch() = RecordBatch(0, FieldData[])\nStructTypes.StructType(::Base.Type{RecordBatch}) = StructTypes.Mutable()\n\nmutable struct DictionaryBatch\n    id::Int64\n    data::RecordBatch\nend\n\nDictionaryBatch() = DictionaryBatch(0, RecordBatch())\nStructTypes.StructType(::Base.Type{DictionaryBatch}) = StructTypes.Mutable()\n\nmutable struct DataFile <: Tables.AbstractColumns\n    schema::Schema\n    batches::Vector{RecordBatch}\n    dictionaries::Vector{DictionaryBatch}\nend\n\nBase.propertynames(x::DataFile) = (:schema, :batches, :dictionaries)\n\nfunction Base.getproperty(df::DataFile, nm::Symbol)\n    if nm === :schema\n        return getfield(df, :schema)\n    elseif nm === :batches\n        return getfield(df, :batches)\n    elseif nm === :dictionaries\n        return getfield(df, :dictionaries)\n    end\n    return Tables.getcolumn(df, nm)\nend\n\nDataFile() = DataFile(Schema(), RecordBatch[], DictionaryBatch[])\nStructTypes.StructType(::Base.Type{DataFile}) = StructTypes.Mutable()\n\nparsefile(file) = JSON3.read(Mmap.mmap(file), DataFile)\n\n# make DataFile satisfy Tables.jl interface\nfunction Tables.partitions(x::DataFile)\n    if isempty(x.batches)\n        # special case empty batches by producing a single DataFile w/ schema\n        return (DataFile(x.schema, RecordBatch[], x.dictionaries),)\n    else\n        return (\n            DataFile(x.schema, [x.batches[i]], x.dictionaries) for i = 1:length(x.batches)\n        )\n    end\nend\n\nTables.columns(x::DataFile) = x\n\nfunction Tables.schema(x::DataFile)\n    names = map(x -> x.name, x.schema.fields)\n    types = map(x -> juliatype(x), x.schema.fields)\n    return Tables.Schema(names, types)\nend\n\nTables.columnnames(x::DataFile) = map(x -> Symbol(x.name), x.schema.fields)\n\nfunction Tables.getcolumn(x::DataFile, i::Base.Int)\n    field = x.schema.fields[i]\n    type = juliatype(field)\n    return ChainedVector(\n        ArrowArray{type}[\n            ArrowArray{type}(\n                field,\n                length(x.batches) > 0 ? x.batches[j].columns[i] : FieldData(),\n                x.dictionaries,\n            ) for j = 1:length(x.batches)\n        ],\n    )\nend\n\nfunction Tables.getcolumn(x::DataFile, nm::Symbol)\n    i = findfirst(x -> x.name == String(nm), x.schema.fields)\n    return Tables.getcolumn(x, i)\nend\n\nstruct ArrowArray{T} <: AbstractVector{T}\n    field::Field\n    fielddata::FieldData\n    dictionaries::Vector{DictionaryBatch}\nend\nArrowArray(f::Field, fd::FieldData, d) = ArrowArray{juliatype(f)}(f, fd, d)\nBase.size(x::ArrowArray) = (x.fielddata.count,)\n\nfunction Base.getindex(x::ArrowArray{T}, i::Base.Int) where {T}\n    @boundscheck checkbounds(x, i)\n    S = Base.nonmissingtype(T)\n    if x.field.dictionary !== nothing\n        fielddata =\n            x.dictionaries[findfirst(y -> y.id == x.field.dictionary.id, x.dictionaries)].data.columns[1]\n        field = copy(x.field)\n        field.dictionary = nothing\n        idx = x.fielddata.DATA[i] + 1\n        return ArrowArray(field, fielddata, x.dictionaries)[idx]\n    end\n    if T === Missing\n        return missing\n    elseif S <: UnionT\n        U = eltype(S)\n        tids = Arrow.typeids(S) === nothing ? (0:fieldcount(U)) : Arrow.typeids(S)\n        typeid = tids[x.fielddata.TYPE_ID[i]]\n        if Arrow.unionmode(S) == Arrow.Meta.UnionMode.DENSE\n            off = x.fielddata.OFFSET[i]\n            return ArrowArray(\n                x.field.children[typeid + 1],\n                x.fielddata.children[typeid + 1],\n                x.dictionaries,\n            )[off]\n        else\n            return ArrowArray(\n                x.field.children[typeid + 1],\n                x.fielddata.children[typeid + 1],\n                x.dictionaries,\n            )[i]\n        end\n    end\n    x.fielddata.VALIDITY[i] == 0 && return missing\n    if S <: Vector{UInt8}\n        return copy(codeunits(x.fielddata.DATA[i]))\n    elseif S <: String\n        return x.fielddata.DATA[i]\n    elseif S <: Vector\n        offs = x.fielddata.OFFSET\n        A = ArrowArray{eltype(S)}(\n            x.field.children[1],\n            x.fielddata.children[1],\n            x.dictionaries,\n        )\n        return A[(offs[i] + 1):offs[i + 1]]\n    elseif S <: Dict\n        offs = x.fielddata.OFFSET\n        A = ArrowArray(x.field.children[1], x.fielddata.children[1], x.dictionaries)\n        return Dict(y.key => y.value for y in A[(offs[i] + 1):offs[i + 1]])\n    elseif S <: Tuple\n        if Arrow.ArrowTypes.gettype(Arrow.ArrowTypes.ArrowKind(S)) == UInt8\n            A = x.fielddata.DATA\n            return Tuple(map(UInt8, collect(A[i][1:(x.field.type.byteWidth)])))\n        else\n            sz = x.field.type.listSize\n            A = ArrowArray{Arrow.ArrowTypes.gettype(Arrow.ArrowTypes.ArrowKind(S))}(\n                x.field.children[1],\n                x.fielddata.children[1],\n                x.dictionaries,\n            )\n            off = (i - 1) * sz + 1\n            return Tuple(A[off:(off + sz - 1)])\n        end\n    elseif S <: NamedTuple\n        data = (\n            ArrowArray(x.field.children[j], x.fielddata.children[j], x.dictionaries)[i] for\n            j = 1:length(x.field.children)\n        )\n        return NamedTuple{fieldnames(S)}(Tuple(data))\n    elseif S == Int64 || S == UInt64\n        return parse(S, x.fielddata.DATA[i])\n    elseif S <: Arrow.Decimal\n        str = x.fielddata.DATA[i]\n        return S(parse(Int128, str))\n    elseif S <: Arrow.Date || S <: Arrow.Time\n        val = x.fielddata.DATA[i]\n        return Arrow.storagetype(S) == Int32 ? S(val) : S(parse(Int64, val))\n    elseif S <: Arrow.Timestamp\n        return S(parse(Int64, x.fielddata.DATA[i]))\n    else\n        return S(x.fielddata.DATA[i])\n    end\nend\n\n# take any Tables.jl source and write out arrow json datafile\nfunction DataFile(source)\n    fields = Field[]\n    metadata = nothing # TODO?\n    batches = RecordBatch[]\n    dictionaries = DictionaryBatch[]\n    dictencodings = Dict{String,Tuple{Base.Type,DictEncoding}}()\n    dictid = Ref(0)\n    for (i, tbl1) in Tables.partitions(source)\n        tbl = Arrow.toarrowtable(Table.Columns(tbl1))\n        if i == 1\n            sch = Tables.schema(tbl)\n            for (nm, T, col) in zip(sch.names, sch.types, tbl)\n                if col isa Arrow.DictEncode\n                    id = dictid[]\n                    dictid[] += 1\n                    codes = DataAPI.refarray(col.data)\n                    if codes !== col.data\n                        IT = Type(eltype(codes))\n                    else\n                        IT = Type(Arrow.encodingtype(length(unique(col))))\n                    end\n                    dictencodings[String(nm)] = (T, DictEncoding(id, IT, false))\n                end\n                push!(fields, Field(String(nm), T, dictencodings))\n            end\n        end\n        # build record batch\n        len = Tables.rowcount(tbl)\n        columns = FieldData[]\n        for (nm, T, col) in zip(sch.names, sch.types, tbl)\n            push!(columns, FieldData(String(nm), T, col, dictencodings))\n        end\n        push!(batches, RecordBatch(len, columns))\n        # build dictionaries\n        for (nm, (T, dictencoding)) in dictencodings\n            column = FieldData(nm, T, Tables.getcolumn(tbl, nm), nothing)\n            recordbatch = RecordBatch(len, [column])\n            push!(dictionaries, DictionaryBatch(dictencoding.id, recordbatch))\n        end\n    end\n    schema = Schema(fields, metadata)\n    return DataFile(schema, batches, dictionaries)\nend\n\nfunction Base.isequal(df::DataFile, tbl::Arrow.Table)\n    Arrow.is_equivalent_schema(Tables.schema(df), Tables.schema(tbl)) || return false\n    i = 1\n    for (col1, col2) in zip(Tables.Columns(df), Tables.Columns(tbl))\n        if !isequal(col1, col2)\n            @show i\n            return false\n        end\n        i += 1\n    end\n    return true\nend\n\nend\n"
  },
  {
    "path": "test/dates.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport Dates\nimport TimeZones\n\nstruct WrappedDate\n    x::Dates.Date\nend\n\nArrowTypes.arrowname(::Type{WrappedDate}) = Symbol(\"JuliaLang.WrappedDate\")\nArrowTypes.JuliaType(::Val{Symbol(\"JuliaLang.WrappedDate\")}) = WrappedDate\n\nstruct WrappedTime\n    x::Dates.Time\nend\n\nArrowTypes.arrowname(::Type{WrappedTime}) = Symbol(\"JuliaLang.WrappedTime\")\nArrowTypes.JuliaType(::Val{Symbol(\"JuliaLang.WrappedTime\")}) = WrappedTime\n\nstruct WrappedDateTime\n    x::Dates.DateTime\nend\n\nArrowTypes.arrowname(::Type{WrappedDateTime}) = Symbol(\"JuliaLang.WrappedDateTime\")\nArrowTypes.JuliaType(::Val{Symbol(\"JuliaLang.WrappedDateTime\")}) = WrappedDateTime\n\nstruct WrappedZonedDateTime\n    x::TimeZones.ZonedDateTime\nend\n\nArrowTypes.arrowname(::Type{WrappedZonedDateTime}) =\n    Symbol(\"JuliaLang.WrappedZonedDateTime\")\nArrowTypes.JuliaType(::Val{Symbol(\"JuliaLang.WrappedZonedDateTime\")}) = WrappedZonedDateTime\n\n@testset \"Date and time wrappers with missing\" begin\n    for T in (WrappedDate, WrappedTime, WrappedDateTime, WrappedZonedDateTime)\n        if T == WrappedZonedDateTime\n            time = T(Dates.now(TimeZones.tz\"UTC\"))\n        else\n            time = T(Dates.now())\n        end\n        table = (; x=[missing, missing, time, missing, time])\n        io = Arrow.tobuffer(table)\n        tbl = Arrow.Table(io)\n        @test isequal(collect(tbl.x), table.x)\n    end\nend\n\n@testset \"`default(T) isa T`\" begin\n    for T in (\n        Dates.Date,\n        Dates.Time,\n        Dates.DateTime,\n        TimeZones.ZonedDateTime,\n        Dates.Nanosecond,\n        Dates.Millisecond,\n        Dates.Second,\n        Dates.Day,\n        Dates.Month,\n        Dates.Year,\n    )\n        @test Arrow.ArrowTypes.default(T) isa T\n    end\nend\n"
  },
  {
    "path": "test/integrationtest.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nusing Arrow, Tables, Test\n\ninclude(joinpath(dirname(pathof(Arrow)), \"../test/arrowjson.jl\"))\n# using .ArrowJSON\n\nfunction runcommand(jsonname, arrowname, mode, verbose)\n    if jsonname == \"\"\n        error(\"must provide json file name\")\n    end\n    if arrowname == \"\"\n        error(\"must provide arrow file name\")\n    end\n\n    if mode == \"ARROW_TO_JSON\"\n        tbl = Arrow.Table(arrowname)\n        df = ArrowJSON.DataFile(tbl)\n        open(jsonname, \"w\") do io\n            JSON3.write(io, df)\n        end\n    elseif mode == \"JSON_TO_ARROW\"\n        df = ArrowJSON.parsefile(jsonname)\n        open(arrowname, \"w\") do io\n            Arrow.write(io, df)\n        end\n    elseif mode == \"VALIDATE\"\n        df = ArrowJSON.parsefile(jsonname)\n        tbl = Arrow.Table(arrowname)\n        @test isequal(df, tbl)\n    else\n        error(\"unknown integration test mode: $mode\")\n    end\n    return\nend\n"
  },
  {
    "path": "test/pyarrow_roundtrip.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nENV[\"PYTHON\"] = \"python3\"\nimport PyCall\npa = PyCall.pyimport(\"pyarrow\")\ninclude(joinpath(dirname(pathof(Arrow)), \"../test/testtables.jl\"))\n\nfor (nm, t, writekw, readkw, extratests) in testtables\n    nm == \"unions\" && continue\n    @testset \"pyarrow roundtrip: $nm\" begin\n        io = IOBuffer()\n        Arrow.write(io, t; writekw...)\n        seekstart(io)\n        buf = PyCall.pybytes(take!(io))\n        reader = pa.ipc.open_stream(buf)\n        sink = pa.BufferOutputStream()\n        writer = pa.ipc.new_stream(sink, reader.schema)\n        for batch in reader\n            writer.write_batch(batch)\n        end\n        writer.close()\n        buf = sink.getvalue()\n        jbytes = copy(reinterpret(UInt8, buf))\n        tt = Arrow.Table(jbytes)\n    end\n    @testset \"pyarrow roundtrip w/ compression: $nm\" begin\n        io = IOBuffer()\n        Arrow.write(io, t; compress=((:lz4, :zstd)[rand(1:2)]), writekw...)\n        seekstart(io)\n        buf = PyCall.pybytes(take!(io))\n        reader = pa.ipc.open_stream(buf)\n        sink = pa.BufferOutputStream()\n        writer = pa.ipc.new_stream(sink, reader.schema)\n        for batch in reader\n            writer.write_batch(batch)\n        end\n        writer.close()\n        buf = sink.getvalue()\n        jbytes = copy(reinterpret(UInt8, buf))\n        tt = Arrow.Table(jbytes)\n    end\nend\n\nf1 = pa.field(\"f1\", pa.float64(), true)\nf2 = pa.field(\"f2\", pa.int64(), false)\nfu = pa.field(\"col1\", pa.union([f1, f2], \"dense\"))\nsch = pa.schema([fu])\n\nxs = pa.array([2.0, 4.0, PyCall.pynothing[]], type=pa.float64())\nys = pa.array([1, 3], type=pa.int64())\ntypes = pa.array([0, 1, 0, 1, 1], type=pa.int8())\noffsets = pa.array([0, 0, 1, 1, 2], type=pa.int32())\nunion_arr = pa.UnionArray.from_dense(types, offsets, [xs, ys])\ndata = [union_arr]\nbatch = pa.record_batch(data, names=[\"col1\"])\nsink = pa.BufferOutputStream()\nwriter = pa.ipc.new_stream(sink, batch.schema)\nwriter.write_batch(batch)\nwriter.close()\nbuf = sink.getvalue()\njbytes = copy(reinterpret(UInt8, buf))\ntt = Arrow.Table(jbytes)\n"
  },
  {
    "path": "test/runtests.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nusing Test\nusing Arrow\nusing ArrowTypes\nusing Tables\nusing Dates\nusing PooledArrays\nusing TimeZones\nusing UUIDs\nusing Sockets\nusing CategoricalArrays\nusing DataAPI\nusing FilePathsBase\nusing DataFrames\nusing OffsetArrays\nimport Random: randstring\nusing TestSetExtensions: ExtendedTestSet\n\n# this formulation tests the loaded ArrowTypes, even if it's not the dev version\n# within the mono-repo\ninclude(joinpath(dirname(pathof(ArrowTypes)), \"../test/tests.jl\"))\n\ninclude(joinpath(@__DIR__, \"testtables.jl\"))\ninclude(joinpath(@__DIR__, \"testappend.jl\"))\ninclude(joinpath(@__DIR__, \"integrationtest.jl\"))\ninclude(joinpath(@__DIR__, \"dates.jl\"))\n\nstruct CustomStruct\n    x::Int\n    y::Float64\n    z::String\nend\n\nstruct CustomStruct2{sym}\n    x::Int\nend\n\n@testset ExtendedTestSet \"Arrow\" begin\n    @testset \"table roundtrips\" begin\n        for case in testtables\n            testtable(case...)\n        end\n    end # @testset \"table roundtrips\"\n\n    @testset \"table append\" begin\n        # skip windows since file locking prevents mktemp cleanup\n        if !Sys.iswindows()\n            for case in testtables\n                testappend(case...)\n            end\n\n            testappend_partitions()\n\n            for compression_option in (:lz4, :zstd)\n                testappend_compression(compression_option)\n            end\n        end\n    end # @testset \"table append\"\n\n    @testset \"arrow json integration tests\" begin\n        for file in readdir(joinpath(dirname(pathof(Arrow)), \"../test/arrowjson\"))\n            jsonfile = joinpath(joinpath(dirname(pathof(Arrow)), \"../test/arrowjson\"), file)\n            @testset \"integration test for $jsonfile\" begin\n                df = ArrowJSON.parsefile(jsonfile)\n                io = Arrow.tobuffer(df)\n                tbl = Arrow.Table(io; convert=false)\n                @test isequal(df, tbl)\n            end\n        end\n    end # @testset \"arrow json integration tests\"\n\n    @testset \"abstract path\" begin\n        # Make a custom path type that simulates how AWSS3.jl's S3Path works\n        struct CustomPath <: AbstractPath\n            path::PosixPath\n        end\n\n        Base.read(p::CustomPath) = read(p.path)\n\n        io = Arrow.tobuffer((col=[0],))\n        tt = Arrow.Table(io)\n\n        mktempdir() do dir\n            p = Path(joinpath(dir, \"test.arrow\"))\n            Arrow.write(p, tt)\n            @test isfile(p)\n\n            # skip windows since file locking prevents mktemp cleanup\n            if !Sys.iswindows()\n                tt2 = Arrow.Table(p)\n                @test values(tt) == values(tt2)\n\n                tt3 = Arrow.Table(CustomPath(p))\n                @test values(tt) == values(tt3)\n            end\n        end\n    end # @testset \"abstract path\"\n\n    @testset \"misc\" begin\n        @testset \"# multiple record batches\" begin\n            t = Tables.partitioner((\n                (col1=Union{Int64,Missing}[1, 2, 3, 4, 5, 6, 7, 8, 9, missing],),\n                (col1=Union{Int64,Missing}[missing, 11],),\n            ))\n            io = Arrow.tobuffer(t)\n            tt = Arrow.Table(io)\n            @test length(tt) == 1\n            @test isequal(\n                tt.col1,\n                vcat([1, 2, 3, 4, 5, 6, 7, 8, 9, missing], [missing, 11]),\n            )\n            @test eltype(tt.col1) === Union{Int64,Missing}\n\n            # Arrow.Stream\n            seekstart(io)\n            str = Arrow.Stream(io)\n            @test eltype(str) == Arrow.Table\n            @test !Base.isdone(str)\n            state = iterate(str)\n            @test state !== nothing\n            tt, st = state\n            @test length(tt) == 1\n            @test isequal(tt.col1, [1, 2, 3, 4, 5, 6, 7, 8, 9, missing])\n\n            state = iterate(str, st)\n            @test state !== nothing\n            tt, st = state\n            @test length(tt) == 1\n            @test isequal(tt.col1, [missing, 11])\n\n            @test iterate(str, st) === nothing\n\n            @test isequal(collect(str)[1].col1, [1, 2, 3, 4, 5, 6, 7, 8, 9, missing])\n            @test isequal(collect(str)[2].col1, [missing, 11])\n        end\n\n        @testset \"# dictionary batch isDelta\" begin\n            t = (\n                col1=Int64[1, 2, 3, 4],\n                col2=Union{String,Missing}[\"hey\", \"there\", \"sailor\", missing],\n                col3=NamedTuple{\n                    (:a, :b),\n                    Tuple{Int64,Union{Missing,NamedTuple{(:c,),Tuple{String}}}},\n                }[\n                    (a=Int64(1), b=missing),\n                    (a=Int64(1), b=missing),\n                    (a=Int64(3), b=(c=\"sailor\",)),\n                    (a=Int64(4), b=(c=\"jo-bob\",)),\n                ],\n            )\n            t2 = (\n                col1=Int64[1, 2, 5, 6],\n                col2=Union{String,Missing}[\"hey\", \"there\", \"sailor2\", missing],\n                col3=NamedTuple{\n                    (:a, :b),\n                    Tuple{Int64,Union{Missing,NamedTuple{(:c,),Tuple{String}}}},\n                }[\n                    (a=Int64(1), b=missing),\n                    (a=Int64(1), b=missing),\n                    (a=Int64(5), b=(c=\"sailor2\",)),\n                    (a=Int64(4), b=(c=\"jo-bob\",)),\n                ],\n            )\n            tt = Tables.partitioner((t, t2))\n            tt = Arrow.Table(Arrow.tobuffer(tt; dictencode=true, dictencodenested=true))\n            @test tt.col1 == [1, 2, 3, 4, 1, 2, 5, 6]\n            @test isequal(\n                tt.col2,\n                [\"hey\", \"there\", \"sailor\", missing, \"hey\", \"there\", \"sailor2\", missing],\n            )\n            @test isequal(\n                tt.col3,\n                vcat(\n                    NamedTuple{\n                        (:a, :b),\n                        Tuple{Int64,Union{Missing,NamedTuple{(:c,),Tuple{String}}}},\n                    }[\n                        (a=Int64(1), b=missing),\n                        (a=Int64(1), b=missing),\n                        (a=Int64(3), b=(c=\"sailor\",)),\n                        (a=Int64(4), b=(c=\"jo-bob\",)),\n                    ],\n                    NamedTuple{\n                        (:a, :b),\n                        Tuple{Int64,Union{Missing,NamedTuple{(:c,),Tuple{String}}}},\n                    }[\n                        (a=Int64(1), b=missing),\n                        (a=Int64(1), b=missing),\n                        (a=Int64(5), b=(c=\"sailor2\",)),\n                        (a=Int64(4), b=(c=\"jo-bob\",)),\n                    ],\n                ),\n            )\n        end\n\n        @testset \"metadata\" begin\n            t = (col1=Int64[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],)\n            meta = Dict(\"key1\" => \"value1\", \"key2\" => \"value2\")\n            meta2 = Dict(\"colkey1\" => \"colvalue1\", \"colkey2\" => \"colvalue2\")\n            tt = Arrow.Table(\n                Arrow.tobuffer(t; colmetadata=Dict(:col1 => meta2), metadata=meta),\n            )\n            @test length(tt) == length(t)\n            @test tt.col1 == t.col1\n            @test eltype(tt.col1) === Int64\n            @test Arrow.getmetadata(tt) == Arrow.toidict(meta)\n            @test Arrow.getmetadata(tt.col1) == Arrow.toidict(meta2)\n\n            t = (col1=collect(1:10), col2=collect('a':'j'), col3=collect(1:10))\n            meta = (\"key1\" => :value1, :key2 => \"value2\")\n            meta2 = (\"colkey1\" => :colvalue1, :colkey2 => \"colvalue2\")\n            meta3 = (\"colkey3\" => :colvalue3,)\n            tt = Arrow.Table(\n                Arrow.tobuffer(\n                    t;\n                    colmetadata=Dict(:col2 => meta2, :col3 => meta3),\n                    metadata=meta,\n                ),\n            )\n            @test Arrow.getmetadata(tt) ==\n                  Arrow.toidict(String(k) => String(v) for (k, v) in meta)\n            @test Arrow.getmetadata(tt.col1) === nothing\n            @test Arrow.getmetadata(tt.col2)[\"colkey1\"] == \"colvalue1\"\n            @test Arrow.getmetadata(tt.col2)[\"colkey2\"] == \"colvalue2\"\n            @test Arrow.getmetadata(tt.col3)[\"colkey3\"] == \"colvalue3\"\n        end\n\n        @testset \"# custom compressors\" begin\n            lz4 = Arrow.CodecLz4.LZ4FrameCompressor(; compressionlevel=8)\n            Arrow.CodecLz4.TranscodingStreams.initialize(lz4)\n            t = (col1=Int64[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],)\n            tt = Arrow.Table(Arrow.tobuffer(t; compress=lz4))\n            @test length(tt) == length(t)\n            @test all(isequal.(values(t), values(tt)))\n\n            zstd = Arrow.CodecZstd.ZstdCompressor(; level=8)\n            Arrow.CodecZstd.TranscodingStreams.initialize(zstd)\n            t = (col1=Int64[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],)\n            tt = Arrow.Table(Arrow.tobuffer(t; compress=zstd))\n            @test length(tt) == length(t)\n            @test all(isequal.(values(t), values(tt)))\n        end\n\n        @testset \"# custom alignment\" begin\n            t = (col1=Int64[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],)\n            tt = Arrow.Table(Arrow.tobuffer(t; alignment=64))\n            @test length(tt) == length(t)\n            @test all(isequal.(values(t), values(tt)))\n        end\n\n        @testset \"# 53\" begin\n            s = \"a\"^100\n            t = (a=[SubString(s, 1:10), SubString(s, 11:20)],)\n            tt = Arrow.Table(Arrow.tobuffer(t))\n            @test tt.a == [\"aaaaaaaaaa\", \"aaaaaaaaaa\"]\n        end\n\n        @testset \"# 49\" begin\n            @test_throws SystemError Arrow.Table(\"file_that_doesnt_exist\")\n            @test_throws SystemError Arrow.Table(p\"file_that_doesnt_exist\")\n        end\n\n        @testset \"# 52\" begin\n            t = (a=Arrow.DictEncode(string.(1:129)),)\n            tt = Arrow.Table(Arrow.tobuffer(t))\n        end\n\n        @testset \"# 60: unequal column lengths\" begin\n            io = IOBuffer()\n            @test_throws ArgumentError Arrow.write(\n                io,\n                (a=Int[], b=[\"asd\"], c=collect(1:100)),\n            )\n        end\n\n        @testset \"# nullability of custom extension types\" begin\n            t = (a=['a', missing],)\n            tt = Arrow.Table(Arrow.tobuffer(t))\n            @test isequal(tt.a, ['a', missing])\n        end\n\n        @testset \"# automatic custom struct serialization/deserialization\" begin\n            t = (col1=[CustomStruct(1, 2.3, \"hey\"), CustomStruct(4, 5.6, \"there\")],)\n\n            Arrow.ArrowTypes.arrowname(::Type{CustomStruct}) =\n                Symbol(\"JuliaLang.CustomStruct\")\n            Arrow.ArrowTypes.JuliaType(::Val{Symbol(\"JuliaLang.CustomStruct\")}, S) =\n                CustomStruct\n            tt = Arrow.Table(Arrow.tobuffer(t))\n            @test length(tt) == length(t)\n            @test all(isequal.(values(t), values(tt)))\n        end\n\n        @testset \"# 76\" begin\n            t = (col1=NamedTuple{(:a,),Tuple{Union{Int,String}}}[(a=1,), (a=\"x\",)],)\n            tt = Arrow.Table(Arrow.tobuffer(t))\n            @test length(tt) == length(t)\n            @test all(isequal.(values(t), values(tt)))\n        end\n\n        @testset \"# 89 etc. - UUID FixedSizeListKind overloads\" begin\n            @test Arrow.ArrowTypes.gettype(Arrow.ArrowTypes.ArrowKind(UUID)) == UInt8\n            @test Arrow.ArrowTypes.getsize(Arrow.ArrowTypes.ArrowKind(UUID)) == 16\n        end\n\n        @testset \"# 98\" begin\n            t = (\n                a=[Nanosecond(0), Nanosecond(1)],\n                b=[uuid4(), uuid4()],\n                c=[missing, Nanosecond(1)],\n            )\n            tt = Arrow.Table(Arrow.tobuffer(t))\n            @test copy(tt.a) isa Vector{Nanosecond}\n            @test copy(tt.b) isa Vector{UUID}\n            @test copy(tt.c) isa Vector{Union{Missing,Nanosecond}}\n        end\n\n        @testset \"# copy on DictEncoding w/ missing values\" begin\n            x = PooledArray([\"hey\", missing])\n            x2 = Arrow.toarrowvector(x)\n            @test isequal(copy(x2), x)\n        end\n\n        @testset \"# some dict encoding coverage\" begin\n            # signed indices for DictEncodedKind #112 #113 #114\n            av = Arrow.toarrowvector(PooledArray(repeat([\"a\", \"b\"], inner=5)))\n            @test isa(first(av.indices), Signed)\n\n            av = Arrow.toarrowvector(CategoricalArray(repeat([\"a\", \"b\"], inner=5)))\n            @test isa(first(av.indices), Signed)\n\n            av = Arrow.toarrowvector(CategoricalArray([\"a\", \"bb\", missing]))\n            @test isa(first(av.indices), Signed)\n            @test length(av) == 3\n            @test eltype(av) == Union{String,Missing}\n\n            av = Arrow.toarrowvector(CategoricalArray([\"a\", \"bb\", \"ccc\"]))\n            @test isa(first(av.indices), Signed)\n            @test length(av) == 3\n            @test eltype(av) == String\n        end\n\n        @testset \"# 120\" begin\n            x = PooledArray([\"hey\", missing])\n            x2 = Arrow.toarrowvector(x)\n            @test eltype(DataAPI.refpool(x2)) == Union{Missing,String}\n            @test eltype(DataAPI.levels(x2)) == String\n            @test DataAPI.refarray(x2) == [1, 2]\n        end\n\n        @testset \"# 121\" begin\n            a = PooledArray(repeat(string.('S', 1:130), inner=5), compress=true)\n            @test eltype(a.refs) == UInt8\n            av = Arrow.toarrowvector(a)\n            @test eltype(av.indices) == Int16\n        end\n\n        @testset \"# 123\" begin\n            t = (x=collect(zip(rand(10), rand(10))),)\n            tt = Arrow.Table(Arrow.tobuffer(t))\n            @test tt.x == t.x\n        end\n\n        @testset \"# 144\" begin\n            t = Tables.partitioner((\n                (a=Arrow.DictEncode([1, 2, 3]),),\n                (a=Arrow.DictEncode(fill(1, 129)),),\n            ))\n            tt = Arrow.Table(Arrow.tobuffer(t))\n            @test length(tt.a) == 132\n        end\n\n        @testset \"# 126\" begin\n            # XXX This test also captures a race condition in multithreaded\n            # writes of dictionary encoded arrays\n            t = Tables.partitioner((\n                (a=Arrow.toarrowvector(PooledArray([1, 2, 3])),),\n                (a=Arrow.toarrowvector(PooledArray([1, 2, 3, 4])),),\n                (a=Arrow.toarrowvector(PooledArray([1, 2, 3, 4, 5])),),\n            ))\n            tt = Arrow.Table(Arrow.tobuffer(t))\n            @test length(tt.a) == 12\n            @test tt.a == [1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5]\n\n            t = Tables.partitioner((\n                (\n                    a=Arrow.toarrowvector(\n                        PooledArray([1, 2, 3], signed=true, compress=true),\n                    ),\n                ),\n                (a=Arrow.toarrowvector(PooledArray(collect(1:129))),),\n            ))\n            io = IOBuffer()\n            @test_logs (:error, \"error writing arrow data on partition = 2\") begin\n                @test_throws ErrorException Arrow.write(io, t)\n            end\n        end\n\n        @testset \"# 75\" begin\n            tbl = Arrow.Table(Arrow.tobuffer((sets=[Set([1, 2, 3]), Set([1, 2, 3])],)))\n            @test eltype(tbl.sets) <: Set\n        end\n\n        @testset \"# 85\" begin\n            tbl = Arrow.Table(Arrow.tobuffer((tups=[(1, 3.14, \"hey\"), (1, 3.14, \"hey\")],)))\n            @test eltype(tbl.tups) <: Tuple\n        end\n\n        @testset \"Nothing\" begin\n            tbl = Arrow.Table(Arrow.tobuffer((nothings=[nothing, nothing, nothing],)))\n            @test tbl.nothings == [nothing, nothing, nothing]\n        end\n\n        @testset \"arrowmetadata\" begin\n            # arrowmetadata\n            t = (col1=[CustomStruct2{:hey}(1), CustomStruct2{:hey}(2)],)\n            ArrowTypes.arrowname(::Type{<:CustomStruct2}) = Symbol(\"CustomStruct2\")\n            @test_logs (:warn, r\"unsupported ARROW:extension:name type: \\\"CustomStruct2\\\"\") begin\n                tbl = Arrow.Table(Arrow.tobuffer(t))\n            end\n            @test eltype(tbl.col1) <: NamedTuple\n            ArrowTypes.arrowmetadata(::Type{CustomStruct2{sym}}) where {sym} = sym\n            ArrowTypes.JuliaType(::Val{:CustomStruct2}, S, meta) =\n                CustomStruct2{Symbol(meta)}\n            tbl = Arrow.Table(Arrow.tobuffer(t))\n            @test eltype(tbl.col1) == CustomStruct2{:hey}\n        end\n\n        @testset \"# 166\" begin\n            t = (col1=[zero(Arrow.Timestamp{Arrow.Meta.TimeUnit.NANOSECOND,nothing})],)\n            tbl = Arrow.Table(Arrow.tobuffer(t))\n            @test_logs (\n                :warn,\n                r\"automatically converting Arrow.Timestamp with precision = NANOSECOND\",\n            ) begin\n                @test tbl.col1[1] == Dates.DateTime(1970)\n            end\n        end\n\n        @testset \"# 95; Arrow.ToTimestamp\" begin\n            x = [ZonedDateTime(Dates.DateTime(2020), tz\"Europe/Paris\")]\n            c = Arrow.ToTimestamp(x)\n            @test eltype(c) ==\n                  Arrow.Timestamp{Arrow.Flatbuf.TimeUnit.MILLISECOND,Symbol(\"Europe/Paris\")}\n            @test c[1] ==\n                  Arrow.Timestamp{Arrow.Flatbuf.TimeUnit.MILLISECOND,Symbol(\"Europe/Paris\")}(\n                1577833200000,\n            )\n        end\n\n        @testset \"# 158\" begin\n            # arrow ipc stream generated from pyarrow with no record batches\n            bytes = UInt8[\n                0xff,\n                0xff,\n                0xff,\n                0xff,\n                0x78,\n                0x00,\n                0x00,\n                0x00,\n                0x10,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x0a,\n                0x00,\n                0x0c,\n                0x00,\n                0x06,\n                0x00,\n                0x05,\n                0x00,\n                0x08,\n                0x00,\n                0x0a,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x01,\n                0x04,\n                0x00,\n                0x0c,\n                0x00,\n                0x00,\n                0x00,\n                0x08,\n                0x00,\n                0x08,\n                0x00,\n                0x00,\n                0x00,\n                0x04,\n                0x00,\n                0x08,\n                0x00,\n                0x00,\n                0x00,\n                0x04,\n                0x00,\n                0x00,\n                0x00,\n                0x01,\n                0x00,\n                0x00,\n                0x00,\n                0x14,\n                0x00,\n                0x00,\n                0x00,\n                0x10,\n                0x00,\n                0x14,\n                0x00,\n                0x08,\n                0x00,\n                0x06,\n                0x00,\n                0x07,\n                0x00,\n                0x0c,\n                0x00,\n                0x00,\n                0x00,\n                0x10,\n                0x00,\n                0x10,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x01,\n                0x02,\n                0x10,\n                0x00,\n                0x00,\n                0x00,\n                0x1c,\n                0x00,\n                0x00,\n                0x00,\n                0x04,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x01,\n                0x00,\n                0x00,\n                0x00,\n                0x61,\n                0x00,\n                0x00,\n                0x00,\n                0x08,\n                0x00,\n                0x0c,\n                0x00,\n                0x08,\n                0x00,\n                0x07,\n                0x00,\n                0x08,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x01,\n                0x40,\n                0x00,\n                0x00,\n                0x00,\n                0xff,\n                0xff,\n                0xff,\n                0xff,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n            ]\n            tbl = Arrow.Table(bytes)\n            @test length(tbl.a) == 0\n            @test eltype(tbl.a) == Union{Int64,Missing}\n        end\n\n        @testset \"# 181\" begin\n            # XXX this test hangs on Julia 1.12 when using a deeper nesting\n            d = Dict{Int,Int}()\n            for i = 1:1\n                d = Dict(i => d)\n            end\n            tbl = (x=[d],)\n            msg = \"reached nested serialization level (2) deeper than provided max depth argument (1); to increase allowed nesting level, pass `maxdepth=X`\"\n            @test_throws ErrorException(msg) Arrow.tobuffer(tbl; maxdepth=1)\n            @test Arrow.Table(Arrow.tobuffer(tbl; maxdepth=5)).x == tbl.x\n        end\n\n        @testset \"# 167\" begin\n            t = (col1=[[\"boop\", \"she\"], [\"boop\", \"she\"], [\"boo\"]],)\n            tbl = Arrow.Table(Arrow.tobuffer(t))\n            @test eltype(tbl.col1) <: AbstractVector{String}\n        end\n\n        @testset \"# 200 VersionNumber\" begin\n            t = (col1=[v\"1\"],)\n            tbl = Arrow.Table(Arrow.tobuffer(t))\n            @test eltype(tbl.col1) == VersionNumber\n        end\n\n        @testset \"`show`\" begin\n            str = nothing\n            table = (; a=1:5, b=fill(1.0, 5))\n            arrow_table = Arrow.Table(Arrow.tobuffer(table))\n            # 2 and 3-arg show with no metadata\n            for outer str in\n                (sprint(show, arrow_table), sprint(show, MIME\"text/plain\"(), arrow_table))\n                @test length(str) < 100\n                @test occursin(\"5 rows\", str)\n                @test occursin(\"2 columns\", str)\n                @test occursin(\"Int\", str)\n                @test occursin(\"Float64\", str)\n                @test !occursin(\"metadata entries\", str)\n            end\n\n            # 2-arg show with metadata\n            big_dict = Dict((randstring(rand(5:10)) => randstring(rand(1:3)) for _ = 1:100))\n            arrow_table = Arrow.Table(Arrow.tobuffer(table; metadata=big_dict))\n            str2 = sprint(show, arrow_table)\n            @test length(str2) > length(str)\n            @test length(str2) < 200\n            @test occursin(\"metadata entries\", str2)\n\n            # 3-arg show with metadata\n            str3 = sprint(\n                show,\n                MIME\"text/plain\"(),\n                arrow_table;\n                context=IOContext(IOBuffer(), :displaysize => (24, 100), :limit => true),\n            )\n            @test length(str3) < 1000\n            # some but not too many `=>`'s for printing the metadata\n            @test 5 < length(collect(eachmatch(r\"=>\", str3))) < 20\n        end\n\n        @testset \"# 194\" begin\n            @test isempty(Arrow.Table(Arrow.tobuffer(Dict{Symbol,Vector}())))\n        end\n\n        @testset \"# 229\" begin\n            struct Foo229{x}\n                y::String\n                z::Int\n            end\n            Arrow.ArrowTypes.arrowname(::Type{<:Foo229}) = Symbol(\"JuliaLang.Foo229\")\n            Arrow.ArrowTypes.ArrowType(::Type{Foo229{x}}) where {x} =\n                Tuple{String,String,Int}\n            Arrow.ArrowTypes.toarrow(row::Foo229{x}) where {x} = (String(x), row.y, row.z)\n            Arrow.ArrowTypes.JuliaType(::Val{Symbol(\"JuliaLang.Foo229\")}, ::Any) = Foo229\n            Arrow.ArrowTypes.fromarrow(::Type{<:Foo229}, x, y, z) = Foo229{Symbol(x)}(y, z)\n            cols = (\n                k1=[Foo229{:a}(\"a\", 1), Foo229{:b}(\"b\", 2)],\n                k2=[Foo229{:c}(\"c\", 3), Foo229{:d}(\"d\", 4)],\n            )\n            tbl = Arrow.Table(Arrow.tobuffer(cols))\n            @test tbl.k1 == cols.k1\n            @test tbl.k2 == cols.k2\n        end\n\n        @testset \"# PR 234\" begin\n            # bugfix parsing primitive arrays\n            buf = [\n                0x14,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x0e,\n                0x00,\n                0x14,\n                0x00,\n                0x00,\n                0x00,\n                0x10,\n                0x00,\n                0x0c,\n                0x00,\n                0x08,\n                0x00,\n                0x04,\n                0x00,\n                0x0e,\n                0x00,\n                0x00,\n                0x00,\n                0x2c,\n                0x00,\n                0x00,\n                0x00,\n                0x38,\n                0x00,\n                0x00,\n                0x00,\n                0x38,\n                0x00,\n                0x00,\n                0x00,\n                0x38,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x03,\n                0x00,\n                0x00,\n                0x00,\n                0x01,\n                0x00,\n                0x00,\n                0x00,\n                0x02,\n                0x00,\n                0x00,\n                0x00,\n                0x03,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n                0x00,\n            ]\n\n            struct TestData <: Arrow.FlatBuffers.Table\n                bytes::Vector{UInt8}\n                pos::Base.Int\n            end\n\n            function Base.getproperty(x::TestData, field::Symbol)\n                if field === :DataInt32\n                    o = Arrow.FlatBuffers.offset(x, 12)\n                    o != 0 && return Arrow.FlatBuffers.Array{Int32}(x, o)\n                else\n                    @warn \"field $field not supported\"\n                end\n            end\n\n            d = Arrow.FlatBuffers.getrootas(TestData, buf, 0)\n            @test d.DataInt32 == UInt32[1, 2, 3]\n        end\n\n        @testset \"# test multiple inputs treated as one table\" begin\n            t = (col1=[1, 2, 3, 4, 5], col2=[1.2, 2.3, 3.4, 4.5, 5.6])\n            tbl = Arrow.Table([Arrow.tobuffer(t), Arrow.tobuffer(t)])\n            @test tbl.col1 == [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]\n            @test tbl.col2 == [1.2, 2.3, 3.4, 4.5, 5.6, 1.2, 2.3, 3.4, 4.5, 5.6]\n\n            # schemas must match between multiple inputs\n            t2 = (col1=[1.2, 2.3, 3.4, 4.5, 5.6],)\n            @test_throws ArgumentError Arrow.Table([Arrow.tobuffer(t), Arrow.tobuffer(t2)])\n\n            # test multiple inputs treated as one table\n            tbls = collect(Arrow.Stream([Arrow.tobuffer(t), Arrow.tobuffer(t)]))\n            @test tbls[1].col1 == tbls[2].col1\n            @test tbls[1].col2 == tbls[2].col2\n\n            # schemas must match between multiple inputs\n            t2 = (col1=[1.2, 2.3, 3.4, 4.5, 5.6],)\n            @test_throws ArgumentError collect(\n                Arrow.Stream([Arrow.tobuffer(t), Arrow.tobuffer(t2)]),\n            )\n        end\n\n        @testset \"# 253\" begin\n            # https://github.com/apache/arrow-julia/issues/253\n            @test Arrow.toidict(Pair{String,String}[]) ==\n                  Base.ImmutableDict{String,String}()\n        end\n\n        @testset \"# 232\" begin\n            # https://github.com/apache/arrow-julia/issues/232\n            t = (; x=[Dict(true => 1.32, 1.2 => 0.53495216)])\n            @test_throws ArgumentError(\n                \"`keytype(d)` must be concrete to serialize map-like `d`, but `keytype(d) == Real`\",\n            ) Arrow.tobuffer(t)\n            t = (; x=[Dict(32.0 => true, 1.2 => 0.53495216)])\n            @test_throws ArgumentError(\n                \"`valtype(d)` must be concrete to serialize map-like `d`, but `valtype(d) == Real`\",\n            ) Arrow.tobuffer(t)\n            t = (; x=[Dict(true => 1.32, 1.2 => true)])\n            @test_throws ArgumentError(\n                \"`keytype(d)` must be concrete to serialize map-like `d`, but `keytype(d) == Real`\",\n            ) Arrow.tobuffer(t)\n        end\n\n        @testset \"# 214\" begin\n            # https://github.com/apache/arrow-julia/issues/214\n            t1 = (; x=[(Nanosecond(42),)])\n            t2 = Arrow.Table(Arrow.tobuffer(t1))\n            t3 = Arrow.Table(Arrow.tobuffer(t2))\n            @test t3.x == t1.x\n\n            t1 = (; x=[(; a=Nanosecond(i), b=Nanosecond(i + 1)) for i = 1:5])\n            t2 = Arrow.Table(Arrow.tobuffer(t1))\n            t3 = Arrow.Table(Arrow.tobuffer(t2))\n            @test t3.x == t1.x\n        end\n\n        @testset \"Writer\" begin\n            io = IOBuffer()\n            writer = open(Arrow.Writer, io)\n            a = 1:26\n            b = 'A':'Z'\n            partitionsize = 10\n            iter_a = Iterators.partition(a, partitionsize)\n            iter_b = Iterators.partition(b, partitionsize)\n            for (part_a, part_b) in zip(iter_a, iter_b)\n                Arrow.write(writer, (a=part_a, b=part_b))\n            end\n            close(writer)\n            seekstart(io)\n            table = Arrow.Table(io)\n            @test table.a == collect(a)\n            @test table.b == collect(b)\n        end\n\n        @testset \"# Empty input\" begin\n            @test Arrow.Table(UInt8[]) isa Arrow.Table\n            @test isempty(Tables.rows(Arrow.Table(UInt8[])))\n            @test Arrow.Stream(UInt8[]) isa Arrow.Stream\n            @test isempty(Tables.partitions(Arrow.Stream(UInt8[])))\n        end\n\n        @testset \"# 324\" begin\n            # https://github.com/apache/arrow-julia/issues/324\n            @test_throws ArgumentError filter!(x -> x > 1, Arrow.toarrowvector([1, 2, 3]))\n        end\n\n        @testset \"# 327\" begin\n            # https://github.com/apache/arrow-julia/issues/327\n            zdt =\n                ZonedDateTime(DateTime(2020, 11, 1, 6), tz\"America/New_York\"; from_utc=true)\n            arrow_zdt = ArrowTypes.toarrow(zdt)\n            zdt_again = ArrowTypes.fromarrow(ZonedDateTime, arrow_zdt)\n            @test zdt == zdt_again\n\n            # Check that we still correctly read in old TimeZones\n            original_table =\n                (; col=[ZonedDateTime(DateTime(1, 2, 3, 4, 5, 6), tz\"UTC+3\") for _ = 1:5])\n            table = Arrow.Table(joinpath(@__DIR__, \"old_zdt.arrow\"))\n            @test original_table.col == table.col\n        end\n\n        @testset \"# 243\" begin\n            table = (; col=[(; v=v\"1\"), (; v=v\"2\"), missing])\n            @test isequal(Arrow.Table(Arrow.tobuffer(table)).col, table.col)\n        end\n\n        @testset \"# 367\" begin\n            t = (; x=Union{ZonedDateTime,Missing}[missing])\n            a = Arrow.Table(Arrow.tobuffer(t))\n            @test Tables.schema(a) == Tables.schema(t)\n            @test isequal(a.x, t.x)\n        end\n\n        # https://github.com/apache/arrow-julia/issues/414\n        df = DataFrame((\"$i\" => rand(1000) for i = 1:65536)...)\n        df_load = Arrow.Table(Arrow.tobuffer(df))\n        @test Tables.schema(df) == Tables.schema(df_load)\n        for (col1, col2) in zip(Tables.columns(df), Tables.columns(df_load))\n            @test col1 == col2\n        end\n\n        @testset \"# 411\" begin\n            # Vector{UInt8} are written as List{UInt8} in Arrow\n            # Base.CodeUnits are written as Binary\n            t = (\n                a=[[0x00, 0x01], UInt8[], [0x03]],\n                am=[[0x00, 0x01], [0x03], missing],\n                b=[b\"01\", b\"\", b\"3\"],\n                bm=[b\"01\", b\"3\", missing],\n                c=[\"a\", \"b\", \"c\"],\n                cm=[\"a\", \"c\", missing],\n            )\n            buf = Arrow.tobuffer(t)\n            tt = Arrow.Table(buf)\n            @test t.a == tt.a\n            @test isequal(t.am, tt.am)\n            @test t.b == tt.b\n            @test isequal(t.bm, tt.bm)\n            @test t.c == tt.c\n            @test isequal(t.cm, tt.cm)\n            @test Arrow.schema(tt)[].fields[1].type isa Arrow.Flatbuf.List\n            @test Arrow.schema(tt)[].fields[3].type isa Arrow.Flatbuf.Binary\n            pos = position(buf)\n            Arrow.append(buf, tt)\n            seekstart(buf)\n            buf1 = read(buf, pos)\n            buf2 = read(buf)\n            t1 = Arrow.Table(buf1)\n            t2 = Arrow.Table(buf2)\n            @test isequal(t1.a, t2.a)\n            @test isequal(t1.am, t2.am)\n            @test isequal(t1.b, t2.b)\n            @test isequal(t1.bm, t2.bm)\n            @test isequal(t1.c, t2.c)\n            @test isequal(t1.cm, t2.cm)\n        end\n\n        @testset \"# 435\" begin\n            t = Arrow.Table(\n                joinpath(dirname(pathof(Arrow)), \"../test/java_compress_len_neg_one.arrow\"),\n            )\n            @test length(t) == 15\n            @test length(t.isA) == 102\n        end\n\n        @testset \"# 293\" begin\n            t = (a=[1, 2, 3], b=[1.0, 2.0, 3.0])\n            buf = Arrow.tobuffer(t)\n            tbl = Arrow.Table(buf)\n            parts = Tables.partitioner((t, t))\n            buf2 = Arrow.tobuffer(parts)\n            tbl2 = Arrow.Table(buf2)\n            for t in Tables.partitions(tbl2)\n                @test t.a == tbl.a\n                @test t.b == tbl.b\n            end\n        end\n\n        @testset \"# 437\" begin\n            t = Arrow.Table(\n                joinpath(\n                    dirname(pathof(Arrow)),\n                    \"../test/java_compressed_zero_length.arrow\",\n                ),\n            )\n            @test length(t) == 2\n            @test length(t.name) == 0\n        end\n\n        @testset \"# 458\" begin\n            x = (; a=[[[[1]]]])\n            buf = Arrow.tobuffer(x)\n            t = Arrow.Table(buf)\n            @test t.a[1][1][1][1] == 1\n        end\n\n        @testset \"# 456\" begin\n            NT = @NamedTuple{x::Int, y::Union{Missing,Int}}\n            data = NT[(x=1, y=2), (x=2, y=missing), (x=3, y=4), (x=4, y=5)]\n            t = [(a=1, b=view(data, 1:2)), (a=2, b=view(data, 3:4)), missing]\n            @test Arrow.toarrowvector(t) isa Arrow.Struct\n        end\n\n        # @testset \"# 461\" begin\n\n        # table = (; v=[v\"1\", v\"2\", missing])\n        # buf = Arrow.tobuffer(table)\n        # table2 = Arrow.Table(buf)\n        # @test isequal(table.v, table2.v)\n\n        # end\n        if isdefined(ArrowTypes, :StructElement)\n            @testset \"# 493\" begin\n                # This test stresses the existence of the mechanism\n                # implemented in https://github.com/apache/arrow-julia/pull/493,\n                # but doesn't stress the actual use case that motivates\n                # that mechanism, simply because it'd be more annoying to\n                # write that test; see the PR for details.\n                struct Foo493\n                    x::Int\n                    y::Int\n                end\n                ArrowTypes.arrowname(::Type{Foo493}) = Symbol(\"JuliaLang.Foo493\")\n                ArrowTypes.JuliaType(::Val{Symbol(\"JuliaLang.Foo493\")}, T) = Foo493\n                function ArrowTypes.fromarrowstruct(\n                    ::Type{Foo493},\n                    ::Val{fnames},\n                    x...,\n                ) where {fnames}\n                    nt = NamedTuple{fnames}(x)\n                    return Foo493(nt.x + 1, nt.y + 1)\n                end\n                t = (; f=[Foo493(1, 2), Foo493(3, 4)])\n                buf = Arrow.tobuffer(t)\n                tbl = Arrow.Table(buf)\n                @test tbl.f[1] === Foo493(2, 3)\n                @test tbl.f[2] === Foo493(4, 5)\n            end\n        end\n\n        @testset \"# 504\" begin\n            struct Foo504\n                x::Int\n            end\n\n            struct Bar504\n                a::Foo504\n            end\n\n            v = [Bar504(Foo504(i)) for i = 1:3]\n            io = IOBuffer()\n            Arrow.write(io, v; file=false)\n            seekstart(io)\n            Arrow.append(io, v) # testing the compatility between the schema of the arrow Table, and the \"schema\" of v (using the fallback mechanism of Tables.jl)\n            seekstart(io)\n            t = Arrow.Table(io)\n            @test Arrow.Tables.rowcount(t) == 6\n        end\n\n        @testset \"# 526: Arrow.Time\" begin\n            tt = testtables[4]\n            # just to make sure we're grabbing the correct table\n            @test first(tt) == \"arrow date/time types\"\n            tbl = Arrow.Table(Arrow.tobuffer(tt[2]))\n            @test tbl.col16[1] == Dates.Time(0, 0, 0)\n        end\n\n        @testset \"#511: Bug in reading Utf8View data\" begin\n            t = Arrow.Table(\n                joinpath(dirname(pathof(Arrow)), \"../test/reject_reason_trimmed.arrow\"),\n            )\n            @test t.reject_reason[end] == \"POST_ONLY\"\n        end\n    end # @testset \"misc\"\n\n    @testset \"DataAPI.metadata\" begin\n        df = DataFrame(a=1, b=2, c=3)\n        for i = 1:2\n            io = IOBuffer()\n            if i == 1 # skip writing metadata in the first iteration\n                Arrow.write(io, df)\n            else\n                Arrow.write(io, df, metadata=metadata(df), colmetadata=colmetadata(df))\n            end\n            seekstart(io)\n            tbl = Arrow.Table(io)\n\n            @test DataAPI.metadatasupport(typeof(tbl)) == (read=true, write=false)\n            @test metadata(tbl) == metadata(df)\n            @test metadata(tbl; style=true) == metadata(df; style=true)\n            @test_throws Exception metadata(tbl, \"xyz\")\n            @test metadata(tbl, \"xyz\", \"something\") == \"something\"\n            @test metadata(tbl, \"xyz\", \"something\"; style=true) == (\"something\", :default)\n            @test metadatakeys(tbl) == metadatakeys(df)\n\n            @test DataAPI.colmetadatasupport(typeof(tbl)) == (read=true, write=false)\n            @test colmetadata(tbl) == colmetadata(df)\n            @test colmetadata(tbl; style=true) == colmetadata(df; style=true)\n            @test_throws MethodError colmetadata(tbl, \"xyz\")\n            @test_throws KeyError colmetadata(tbl, :xyz)\n            @test colmetadata(tbl, :b) == colmetadata(df, :b)\n            @test_throws MethodError colmetadata(tbl, :b, \"xyz\")\n            @test colmetadata(tbl, :b, \"xyz\", \"something\") == \"something\"\n            @test colmetadata(tbl, :b, \"xyz\", \"something\"; style=true) ==\n                  (\"something\", :default)\n            @test Set(colmetadatakeys(tbl)) == Set(colmetadatakeys(df))\n\n            # add metadata for the second iteration\n            metadata!(df, \"tkey\", \"tvalue\")\n            metadata!(df, \"tkey2\", \"tvalue2\")\n            colmetadata!(df, :a, \"ackey\", \"acvalue\")\n            colmetadata!(df, :a, \"ackey2\", \"acvalue2\")\n            colmetadata!(df, :c, \"cckey\", \"ccvalue\")\n        end\n    end # @testset \"DataAPI.metadata\"\nend\n"
  },
  {
    "path": "test/testappend.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n\nfunction testappend(nm, t, writekw, readkw, extratests)\n    @testset \"append: $nm\" begin\n        io = Arrow.tobuffer(t; writekw...)\n        bytes = read(io)\n        mktemp() do path, io\n            write(io, bytes)\n            close(io)\n\n            t1 = Arrow.Table(read(path); readkw...)\n            f1 = first(Tables.columns(t1))\n            Arrow.append(path, t1; writekw..., readkw...)\n            nparts = 0\n            for t2 in Arrow.Stream(path)\n                @test isequal(f1, first(Tables.columns(t2)))\n                nparts += 1\n            end\n            @test nparts == 2\n        end\n    end\nend\n\nfunction testappend_compression(compression_option)\n    mktempdir() do path\n        testdata = (col1=Int64[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],)\n        file1 = joinpath(path, \"table1.arrow\")\n        file2 = joinpath(path, \"table2.arrow\")\n\n        open(file1, \"w\") do io\n            Arrow.write(io, testdata; file=false, compress=compression_option)\n        end\n        isstream, schema, compression = open(Arrow.stream_properties, file1)\n        @test isstream\n        @test compression == compression_option\n\n        open(file2, \"w\") do io\n            Arrow.write(io, testdata; file=false)\n        end\n\n        arrow_table2 = Arrow.Table(file2)\n        arrow_table2 |> Arrow.append(file1)\n        arrow_table1 = Arrow.Table(file1)\n\n        isstream, schema, compression = open(Arrow.stream_properties, file1)\n        @test isstream\n        @test compression == compression_option\n\n        @test length(Tables.columns(arrow_table1)[1]) == 20\n        @test length(Tables.columns(arrow_table2)[1]) == 10\n    end\nend\n\nfunction testappend_partitions()\n    mktempdir() do path\n        testdata = (col1=Int64[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],)\n        file1 = joinpath(path, \"table1.arrow\")\n        file2 = joinpath(path, \"table2.arrow\")\n        open(file1, \"w\") do io\n            Arrow.write(io, testdata; file=false)\n        end\n        arrow_table1 = Arrow.Table(file1)\n        isstream, schema, compression = open(Arrow.stream_properties, file1)\n        @test isstream\n        @test compression === nothing\n        @test schema.names == (:col1,)\n        @test schema.types == (Int64,)\n\n        # can only append to arrow stream\n        open(file2, \"w\") do io\n            Arrow.write(io, testdata; file=true)\n        end\n        @test_throws ArgumentError Arrow.append(file2, arrow_table1)\n\n        # can append to an empty file\n        rm(file2)\n        for _ = 1:5\n            Arrow.append(file2, arrow_table1)\n        end\n        appended_table1 = Arrow.Table(file2)\n        @test length(Tables.columns(appended_table1)[1]) == 50\n\n        # schema must match\n        testdata2 = (col2=Int64[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],)\n        open(file2, \"w\") do io\n            Arrow.write(io, testdata2; file=false)\n        end\n        @test_throws ArgumentError Arrow.append(file2, arrow_table1)\n\n        # recreate file2 in arrow format with correct schema\n        open(file2, \"w\") do io\n            Arrow.write(io, testdata; file=false)\n        end\n\n        # start\n        # arrow_table1: 1 partition, 10 rows\n        # arrow_table2: 1 partition, 10 rows\n        arrow_table2 = Arrow.Table(file2)\n        @test length(Tables.columns(arrow_table1)[1]) == 10\n        @test length(Tables.columns(arrow_table2)[1]) == 10\n\n        @test_throws ArgumentError Arrow.append(file1, arrow_table2; ntasks=-1)\n        arrow_table2 |> Arrow.append(file1)\n        arrow_table1 = Arrow.Table(file1)\n        # now\n        # arrow_table1: 2 partitions, 20 rows\n        # arrow_table2: 1 partition, 10 rows\n\n        @test Tables.schema(arrow_table1) == Tables.schema(arrow_table2)\n        @test length(Tables.columns(arrow_table1)[1]) == 20\n        @test length(Tables.columns(arrow_table2)[1]) == 10\n        @test length(collect(Tables.partitions(Arrow.Stream(file1)))) ==\n              2 * length(collect(Tables.partitions(Arrow.Stream(file2))))\n\n        Arrow.append(file2, arrow_table1; ntasks=1) # append with single task\n        arrow_table2 = Arrow.Table(file2)\n        # now\n        # arrow_table1: 2 partitions, 20 rows\n        # arrow_table2: 2 partitions, 30 rows (both partitions of table1 are appended as separate partitions)\n\n        @test Tables.schema(arrow_table1) == Tables.schema(arrow_table2)\n        @test length(Tables.columns(arrow_table1)[1]) == 20\n        @test length(Tables.columns(arrow_table2)[1]) == 30\n        @test length(collect(Tables.partitions(Arrow.Stream(file1)))) == 2\n        @test length(collect(Tables.partitions(Arrow.Stream(file2)))) == 3\n\n        Arrow.append(file1, Arrow.Stream(file2))\n        arrow_table1 = Arrow.Table(file1)\n        # now\n        # arrow_table1: 4 partitions, 50 rows (partitions of file2 stream are appended without being merged)\n        # arrow_table2: 2 partitions, 30 rows\n\n        @test Tables.schema(arrow_table1) == Tables.schema(arrow_table2)\n        @test length(Tables.columns(arrow_table1)[1]) == 50\n        @test length(Tables.columns(arrow_table2)[1]) == 30\n        @test length(collect(Tables.partitions(Arrow.Stream(file1)))) == 5\n        @test length(collect(Tables.partitions(Arrow.Stream(file2)))) == 3\n    end\nend\n"
  },
  {
    "path": "test/testtables.jl",
    "content": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\ntesttables = [\n    (\n        \"basic\",\n        (col1=Int64[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],),\n        NamedTuple(),\n        NamedTuple(),\n        nothing,\n    ),\n    (\n        \"missing values\",\n        (col1=Union{Int64,Missing}[1, 2, 3, 4, 5, 6, 7, 8, 9, missing],),\n        NamedTuple(),\n        NamedTuple(),\n        nothing,\n    ),\n    (\n        \"primitive types\",\n        (\n            col1=[missing, missing, missing, missing],\n            col2=Union{UInt8,Missing}[0, 1, 2, missing],\n            col3=Union{UInt16,Missing}[0, 1, 2, missing],\n            col4=Union{UInt32,Missing}[0, 1, 2, missing],\n            col5=Union{UInt64,Missing}[0, 1, 2, missing],\n            col6=Union{Int8,Missing}[0, 1, 2, missing],\n            col7=Union{Int16,Missing}[0, 1, 2, missing],\n            col8=Union{Int32,Missing}[0, 1, 2, missing],\n            col9=Union{Int64,Missing}[0, 1, 2, missing],\n            col10=Union{Float16,Missing}[0, 1, 2, missing],\n            col11=Union{Float32,Missing}[0, 1, 2, missing],\n            col12=Union{Float64,Missing}[0, 1, 2, missing],\n            col13=[true, false, true, missing],\n        ),\n        NamedTuple(),\n        NamedTuple(),\n        nothing,\n    ),\n    (\n        \"arrow date/time types\",\n        (\n            col14=[\n                zero(Arrow.Decimal{Int32(2),Int32(2),Int128}),\n                zero(Arrow.Decimal{Int32(2),Int32(2),Int128}),\n                zero(Arrow.Decimal{Int32(2),Int32(2),Int128}),\n                missing,\n            ],\n            col15=[\n                zero(Arrow.Date{Arrow.Meta.DateUnit.DAY,Int32}),\n                zero(Arrow.Date{Arrow.Meta.DateUnit.DAY,Int32}),\n                zero(Arrow.Date{Arrow.Meta.DateUnit.DAY,Int32}),\n                missing,\n            ],\n            col16=[\n                zero(Arrow.Time{Arrow.Meta.TimeUnit.SECOND,Int32}),\n                zero(Arrow.Time{Arrow.Meta.TimeUnit.SECOND,Int32}),\n                zero(Arrow.Time{Arrow.Meta.TimeUnit.SECOND,Int32}),\n                missing,\n            ],\n            col17=[\n                zero(Arrow.Timestamp{Arrow.Meta.TimeUnit.SECOND,nothing}),\n                zero(Arrow.Timestamp{Arrow.Meta.TimeUnit.SECOND,nothing}),\n                zero(Arrow.Timestamp{Arrow.Meta.TimeUnit.SECOND,nothing}),\n                missing,\n            ],\n            col18=[\n                zero(Arrow.Interval{Arrow.Meta.IntervalUnit.YEAR_MONTH,Int32}),\n                zero(Arrow.Interval{Arrow.Meta.IntervalUnit.YEAR_MONTH,Int32}),\n                zero(Arrow.Interval{Arrow.Meta.IntervalUnit.YEAR_MONTH,Int32}),\n                missing,\n            ],\n            col19=[\n                zero(Arrow.Duration{Arrow.Meta.TimeUnit.SECOND}),\n                zero(Arrow.Duration{Arrow.Meta.TimeUnit.SECOND}),\n                zero(Arrow.Duration{Arrow.Meta.TimeUnit.SECOND}),\n                missing,\n            ],\n            col20=[\n                zero(Arrow.Date{Arrow.Meta.DateUnit.MILLISECOND,Int64}),\n                zero(Arrow.Date{Arrow.Meta.DateUnit.MILLISECOND,Int64}),\n                zero(Arrow.Date{Arrow.Meta.DateUnit.MILLISECOND,Int64}),\n                missing,\n            ],\n        ),\n        NamedTuple(),\n        (convert=false,),\n        nothing,\n    ),\n    (\n        \"list types\",\n        (\n            col1=Union{String,Missing}[\"hey\", \"there\", \"sailor\", missing],\n            col2=Union{Vector{UInt8},Missing}[b\"hey\", b\"there\", b\"sailor\", missing],\n            col3=Union{Vector{Int64},Missing}[Int64[1], Int64[2], Int64[3], missing],\n            col4=Union{NTuple{2,Vector{Int64}},Missing}[\n                (Int64[1], Int64[2]),\n                missing,\n                missing,\n                (Int64[3], Int64[4]),\n            ],\n            col5=Union{NTuple{2,UInt8},Missing}[\n                (0x01, 0x02),\n                (0x03, 0x04),\n                missing,\n                (0x05, 0x06),\n            ],\n            col6=NamedTuple{(:a, :b),Tuple{Int64,String}}[\n                (a=Int64(1), b=\"hey\"),\n                (a=Int64(2), b=\"there\"),\n                (a=Int64(3), b=\"sailor\"),\n                (a=Int64(4), b=\"jo-bob\"),\n            ],\n        ),\n        NamedTuple(),\n        NamedTuple(),\n        nothing,\n    ),\n    (\"empty list types\", (col1=[[]], col2=[()]), NamedTuple(), NamedTuple(), nothing),\n    (\n        \"unions\",\n        (\n            col1=Arrow.DenseUnionVector(\n                Union{Int64,Float64,Missing}[1, 2.0, 3, 4.0, missing],\n            ),\n            col2=Arrow.SparseUnionVector(\n                Union{Int64,Float64,Missing}[1, 2.0, 3, 4.0, missing],\n            ),\n        ),\n        NamedTuple(),\n        NamedTuple(),\n        nothing,\n    ),\n    (\n        \"dict encodings\",\n        (col1=Arrow.DictEncode(Int64[4, 5, 6]),),\n        NamedTuple(),\n        NamedTuple(),\n        function (tt)\n            col1 = copy(tt.col1)\n            @test typeof(col1) == PooledVector{Int64,Int8,Vector{Int8}}\n        end,\n    ),\n    (\n        \"more dict encodings\",\n        (\n            col1=Arrow.DictEncode(\n                NamedTuple{(:a, :b),Tuple{Int64,Union{String,Missing}}}[\n                    (a=Int64(1), b=missing),\n                    (a=Int64(1), b=missing),\n                    (a=Int64(3), b=\"sailor\"),\n                    (a=Int64(4), b=\"jo-bob\"),\n                ],\n            ),\n        ),\n        NamedTuple(),\n        NamedTuple(),\n        nothing,\n    ),\n    (\"PooledArray\", (col1=PooledArray([4, 5, 6, 6]),), NamedTuple(), NamedTuple(), nothing),\n    (\n        \"auto-converting types\",\n        (\n            col1=[Date(2001, 1, 2), Date(2010, 10, 10), Date(2020, 12, 1)],\n            col2=[Time(1, 1, 2), Time(13, 10, 10), Time(22, 12, 1)],\n            col3=[DateTime(2001, 1, 2), DateTime(2010, 10, 10), DateTime(2020, 12, 1)],\n            col4=[\n                ZonedDateTime(2001, 1, 2, TimeZone(\"America/Denver\")),\n                ZonedDateTime(2010, 10, 10, TimeZone(\"America/Denver\")),\n                ZonedDateTime(2020, 12, 1, TimeZone(\"America/Denver\")),\n            ],\n        ),\n        NamedTuple(),\n        NamedTuple(),\n        nothing,\n    ),\n    (\n        \"Map\",\n        (col1=[Dict(Int32(1) => Float32(3.14)), missing],),\n        NamedTuple(),\n        NamedTuple(),\n        nothing,\n    ),\n    (\n        \"non-standard types\",\n        (\n            col1=[:hey, :there, :sailor],\n            col2=['a', 'b', 'c'],\n            col3=Arrow.DictEncode(['a', 'a', 'b']),\n            col4=[\n                UUID(\"48075322-8645-4ac6-b590-c9f46068565a\"),\n                UUID(\"99c7d976-ccfd-45b9-9793-51008607c638\"),\n                UUID(\"f96d9974-5a7b-47e3-bbc0-d680d11490d4\"),\n            ],\n        ),\n        NamedTuple(),\n        NamedTuple(),\n        nothing,\n    ),\n    (\n        \"large lists\",\n        (\n            col1=Union{String,Missing}[\"hey\", \"there\", \"sailor\", missing],\n            col2=Union{Vector{UInt8},Missing}[b\"hey\", b\"there\", b\"sailor\", missing],\n            col3=Union{Vector{Int64},Missing}[Int64[1], Int64[2], Int64[3], missing],\n            col4=Union{NTuple{2,Vector{Int64}},Missing}[\n                (Int64[1], Int64[2]),\n                missing,\n                missing,\n                (Int64[3], Int64[4]),\n            ],\n            col5=Union{NTuple{2,UInt8},Missing}[\n                (0x01, 0x02),\n                (0x03, 0x04),\n                missing,\n                (0x05, 0x06),\n            ],\n            col6=NamedTuple{(:a, :b),Tuple{Int64,String}}[\n                (a=Int64(1), b=\"hey\"),\n                (a=Int64(2), b=\"there\"),\n                (a=Int64(3), b=\"sailor\"),\n                (a=Int64(4), b=\"jo-bob\"),\n            ],\n        ),\n        (largelists=true,),\n        NamedTuple(),\n        nothing,\n    ),\n    (\n        \"dictencode keyword\",\n        (\n            col1=Int64[1, 2, 3, 4],\n            col2=Union{String,Missing}[\"hey\", \"there\", \"sailor\", missing],\n            col3=Arrow.DictEncode(\n                NamedTuple{(:a, :b),Tuple{Int64,Union{String,Missing}}}[\n                    (a=Int64(1), b=missing),\n                    (a=Int64(1), b=missing),\n                    (a=Int64(3), b=\"sailor\"),\n                    (a=Int64(4), b=\"jo-bob\"),\n                ],\n            ),\n            col4=[:a, :b, :c, missing],\n            col5=[Date(2020, 1, 1) for x = 1:4],\n        ),\n        (dictencode=true,),\n        NamedTuple(),\n        nothing,\n    ),\n    (\n        \"nesteddictencode keyword\",\n        (\n            col1=NamedTuple{\n                (:a, :b),\n                Tuple{Int64,Union{Missing,NamedTuple{(:c,),Tuple{String}}}},\n            }[\n                (a=Int64(1), b=missing),\n                (a=Int64(1), b=missing),\n                (a=Int64(3), b=(c=\"sailor\",)),\n                (a=Int64(4), b=(c=\"jo-bob\",)),\n            ],\n        ),\n        (dictencode=true, dictencodenested=true),\n        NamedTuple(),\n        nothing,\n    ),\n    (\n        \"Julia unions\",\n        (\n            col1=Union{Int,String}[1, \"hey\", 2, \"ho\"],\n            col2=Union{Char,NamedTuple{(:a,),Tuple{Symbol}}}['a', (a=:hey,), 'b', (a=:ho,)],\n        ),\n        (denseunions=false,),\n        NamedTuple(),\n        nothing,\n    ),\n    (\n        \"Decimal256\",\n        (\n            col1=[\n                zero(Arrow.Decimal{Int32(2),Int32(2),Arrow.Int256}),\n                zero(Arrow.Decimal{Int32(2),Int32(2),Arrow.Int256}),\n                zero(Arrow.Decimal{Int32(2),Int32(2),Arrow.Int256}),\n                missing,\n            ],\n        ),\n        NamedTuple(),\n        (convert=false,),\n        nothing,\n    ),\n];\n\nfunction testtable(nm, t, writekw, readkw, extratests)\n    @testset \"testing: $nm\" begin\n        io = Arrow.tobuffer(t; writekw...)\n        tt = Arrow.Table(io; readkw...)\n        @test length(tt) == length(t)\n        @test all(isequal.(values(t), values(tt)))\n        extratests !== nothing && extratests(tt)\n        seekstart(io)\n        str = Arrow.Stream(io; readkw...)\n        tt = first(str)\n        @test length(tt) == length(t)\n        @test all(isequal.(values(t), values(tt)))\n        # compressed\n        io = Arrow.tobuffer(t; compress=((:lz4, :zstd)[rand(1:2)]), writekw...)\n        tt = Arrow.Table(io; readkw...)\n        @test length(tt) == length(t)\n        @test all(isequal.(values(t), values(tt)))\n        extratests !== nothing && extratests(tt)\n        seekstart(io)\n        str = Arrow.Stream(io; readkw...)\n        tt = first(str)\n        @test length(tt) == length(t)\n        @test all(isequal.(values(t), values(tt)))\n        # file\n        io = Arrow.tobuffer(t; file=true, writekw...)\n        tt = Arrow.Table(io; readkw...)\n        @test length(tt) == length(t)\n        @test all(isequal.(values(t), values(tt)))\n        extratests !== nothing && extratests(tt)\n        seekstart(io)\n        str = Arrow.Stream(io; readkw...)\n        tt = first(str)\n        @test length(tt) == length(t)\n        @test all(isequal.(values(t), values(tt)))\n    end\nend\n"
  }
]