pax_global_header00006660000000000000000000000064150717305520014517gustar00rootroot0000000000000052 comment=683cb0696cadf343391a4dc695adcf3cb73b9555 ahayworth-python_awair-683cb06/000077500000000000000000000000001507173055200165645ustar00rootroot00000000000000ahayworth-python_awair-683cb06/.coveragerc000066400000000000000000000000321507173055200207000ustar00rootroot00000000000000[run] source=python_awair ahayworth-python_awair-683cb06/.flake8000066400000000000000000000000631507173055200177360ustar00rootroot00000000000000[flake8] max-line-length = 88 extend-ignore = E203 ahayworth-python_awair-683cb06/.github/000077500000000000000000000000001507173055200201245ustar00rootroot00000000000000ahayworth-python_awair-683cb06/.github/workflows/000077500000000000000000000000001507173055200221615ustar00rootroot00000000000000ahayworth-python_awair-683cb06/.github/workflows/ci.yaml000066400000000000000000000030701507173055200234400ustar00rootroot00000000000000name: CI on: pull_request: workflow_dispatch: push: branches: [master] jobs: build: runs-on: ubuntu-latest strategy: matrix: python-version: [3.9, "3.10", "3.11", "3.12", "3.13"] include: - python-version: 3.9 toxenv: py39 - python-version: "3.10" toxenv: py310 - python-version: "3.11" toxenv: py311 - python-version: "3.12" toxenv: py312 - python-version: "3.13" toxenv: py313 steps: - name: Checkout uses: actions/checkout@v5 - name: Set up python ${{ matrix.python-version }} uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: Set up poetry uses: Gr1N/setup-poetry@v9 - name: Cache dependencies uses: actions/cache@v4 with: path: ~/.cache/pypoetry/virtualenvs key: ${{ runner.os }}-v2-poetry-${{ matrix.python-version }}-${{ hashFiles('poetry.lock') }} restore-keys: | ${{ runner.os }}-v2-poetry-${{ matrix.python-version }} - name: Install dependencies run: poetry install - name: Tests run: | poetry run tox -e ${{ matrix.toxenv }} - name: Linters run: | poetry run tox -e lint if: matrix.python-version == '3.9' - name: Coverage run: | poetry run tox -e coverage env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} if: matrix.python-version == '3.9' ahayworth-python_awair-683cb06/.gitignore000066400000000000000000000023511507173055200205550ustar00rootroot00000000000000# Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C extensions *.so # Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ *.egg-info/ .installed.cfg *.egg MANIFEST # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .coverage .coverage.* .cache nosetests.xml coverage.xml *.cover .hypothesis/ .pytest_cache/ # Translations *.mo *.pot # Django stuff: *.log local_settings.py db.sqlite3 # Flask stuff: instance/ .webassets-cache # Scrapy stuff: .scrapy # Sphinx documentation docs/_build/ # PyBuilder target/ # Jupyter Notebook .ipynb_checkpoints # pyenv .python-version # celery beat schedule file celerybeat-schedule # SageMath parsed files *.sage.py # Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ # Spyder project settings .spyderproject .spyproject # Rope project settings .ropeproject # mkdocs documentation /site # mypy .mypy_cache/ script/ # PyCharm/IntelliJ project directory /.idea ahayworth-python_awair-683cb06/.isort.cfg000066400000000000000000000001611507173055200204610ustar00rootroot00000000000000[settings] multi_line_output=3 include_trailing_comma=True force_grid_wrap=0 use_parentheses=True line_length=88 ahayworth-python_awair-683cb06/.lvimrc000066400000000000000000000011201507173055200200530ustar00rootroot00000000000000 " let g:ale_python_pyls_executable = '/home/andrew/bin/pyls.sh' " let g:ale_python_pyls_use_global = 1 let g:ale_linters = { \ 'python': ['pyls'] \} let g:ale_python_pyls_config = { \ 'pyls': { \ 'plugins': { \ 'pyls_mypy': { \ 'enabled': v:true \ }, \ 'pydocstyle': { \ 'enabled': v:true \ }, \ 'flake8': { \ 'enabled': v:true \ }, \ 'pylint': { \ 'enabled': v:true \ } \ } \ } \} let g:ale_fixers = { \ '*': ['remove_trailing_lines', 'trim_whitespace'], \ 'python': ['black', 'isort'], \} ahayworth-python_awair-683cb06/.pylintrc000066400000000000000000000001171507173055200204300ustar00rootroot00000000000000[MESSAGES CONTROL] disable=too-few-public-methods,too-many-instance-attributes ahayworth-python_awair-683cb06/.readthedocs.yml000066400000000000000000000001751507173055200216550ustar00rootroot00000000000000version: 2 sphinx: configuration: docs/conf.py python: version: 3.8 install: - requirements: docs/requirements.txt ahayworth-python_awair-683cb06/LICENSE000066400000000000000000000020601507173055200175670ustar00rootroot00000000000000MIT License Copyright (c) 2018 Andrew Hayworth Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ahayworth-python_awair-683cb06/README.md000066400000000000000000000042411507173055200200440ustar00rootroot00000000000000# python_awair ![Latest PyPI version](https://img.shields.io/pypi/v/python_awair.svg) ![CI](https://github.com/ahayworth/python_awair/workflows/CI/badge.svg?branch=master) [![codecov](https://codecov.io/gh/ahayworth/python_awair/branch/master/graph/badge.svg)](https://codecov.io/gh/ahayworth/python_awair) [![Documentation Status](https://readthedocs.org/projects/python-awair/badge/?version=latest)](https://python-awair.readthedocs.io/en/latest/?badge=latest) This is an async library which accesses portions of the [Awair](https://getawair.com) REST API, and it exists primarily to support the Home Assistant integration for Awair devices. Features: - Object-oriented approach to querying and handling data - Supports the "user" portion of the API. - Possible to list devices, user information, and to query for a variety of sensor data over various timeframes. Not yet supported: - Device API usage - Organization API - Device management (such as changing the display of a device) Dive into our [documentation](https://python-awair.readthedocs.io/en/latest) to get started! # Status This project could be considered in "maintenance mode". It meets the needs of the Home Assistant integration, and there are no current plans to add new features. Large PRs adding significant new features or drastically changing the library are unlikely to be accepted without prior discussion (please open an issue first). However, bug fixes and updates to support python and/or Home Assistant compatibility are welcomed and accepted! I intend to keep passively maintaining the library, and please open an issue if there is an unaddressed need. # Development - We manage dependencies and builds via [poetry](https://python-poetry.org) - We use [pytest](https://github.com/pytest-dev/pytest) and [tox](https://github.com/tox-dev/tox) to test - A variety of linters are available and CI enforces them After installing and configuring poetry: - Run `poetry install` to install dev dependencies - Run `poetry shell` to drop into a virtualenv - Run `poetry run tox` (or just `tox` if you're in a virtualenv) to test - Run `poetry run tox -e lint` (or just `tox -e lint` if you're in a virtualenv) to run linters. ahayworth-python_awair-683cb06/docs/000077500000000000000000000000001507173055200175145ustar00rootroot00000000000000ahayworth-python_awair-683cb06/docs/Makefile000066400000000000000000000011721507173055200211550ustar00rootroot00000000000000# Minimal makefile for Sphinx documentation # # You can set these variables from the command line, and also # from the environment for the first two. SPHINXOPTS ?= SPHINXBUILD ?= sphinx-build SOURCEDIR = . BUILDDIR = _build # Put it first so that "make" without argument is like "make help". help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) .PHONY: help Makefile # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) ahayworth-python_awair-683cb06/docs/conf.py000066400000000000000000000022361507173055200210160ustar00rootroot00000000000000"""Sphinx configuration for python_awair.""" # pylint: skip-file import os import sys import sphinx_readable_theme sys.path.insert(0, os.path.abspath("..")) project = "python_awair" copyright = "2019-2020, Andrew Hayworth" author = "Andrew Hayworth" extensions = [ "sphinx.ext.autodoc", "sphinx.ext.napoleon", # "sphinx.ext.linkcode", "sphinx.ext.viewcode", "sphinx.ext.intersphinx", "sphinx.ext.todo", ] templates_path = ["_templates"] todo_include_todos = True exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] html_theme_path = [sphinx_readable_theme.get_html_theme_path()] html_theme = "readable" html_static_path = ["_static"] intersphinx_mapping = {"aiohttp": ("https://aiohttp.readthedocs.io/en/stable/", None)} master_doc = "index" def linkcode_resolve(domain, info): # type: ignore """Return github.com link for module.""" if domain != "py" or "module" not in info: return None filename = info["module"].replace(".", "/") if filename == "python_awair": filename += "/__init__.py" else: filename += ".py" return "https://github.com/ahayworth/python_awair/tree/master/" + filename ahayworth-python_awair-683cb06/docs/examples.rst000066400000000000000000000073451507173055200220750ustar00rootroot00000000000000-------- Examples -------- .. contents:: :local: Sample program ============== .. literalinclude:: ../examples/remote.py :language: python Here's what running that sample would print:: $ AWAIR_TOKEN=foo python examples/remote.py Device: dust: 13.7 temperature: 22.12 humidity: 45.18 carbon_dioxide: 1114.0 volatile_organic_compounds: 545.0 temperature again: 22.12 Instantiating a client ====================== To instantiate a client, you'll need your access token and must also pass in an aiohttp session: .. code:: python async with aiohttp.ClientSession() as session: client = Awair(access_token="token", session=session) Getting the current user ======================== This example retrieves the user, and prints out some information. .. code:: python async with aiohttp.ClientSession() as session: client = Awair(session=session, token="token") user = await client.user() if user.dob is not None: print(f"This user was born on: {user.dob}") for method, limit in user.permissions.items(): print(f"Method: {method} - {limit}") Listing a user's devices ======================== To retrieve every device a user can see: .. code:: python async with aiohttp.ClientSession() as session: client = Awair(session=session, token="token") user = await client.user() devices = await user.devices() for device in devices: print(f"I can see this device: {device}") Fetching recent data for a device ================================= .. code:: python async with aiohttp.ClientSession() as session: client = Awair(session=session, token="token") user = await client.user() devices = await user.devices() device = devices[0] data = await device.air_data_latest() print(f"Awair score: {data.score}") for sensor, value in data.sensors: print(f"{sensor}: {round(value, 2)}") if sensor in data.indices: print(f" awair index: {data.indices[sensor]}") Fetching data from a different time =================================== .. code:: python async with aiohttp.ClientSession() as session: client = Awair(session=session, token="token") user = await client.user() devices = await user.devices() device = devices[0] data = await device.air_data_five_minute( fahrenheit=True, limit=4, from=(datetime.now() - timedelta(hours=2)), to=(datetime.now() - timedelta(hours=1, minutes=30)) ) for datum in data: print("----------------------------") print(f"Data at: {datum.timestamp}") print(f"Awair score: {datum.score}") for sensor, value in datum.sensors: print(f"{sensor}: {round(value, 2)}") if sensor in datum.indices: print(f" awair index: {datum.indices[sensor]}") Sample local sensors program ================================= Awair recently added the `local sensors API`_, where you can retrieve current (and only current) air data from devices on your local network over HTTP. .. _`local sensors API`: https://docs.google.com/document/d/1001C-ro_ig7aEyz0GiWUiiJn0M6DLj47BYWj31acesg/edit .. literalinclude:: ../examples/local.py :language: python Running this sample prints:: $ AWAIR_DEVICE=192.168.0.5 python examples/local.py Device: dew_point: 10.81 abs_humid: 9.59 co2_est: 461 voc_baseline: 2536742680 voc_h2_raw: 27 voc_ethanol_raw: 39 pm10_est: 3 temperature: 19.16 humidity: 58.46 carbon_dioxide: 438 volatile_organic_compounds: 384 particulate_matter_2_5: 2 temperature again: 19.16 ahayworth-python_awair-683cb06/docs/index.rst000066400000000000000000000024501507173055200213560ustar00rootroot00000000000000python_awair ======================================== *python_awair* is an asyncio client for the Awair_ REST API_. The main goal of the project is to provide a useful, object-oriented client, rather than a thin veneer over the underlying API. A secondary goal is to support the Home Assistant integration_, though the project wishes to be useful to all. Currently, the project supports: * Fetching user information, devices owned by a user, and API usage information * Retreiving current, summary, and raw air quality information for the *user* devices Planned features: * Supporting the *user* device management API * Supporting the *organization* API This library is considered active and supported by its author, and PRs or issues are gladly accepted. Getting started --------------- Install *python_awair* from pip:: $ pip install python_awair You'll need an access token for the Awair API, which you can obtain from the `developer portal`_. .. _Awair: https://getawair.com .. _API: https://docs.developer.getawair.com/?version=latest .. _integration: https://www.home-assistant.io/integrations/awair/ .. _`developer portal`: https://developer.getawair.com .. toctree:: :maxdepth: 2 :caption: Contents: examples.rst python_awair.rst * :ref:`genindex` * :ref:`modindex` * :ref:`search` ahayworth-python_awair-683cb06/docs/python_awair.rst000066400000000000000000000022411507173055200227510ustar00rootroot00000000000000============ python_awair ============ .. contents:: :local: Awair ----- .. automodule:: python_awair :members: :undoc-members: AwairUser --------- .. automodule:: python_awair.user :show-inheritance: :members: :undoc-members: AwairDevice ----------- .. automodule:: python_awair.devices :show-inheritance: :members: :undoc-members: AirData ------- .. automodule:: python_awair.air_data :show-inheritance: :members: :undoc-members: Sensors ------- .. automodule:: python_awair.sensors :show-inheritance: :members: :undoc-members: Indices ------- .. automodule:: python_awair.indices :show-inheritance: :members: :undoc-members: Auth ---- .. automodule:: python_awair.auth :show-inheritance: :members: :undoc-members: :member-order: bysource AwairClient ----------- .. automodule:: python_awair.client :show-inheritance: :members: :undoc-members: Exceptions ---------- .. automodule:: python_awair.exceptions :show-inheritance: :members: :undoc-members: :member-order: bysource AttrDict -------- .. automodule:: python_awair.attrdict :show-inheritance: :members: :undoc-members: ahayworth-python_awair-683cb06/docs/requirements.txt000066400000000000000000000000771507173055200230040ustar00rootroot00000000000000sphinx-readable-theme==1.3.0 aiohttp==3.7.4 voluptuous>=0.11.7 ahayworth-python_awair-683cb06/examples/000077500000000000000000000000001507173055200204025ustar00rootroot00000000000000ahayworth-python_awair-683cb06/examples/local.py000066400000000000000000000017271507173055200220550ustar00rootroot00000000000000"""Local Sensors Example.""" import os import asyncio import aiohttp from python_awair import AwairLocal async def fetch_data(): """Get data from local Awair device.""" async with aiohttp.ClientSession() as session: device_address = os.environ.get("AWAIR_DEVICE", "AWAIR-ELEM-1419E1.local") client = AwairLocal(session=session, device_addrs=[device_address]) # List the local devices: devices = await client.devices() # Get some air quality data for a user's device: data = await devices[0].air_data_latest() # Print things out! print(f"Device: {devices[0]}") print(f"Device firmware: {devices[0].fw_version}") # You can access sensors as dict items: for sensor, value in data.sensors.items(): print(f" {sensor}: {round(value, 2)}") # Or, as attributes: print(f" temperature again: {round(data.sensors.temperature, 2)}") asyncio.run(fetch_data()) ahayworth-python_awair-683cb06/examples/remote.py000066400000000000000000000017511507173055200222530ustar00rootroot00000000000000"""Remote sensors example.""" import os import asyncio import aiohttp from python_awair import Awair async def fetch_data(): """Fetch remote data.""" async with aiohttp.ClientSession() as session: # Instantiate a client with your access token, and an asyncio session: token = os.environ.get("AWAIR_TOKEN") client = Awair(access_token=token, session=session) # Retrieve a user object: user = await client.user() # List that user's devices: devices = await user.devices() # Get some air quality data for a user's device: data = await devices[0].air_data_latest() # Print things out! print(f"Device: {devices[0]}") # You can access sensors as dict items: for sensor, value in data.sensors.items(): print(f" {sensor}: {round(value, 2)}") # Or, as attributes: print(f" temperature again: {round(data.sensors.temperature, 2)}") asyncio.run(fetch_data()) ahayworth-python_awair-683cb06/mypy.ini000066400000000000000000000003411507173055200202610ustar00rootroot00000000000000[mypy] strict = True [mypy-vcr.*] ignore_missing_imports = True [mypy-voluptuous.*] ignore_missing_imports = True [mypy-pytest.*] ignore_missing_imports = True [mypy-sphinx_readable_theme.*] ignore_missing_imports = True ahayworth-python_awair-683cb06/poetry.lock000066400000000000000000006475421507173055200210020ustar00rootroot00000000000000# This file is automatically @generated by Poetry 2.1.4 and should not be changed by hand. [[package]] name = "aiohappyeyeballs" version = "2.6.1" description = "Happy Eyeballs for asyncio" optional = false python-versions = ">=3.9" groups = ["main", "dev"] files = [ {file = "aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8"}, {file = "aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558"}, ] [[package]] name = "aiohttp" version = "3.12.15" description = "Async http client/server framework (asyncio)" optional = false python-versions = ">=3.9" groups = ["main", "dev"] files = [ {file = "aiohttp-3.12.15-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b6fc902bff74d9b1879ad55f5404153e2b33a82e72a95c89cec5eb6cc9e92fbc"}, {file = "aiohttp-3.12.15-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:098e92835b8119b54c693f2f88a1dec690e20798ca5f5fe5f0520245253ee0af"}, {file = "aiohttp-3.12.15-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:40b3fee496a47c3b4a39a731954c06f0bd9bd3e8258c059a4beb76ac23f8e421"}, {file = "aiohttp-3.12.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ce13fcfb0bb2f259fb42106cdc63fa5515fb85b7e87177267d89a771a660b79"}, {file = "aiohttp-3.12.15-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3beb14f053222b391bf9cf92ae82e0171067cc9c8f52453a0f1ec7c37df12a77"}, {file = "aiohttp-3.12.15-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c39e87afe48aa3e814cac5f535bc6199180a53e38d3f51c5e2530f5aa4ec58c"}, {file = "aiohttp-3.12.15-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5f1b4ce5bc528a6ee38dbf5f39bbf11dd127048726323b72b8e85769319ffc4"}, {file = "aiohttp-3.12.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1004e67962efabbaf3f03b11b4c43b834081c9e3f9b32b16a7d97d4708a9abe6"}, {file = "aiohttp-3.12.15-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8faa08fcc2e411f7ab91d1541d9d597d3a90e9004180edb2072238c085eac8c2"}, {file = "aiohttp-3.12.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fe086edf38b2222328cdf89af0dde2439ee173b8ad7cb659b4e4c6f385b2be3d"}, {file = "aiohttp-3.12.15-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:79b26fe467219add81d5e47b4a4ba0f2394e8b7c7c3198ed36609f9ba161aecb"}, {file = "aiohttp-3.12.15-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:b761bac1192ef24e16706d761aefcb581438b34b13a2f069a6d343ec8fb693a5"}, {file = "aiohttp-3.12.15-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e153e8adacfe2af562861b72f8bc47f8a5c08e010ac94eebbe33dc21d677cd5b"}, {file = "aiohttp-3.12.15-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:fc49c4de44977aa8601a00edbf157e9a421f227aa7eb477d9e3df48343311065"}, {file = "aiohttp-3.12.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2776c7ec89c54a47029940177e75c8c07c29c66f73464784971d6a81904ce9d1"}, {file = "aiohttp-3.12.15-cp310-cp310-win32.whl", hash = "sha256:2c7d81a277fa78b2203ab626ced1487420e8c11a8e373707ab72d189fcdad20a"}, {file = "aiohttp-3.12.15-cp310-cp310-win_amd64.whl", hash = "sha256:83603f881e11f0f710f8e2327817c82e79431ec976448839f3cd05d7afe8f830"}, {file = "aiohttp-3.12.15-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d3ce17ce0220383a0f9ea07175eeaa6aa13ae5a41f30bc61d84df17f0e9b1117"}, {file = "aiohttp-3.12.15-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:010cc9bbd06db80fe234d9003f67e97a10fe003bfbedb40da7d71c1008eda0fe"}, {file = "aiohttp-3.12.15-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3f9d7c55b41ed687b9d7165b17672340187f87a773c98236c987f08c858145a9"}, {file = "aiohttp-3.12.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc4fbc61bb3548d3b482f9ac7ddd0f18c67e4225aaa4e8552b9f1ac7e6bda9e5"}, {file = "aiohttp-3.12.15-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7fbc8a7c410bb3ad5d595bb7118147dfbb6449d862cc1125cf8867cb337e8728"}, {file = "aiohttp-3.12.15-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:74dad41b3458dbb0511e760fb355bb0b6689e0630de8a22b1b62a98777136e16"}, {file = "aiohttp-3.12.15-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b6f0af863cf17e6222b1735a756d664159e58855da99cfe965134a3ff63b0b0"}, {file = "aiohttp-3.12.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b5b7fe4972d48a4da367043b8e023fb70a04d1490aa7d68800e465d1b97e493b"}, {file = "aiohttp-3.12.15-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6443cca89553b7a5485331bc9bedb2342b08d073fa10b8c7d1c60579c4a7b9bd"}, {file = "aiohttp-3.12.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6c5f40ec615e5264f44b4282ee27628cea221fcad52f27405b80abb346d9f3f8"}, {file = "aiohttp-3.12.15-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:2abbb216a1d3a2fe86dbd2edce20cdc5e9ad0be6378455b05ec7f77361b3ab50"}, {file = "aiohttp-3.12.15-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:db71ce547012a5420a39c1b744d485cfb823564d01d5d20805977f5ea1345676"}, {file = "aiohttp-3.12.15-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ced339d7c9b5030abad5854aa5413a77565e5b6e6248ff927d3e174baf3badf7"}, {file = "aiohttp-3.12.15-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:7c7dd29c7b5bda137464dc9bfc738d7ceea46ff70309859ffde8c022e9b08ba7"}, {file = "aiohttp-3.12.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:421da6fd326460517873274875c6c5a18ff225b40da2616083c5a34a7570b685"}, {file = "aiohttp-3.12.15-cp311-cp311-win32.whl", hash = "sha256:4420cf9d179ec8dfe4be10e7d0fe47d6d606485512ea2265b0d8c5113372771b"}, {file = "aiohttp-3.12.15-cp311-cp311-win_amd64.whl", hash = "sha256:edd533a07da85baa4b423ee8839e3e91681c7bfa19b04260a469ee94b778bf6d"}, {file = "aiohttp-3.12.15-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:802d3868f5776e28f7bf69d349c26fc0efadb81676d0afa88ed00d98a26340b7"}, {file = "aiohttp-3.12.15-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f2800614cd560287be05e33a679638e586a2d7401f4ddf99e304d98878c29444"}, {file = "aiohttp-3.12.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8466151554b593909d30a0a125d638b4e5f3836e5aecde85b66b80ded1cb5b0d"}, {file = "aiohttp-3.12.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e5a495cb1be69dae4b08f35a6c4579c539e9b5706f606632102c0f855bcba7c"}, {file = "aiohttp-3.12.15-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6404dfc8cdde35c69aaa489bb3542fb86ef215fc70277c892be8af540e5e21c0"}, {file = "aiohttp-3.12.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3ead1c00f8521a5c9070fcb88f02967b1d8a0544e6d85c253f6968b785e1a2ab"}, {file = "aiohttp-3.12.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6990ef617f14450bc6b34941dba4f12d5613cbf4e33805932f853fbd1cf18bfb"}, {file = "aiohttp-3.12.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd736ed420f4db2b8148b52b46b88ed038d0354255f9a73196b7bbce3ea97545"}, {file = "aiohttp-3.12.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c5092ce14361a73086b90c6efb3948ffa5be2f5b6fbcf52e8d8c8b8848bb97c"}, {file = "aiohttp-3.12.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:aaa2234bb60c4dbf82893e934d8ee8dea30446f0647e024074237a56a08c01bd"}, {file = "aiohttp-3.12.15-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:6d86a2fbdd14192e2f234a92d3b494dd4457e683ba07e5905a0b3ee25389ac9f"}, {file = "aiohttp-3.12.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a041e7e2612041a6ddf1c6a33b883be6a421247c7afd47e885969ee4cc58bd8d"}, {file = "aiohttp-3.12.15-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5015082477abeafad7203757ae44299a610e89ee82a1503e3d4184e6bafdd519"}, {file = "aiohttp-3.12.15-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:56822ff5ddfd1b745534e658faba944012346184fbfe732e0d6134b744516eea"}, {file = "aiohttp-3.12.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b2acbbfff69019d9014508c4ba0401822e8bae5a5fdc3b6814285b71231b60f3"}, {file = "aiohttp-3.12.15-cp312-cp312-win32.whl", hash = "sha256:d849b0901b50f2185874b9a232f38e26b9b3d4810095a7572eacea939132d4e1"}, {file = "aiohttp-3.12.15-cp312-cp312-win_amd64.whl", hash = "sha256:b390ef5f62bb508a9d67cb3bba9b8356e23b3996da7062f1a57ce1a79d2b3d34"}, {file = "aiohttp-3.12.15-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9f922ffd05034d439dde1c77a20461cf4a1b0831e6caa26151fe7aa8aaebc315"}, {file = "aiohttp-3.12.15-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2ee8a8ac39ce45f3e55663891d4b1d15598c157b4d494a4613e704c8b43112cd"}, {file = "aiohttp-3.12.15-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3eae49032c29d356b94eee45a3f39fdf4b0814b397638c2f718e96cfadf4c4e4"}, {file = "aiohttp-3.12.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b97752ff12cc12f46a9b20327104448042fce5c33a624f88c18f66f9368091c7"}, {file = "aiohttp-3.12.15-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:894261472691d6fe76ebb7fcf2e5870a2ac284c7406ddc95823c8598a1390f0d"}, {file = "aiohttp-3.12.15-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5fa5d9eb82ce98959fc1031c28198b431b4d9396894f385cb63f1e2f3f20ca6b"}, {file = "aiohttp-3.12.15-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0fa751efb11a541f57db59c1dd821bec09031e01452b2b6217319b3a1f34f3d"}, {file = "aiohttp-3.12.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5346b93e62ab51ee2a9d68e8f73c7cf96ffb73568a23e683f931e52450e4148d"}, {file = "aiohttp-3.12.15-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:049ec0360f939cd164ecbfd2873eaa432613d5e77d6b04535e3d1fbae5a9e645"}, {file = "aiohttp-3.12.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b52dcf013b57464b6d1e51b627adfd69a8053e84b7103a7cd49c030f9ca44461"}, {file = "aiohttp-3.12.15-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:9b2af240143dd2765e0fb661fd0361a1b469cab235039ea57663cda087250ea9"}, {file = "aiohttp-3.12.15-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ac77f709a2cde2cc71257ab2d8c74dd157c67a0558a0d2799d5d571b4c63d44d"}, {file = "aiohttp-3.12.15-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:47f6b962246f0a774fbd3b6b7be25d59b06fdb2f164cf2513097998fc6a29693"}, {file = "aiohttp-3.12.15-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:760fb7db442f284996e39cf9915a94492e1896baac44f06ae551974907922b64"}, {file = "aiohttp-3.12.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ad702e57dc385cae679c39d318def49aef754455f237499d5b99bea4ef582e51"}, {file = "aiohttp-3.12.15-cp313-cp313-win32.whl", hash = "sha256:f813c3e9032331024de2eb2e32a88d86afb69291fbc37a3a3ae81cc9917fb3d0"}, {file = "aiohttp-3.12.15-cp313-cp313-win_amd64.whl", hash = "sha256:1a649001580bdb37c6fdb1bebbd7e3bc688e8ec2b5c6f52edbb664662b17dc84"}, {file = "aiohttp-3.12.15-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:691d203c2bdf4f4637792efbbcdcd157ae11e55eaeb5e9c360c1206fb03d4d98"}, {file = "aiohttp-3.12.15-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8e995e1abc4ed2a454c731385bf4082be06f875822adc4c6d9eaadf96e20d406"}, {file = "aiohttp-3.12.15-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:bd44d5936ab3193c617bfd6c9a7d8d1085a8dc8c3f44d5f1dcf554d17d04cf7d"}, {file = "aiohttp-3.12.15-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46749be6e89cd78d6068cdf7da51dbcfa4321147ab8e4116ee6678d9a056a0cf"}, {file = "aiohttp-3.12.15-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0c643f4d75adea39e92c0f01b3fb83d57abdec8c9279b3078b68a3a52b3933b6"}, {file = "aiohttp-3.12.15-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0a23918fedc05806966a2438489dcffccbdf83e921a1170773b6178d04ade142"}, {file = "aiohttp-3.12.15-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:74bdd8c864b36c3673741023343565d95bfbd778ffe1eb4d412c135a28a8dc89"}, {file = "aiohttp-3.12.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a146708808c9b7a988a4af3821379e379e0f0e5e466ca31a73dbdd0325b0263"}, {file = "aiohttp-3.12.15-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7011a70b56facde58d6d26da4fec3280cc8e2a78c714c96b7a01a87930a9530"}, {file = "aiohttp-3.12.15-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:3bdd6e17e16e1dbd3db74d7f989e8af29c4d2e025f9828e6ef45fbdee158ec75"}, {file = "aiohttp-3.12.15-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:57d16590a351dfc914670bd72530fd78344b885a00b250e992faea565b7fdc05"}, {file = "aiohttp-3.12.15-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:bc9a0f6569ff990e0bbd75506c8d8fe7214c8f6579cca32f0546e54372a3bb54"}, {file = "aiohttp-3.12.15-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:536ad7234747a37e50e7b6794ea868833d5220b49c92806ae2d7e8a9d6b5de02"}, {file = "aiohttp-3.12.15-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:f0adb4177fa748072546fb650d9bd7398caaf0e15b370ed3317280b13f4083b0"}, {file = "aiohttp-3.12.15-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:14954a2988feae3987f1eb49c706bff39947605f4b6fa4027c1d75743723eb09"}, {file = "aiohttp-3.12.15-cp39-cp39-win32.whl", hash = "sha256:b784d6ed757f27574dca1c336f968f4e81130b27595e458e69457e6878251f5d"}, {file = "aiohttp-3.12.15-cp39-cp39-win_amd64.whl", hash = "sha256:86ceded4e78a992f835209e236617bffae649371c4a50d5e5a3987f237db84b8"}, {file = "aiohttp-3.12.15.tar.gz", hash = "sha256:4fc61385e9c98d72fcdf47e6dd81833f47b2f77c114c29cd64a361be57a763a2"}, ] [package.dependencies] aiohappyeyeballs = ">=2.5.0" aiosignal = ">=1.4.0" async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} attrs = ">=17.3.0" frozenlist = ">=1.1.1" multidict = ">=4.5,<7.0" propcache = ">=0.2.0" yarl = ">=1.17.0,<2.0" [package.extras] speedups = ["Brotli ; platform_python_implementation == \"CPython\"", "aiodns (>=3.3.0)", "brotlicffi ; platform_python_implementation != \"CPython\""] [[package]] name = "aiosignal" version = "1.4.0" description = "aiosignal: a list of registered asynchronous callbacks" optional = false python-versions = ">=3.9" groups = ["main", "dev"] files = [ {file = "aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e"}, {file = "aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7"}, ] [package.dependencies] frozenlist = ">=1.1.0" typing-extensions = {version = ">=4.2", markers = "python_version < \"3.13\""} [[package]] name = "alabaster" version = "0.7.16" description = "A light, configurable Sphinx theme" optional = false python-versions = ">=3.9" groups = ["dev"] markers = "python_version == \"3.9\" or platform_python_implementation == \"PyPy\" and python_version < \"3.11\"" files = [ {file = "alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92"}, {file = "alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65"}, ] [[package]] name = "alabaster" version = "1.0.0" description = "A light, configurable Sphinx theme" optional = false python-versions = ">=3.10" groups = ["dev"] markers = "platform_python_implementation != \"PyPy\" and python_version >= \"3.10\" or python_version >= \"3.11\"" files = [ {file = "alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b"}, {file = "alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e"}, ] [[package]] name = "astroid" version = "3.3.11" description = "An abstract syntax tree for Python with inference support." optional = false python-versions = ">=3.9.0" groups = ["dev"] files = [ {file = "astroid-3.3.11-py3-none-any.whl", hash = "sha256:54c760ae8322ece1abd213057c4b5bba7c49818853fc901ef09719a60dbf9dec"}, {file = "astroid-3.3.11.tar.gz", hash = "sha256:1e5a5011af2920c7c67a53f65d536d65bfa7116feeaf2354d8b94f29573bb0ce"}, ] [package.dependencies] typing-extensions = {version = ">=4", markers = "python_version < \"3.11\""} [[package]] name = "async-timeout" version = "5.0.1" description = "Timeout context manager for asyncio programs" optional = false python-versions = ">=3.8" groups = ["main", "dev"] markers = "python_version < \"3.11\"" files = [ {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, ] [[package]] name = "attrs" version = "25.3.0" description = "Classes Without Boilerplate" optional = false python-versions = ">=3.8" groups = ["main", "dev"] files = [ {file = "attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3"}, {file = "attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b"}, ] [package.extras] benchmark = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] cov = ["cloudpickle ; platform_python_implementation == \"CPython\"", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] dev = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier"] tests = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] tests-mypy = ["mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\""] [[package]] name = "babel" version = "2.17.0" description = "Internationalization utilities" optional = false python-versions = ">=3.8" groups = ["dev"] files = [ {file = "babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2"}, {file = "babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d"}, ] [package.extras] dev = ["backports.zoneinfo ; python_version < \"3.9\"", "freezegun (>=1.0,<2.0)", "jinja2 (>=3.0)", "pytest (>=6.0)", "pytest-cov", "pytz", "setuptools", "tzdata ; sys_platform == \"win32\""] [[package]] name = "backports-asyncio-runner" version = "1.2.0" description = "Backport of asyncio.Runner, a context manager that controls event loop life cycle." optional = false python-versions = "<3.11,>=3.8" groups = ["dev"] markers = "python_version < \"3.11\"" files = [ {file = "backports_asyncio_runner-1.2.0-py3-none-any.whl", hash = "sha256:0da0a936a8aeb554eccb426dc55af3ba63bcdc69fa1a600b5bb305413a4477b5"}, {file = "backports_asyncio_runner-1.2.0.tar.gz", hash = "sha256:a5aa7b2b7d8f8bfcaa2b57313f70792df84e32a2a746f585213373f900b42162"}, ] [[package]] name = "black" version = "25.1.0" description = "The uncompromising code formatter." optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "black-25.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:759e7ec1e050a15f89b770cefbf91ebee8917aac5c20483bc2d80a6c3a04df32"}, {file = "black-25.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e519ecf93120f34243e6b0054db49c00a35f84f195d5bce7e9f5cfc578fc2da"}, {file = "black-25.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:055e59b198df7ac0b7efca5ad7ff2516bca343276c466be72eb04a3bcc1f82d7"}, {file = "black-25.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:db8ea9917d6f8fc62abd90d944920d95e73c83a5ee3383493e35d271aca872e9"}, {file = "black-25.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a39337598244de4bae26475f77dda852ea00a93bd4c728e09eacd827ec929df0"}, {file = "black-25.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96c1c7cd856bba8e20094e36e0f948718dc688dba4a9d78c3adde52b9e6c2299"}, {file = "black-25.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bce2e264d59c91e52d8000d507eb20a9aca4a778731a08cfff7e5ac4a4bb7096"}, {file = "black-25.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:172b1dbff09f86ce6f4eb8edf9dede08b1fce58ba194c87d7a4f1a5aa2f5b3c2"}, {file = "black-25.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b"}, {file = "black-25.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc"}, {file = "black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f"}, {file = "black-25.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba"}, {file = "black-25.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8f0b18a02996a836cc9c9c78e5babec10930862827b1b724ddfe98ccf2f2fe4f"}, {file = "black-25.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:afebb7098bfbc70037a053b91ae8437c3857482d3a690fefc03e9ff7aa9a5fd3"}, {file = "black-25.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:030b9759066a4ee5e5aca28c3c77f9c64789cdd4de8ac1df642c40b708be6171"}, {file = "black-25.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:a22f402b410566e2d1c950708c77ebf5ebd5d0d88a6a2e87c86d9fb48afa0d18"}, {file = "black-25.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a1ee0a0c330f7b5130ce0caed9936a904793576ef4d2b98c40835d6a65afa6a0"}, {file = "black-25.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3df5f1bf91d36002b0a75389ca8663510cf0531cca8aa5c1ef695b46d98655f"}, {file = "black-25.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d9e6827d563a2c820772b32ce8a42828dc6790f095f441beef18f96aa6f8294e"}, {file = "black-25.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:bacabb307dca5ebaf9c118d2d2f6903da0d62c9faa82bd21a33eecc319559355"}, {file = "black-25.1.0-py3-none-any.whl", hash = "sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717"}, {file = "black-25.1.0.tar.gz", hash = "sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666"}, ] [package.dependencies] click = ">=8.0.0" mypy-extensions = ">=0.4.3" packaging = ">=22.0" pathspec = ">=0.9.0" platformdirs = ">=2" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} [package.extras] colorama = ["colorama (>=0.4.3)"] d = ["aiohttp (>=3.10)"] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "cachetools" version = "6.2.0" description = "Extensible memoizing collections and decorators" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "cachetools-6.2.0-py3-none-any.whl", hash = "sha256:1c76a8960c0041fcc21097e357f882197c79da0dbff766e7317890a65d7d8ba6"}, {file = "cachetools-6.2.0.tar.gz", hash = "sha256:38b328c0889450f05f5e120f56ab68c8abaf424e1275522b138ffc93253f7e32"}, ] [[package]] name = "certifi" version = "2025.8.3" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.7" groups = ["dev"] files = [ {file = "certifi-2025.8.3-py3-none-any.whl", hash = "sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5"}, {file = "certifi-2025.8.3.tar.gz", hash = "sha256:e564105f78ded564e3ae7c923924435e1daa7463faeab5bb932bc53ffae63407"}, ] [[package]] name = "chardet" version = "5.2.0" description = "Universal encoding detector for Python 3" optional = false python-versions = ">=3.7" groups = ["dev"] files = [ {file = "chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970"}, {file = "chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7"}, ] [[package]] name = "charset-normalizer" version = "3.4.3" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7" groups = ["dev"] files = [ {file = "charset_normalizer-3.4.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fb7f67a1bfa6e40b438170ebdc8158b78dc465a5a67b6dde178a46987b244a72"}, {file = "charset_normalizer-3.4.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cc9370a2da1ac13f0153780040f465839e6cccb4a1e44810124b4e22483c93fe"}, {file = "charset_normalizer-3.4.3-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:07a0eae9e2787b586e129fdcbe1af6997f8d0e5abaa0bc98c0e20e124d67e601"}, {file = "charset_normalizer-3.4.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:74d77e25adda8581ffc1c720f1c81ca082921329452eba58b16233ab1842141c"}, {file = "charset_normalizer-3.4.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d0e909868420b7049dafd3a31d45125b31143eec59235311fc4c57ea26a4acd2"}, {file = "charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c6f162aabe9a91a309510d74eeb6507fab5fff92337a15acbe77753d88d9dcf0"}, {file = "charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4ca4c094de7771a98d7fbd67d9e5dbf1eb73efa4f744a730437d8a3a5cf994f0"}, {file = "charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:02425242e96bcf29a49711b0ca9f37e451da7c70562bc10e8ed992a5a7a25cc0"}, {file = "charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:78deba4d8f9590fe4dae384aeff04082510a709957e968753ff3c48399f6f92a"}, {file = "charset_normalizer-3.4.3-cp310-cp310-win32.whl", hash = "sha256:d79c198e27580c8e958906f803e63cddb77653731be08851c7df0b1a14a8fc0f"}, {file = "charset_normalizer-3.4.3-cp310-cp310-win_amd64.whl", hash = "sha256:c6e490913a46fa054e03699c70019ab869e990270597018cef1d8562132c2669"}, {file = "charset_normalizer-3.4.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b256ee2e749283ef3ddcff51a675ff43798d92d746d1a6e4631bf8c707d22d0b"}, {file = "charset_normalizer-3.4.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:13faeacfe61784e2559e690fc53fa4c5ae97c6fcedb8eb6fb8d0a15b475d2c64"}, {file = "charset_normalizer-3.4.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:00237675befef519d9af72169d8604a067d92755e84fe76492fef5441db05b91"}, {file = "charset_normalizer-3.4.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:585f3b2a80fbd26b048a0be90c5aae8f06605d3c92615911c3a2b03a8a3b796f"}, {file = "charset_normalizer-3.4.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e78314bdc32fa80696f72fa16dc61168fda4d6a0c014e0380f9d02f0e5d8a07"}, {file = "charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:96b2b3d1a83ad55310de8c7b4a2d04d9277d5591f40761274856635acc5fcb30"}, {file = "charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:939578d9d8fd4299220161fdd76e86c6a251987476f5243e8864a7844476ba14"}, {file = "charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:fd10de089bcdcd1be95a2f73dbe6254798ec1bda9f450d5828c96f93e2536b9c"}, {file = "charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1e8ac75d72fa3775e0b7cb7e4629cec13b7514d928d15ef8ea06bca03ef01cae"}, {file = "charset_normalizer-3.4.3-cp311-cp311-win32.whl", hash = "sha256:6cf8fd4c04756b6b60146d98cd8a77d0cdae0e1ca20329da2ac85eed779b6849"}, {file = "charset_normalizer-3.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:31a9a6f775f9bcd865d88ee350f0ffb0e25936a7f930ca98995c05abf1faf21c"}, {file = "charset_normalizer-3.4.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e28e334d3ff134e88989d90ba04b47d84382a828c061d0d1027b1b12a62b39b1"}, {file = "charset_normalizer-3.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0cacf8f7297b0c4fcb74227692ca46b4a5852f8f4f24b3c766dd94a1075c4884"}, {file = "charset_normalizer-3.4.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c6fd51128a41297f5409deab284fecbe5305ebd7e5a1f959bee1c054622b7018"}, {file = "charset_normalizer-3.4.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cfb2aad70f2c6debfbcb717f23b7eb55febc0bb23dcffc0f076009da10c6392"}, {file = "charset_normalizer-3.4.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1606f4a55c0fd363d754049cdf400175ee96c992b1f8018b993941f221221c5f"}, {file = "charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:027b776c26d38b7f15b26a5da1044f376455fb3766df8fc38563b4efbc515154"}, {file = "charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:42e5088973e56e31e4fa58eb6bd709e42fc03799c11c42929592889a2e54c491"}, {file = "charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cc34f233c9e71701040d772aa7490318673aa7164a0efe3172b2981218c26d93"}, {file = "charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:320e8e66157cc4e247d9ddca8e21f427efc7a04bbd0ac8a9faf56583fa543f9f"}, {file = "charset_normalizer-3.4.3-cp312-cp312-win32.whl", hash = "sha256:fb6fecfd65564f208cbf0fba07f107fb661bcd1a7c389edbced3f7a493f70e37"}, {file = "charset_normalizer-3.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:86df271bf921c2ee3818f0522e9a5b8092ca2ad8b065ece5d7d9d0e9f4849bcc"}, {file = "charset_normalizer-3.4.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:14c2a87c65b351109f6abfc424cab3927b3bdece6f706e4d12faaf3d52ee5efe"}, {file = "charset_normalizer-3.4.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41d1fc408ff5fdfb910200ec0e74abc40387bccb3252f3f27c0676731df2b2c8"}, {file = "charset_normalizer-3.4.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1bb60174149316da1c35fa5233681f7c0f9f514509b8e399ab70fea5f17e45c9"}, {file = "charset_normalizer-3.4.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:30d006f98569de3459c2fc1f2acde170b7b2bd265dc1943e87e1a4efe1b67c31"}, {file = "charset_normalizer-3.4.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:416175faf02e4b0810f1f38bcb54682878a4af94059a1cd63b8747244420801f"}, {file = "charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6aab0f181c486f973bc7262a97f5aca3ee7e1437011ef0c2ec04b5a11d16c927"}, {file = "charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabf8315679312cfa71302f9bd509ded4f2f263fb5b765cf1433b39106c3cc9"}, {file = "charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:bd28b817ea8c70215401f657edef3a8aa83c29d447fb0b622c35403780ba11d5"}, {file = "charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:18343b2d246dc6761a249ba1fb13f9ee9a2bcd95decc767319506056ea4ad4dc"}, {file = "charset_normalizer-3.4.3-cp313-cp313-win32.whl", hash = "sha256:6fb70de56f1859a3f71261cbe41005f56a7842cc348d3aeb26237560bfa5e0ce"}, {file = "charset_normalizer-3.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:cf1ebb7d78e1ad8ec2a8c4732c7be2e736f6e5123a4146c5b89c9d1f585f8cef"}, {file = "charset_normalizer-3.4.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3cd35b7e8aedeb9e34c41385fda4f73ba609e561faedfae0a9e75e44ac558a15"}, {file = "charset_normalizer-3.4.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b89bc04de1d83006373429975f8ef9e7932534b8cc9ca582e4db7d20d91816db"}, {file = "charset_normalizer-3.4.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2001a39612b241dae17b4687898843f254f8748b796a2e16f1051a17078d991d"}, {file = "charset_normalizer-3.4.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8dcfc373f888e4fb39a7bc57e93e3b845e7f462dacc008d9749568b1c4ece096"}, {file = "charset_normalizer-3.4.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18b97b8404387b96cdbd30ad660f6407799126d26a39ca65729162fd810a99aa"}, {file = "charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ccf600859c183d70eb47e05a44cd80a4ce77394d1ac0f79dbd2dd90a69a3a049"}, {file = "charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:53cd68b185d98dde4ad8990e56a58dea83a4162161b1ea9272e5c9182ce415e0"}, {file = "charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:30a96e1e1f865f78b030d65241c1ee850cdf422d869e9028e2fc1d5e4db73b92"}, {file = "charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d716a916938e03231e86e43782ca7878fb602a125a91e7acb8b5112e2e96ac16"}, {file = "charset_normalizer-3.4.3-cp314-cp314-win32.whl", hash = "sha256:c6dbd0ccdda3a2ba7c2ecd9d77b37f3b5831687d8dc1b6ca5f56a4880cc7b7ce"}, {file = "charset_normalizer-3.4.3-cp314-cp314-win_amd64.whl", hash = "sha256:73dc19b562516fc9bcf6e5d6e596df0b4eb98d87e4f79f3ae71840e6ed21361c"}, {file = "charset_normalizer-3.4.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0f2be7e0cf7754b9a30eb01f4295cc3d4358a479843b31f328afd210e2c7598c"}, {file = "charset_normalizer-3.4.3-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c60e092517a73c632ec38e290eba714e9627abe9d301c8c8a12ec32c314a2a4b"}, {file = "charset_normalizer-3.4.3-cp38-cp38-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:252098c8c7a873e17dd696ed98bbe91dbacd571da4b87df3736768efa7a792e4"}, {file = "charset_normalizer-3.4.3-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3653fad4fe3ed447a596ae8638b437f827234f01a8cd801842e43f3d0a6b281b"}, {file = "charset_normalizer-3.4.3-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8999f965f922ae054125286faf9f11bc6932184b93011d138925a1773830bbe9"}, {file = "charset_normalizer-3.4.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d95bfb53c211b57198bb91c46dd5a2d8018b3af446583aab40074bf7988401cb"}, {file = "charset_normalizer-3.4.3-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:5b413b0b1bfd94dbf4023ad6945889f374cd24e3f62de58d6bb102c4d9ae534a"}, {file = "charset_normalizer-3.4.3-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:b5e3b2d152e74e100a9e9573837aba24aab611d39428ded46f4e4022ea7d1942"}, {file = "charset_normalizer-3.4.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a2d08ac246bb48479170408d6c19f6385fa743e7157d716e144cad849b2dd94b"}, {file = "charset_normalizer-3.4.3-cp38-cp38-win32.whl", hash = "sha256:ec557499516fc90fd374bf2e32349a2887a876fbf162c160e3c01b6849eaf557"}, {file = "charset_normalizer-3.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:5d8d01eac18c423815ed4f4a2ec3b439d654e55ee4ad610e153cf02faf67ea40"}, {file = "charset_normalizer-3.4.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:70bfc5f2c318afece2f5838ea5e4c3febada0be750fcf4775641052bbba14d05"}, {file = "charset_normalizer-3.4.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:23b6b24d74478dc833444cbd927c338349d6ae852ba53a0d02a2de1fce45b96e"}, {file = "charset_normalizer-3.4.3-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:34a7f768e3f985abdb42841e20e17b330ad3aaf4bb7e7aeeb73db2e70f077b99"}, {file = "charset_normalizer-3.4.3-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:fb731e5deb0c7ef82d698b0f4c5bb724633ee2a489401594c5c88b02e6cb15f7"}, {file = "charset_normalizer-3.4.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:257f26fed7d7ff59921b78244f3cd93ed2af1800ff048c33f624c87475819dd7"}, {file = "charset_normalizer-3.4.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1ef99f0456d3d46a50945c98de1774da86f8e992ab5c77865ea8b8195341fc19"}, {file = "charset_normalizer-3.4.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:2c322db9c8c89009a990ef07c3bcc9f011a3269bc06782f916cd3d9eed7c9312"}, {file = "charset_normalizer-3.4.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:511729f456829ef86ac41ca78c63a5cb55240ed23b4b737faca0eb1abb1c41bc"}, {file = "charset_normalizer-3.4.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:88ab34806dea0671532d3f82d82b85e8fc23d7b2dd12fa837978dad9bb392a34"}, {file = "charset_normalizer-3.4.3-cp39-cp39-win32.whl", hash = "sha256:16a8770207946ac75703458e2c743631c79c59c5890c80011d536248f8eaa432"}, {file = "charset_normalizer-3.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:d22dbedd33326a4a5190dd4fe9e9e693ef12160c77382d9e87919bce54f3d4ca"}, {file = "charset_normalizer-3.4.3-py3-none-any.whl", hash = "sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a"}, {file = "charset_normalizer-3.4.3.tar.gz", hash = "sha256:6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14"}, ] [[package]] name = "click" version = "8.1.8" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.7" groups = ["dev"] markers = "python_version == \"3.9\" or platform_python_implementation == \"PyPy\" and python_version < \"3.11\"" files = [ {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, ] [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} [[package]] name = "click" version = "8.2.1" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.10" groups = ["dev"] markers = "platform_python_implementation != \"PyPy\" and python_version >= \"3.10\" or python_version >= \"3.11\"" files = [ {file = "click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b"}, {file = "click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202"}, ] [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} [[package]] name = "codecov" version = "2.1.13" description = "Hosted coverage reports for GitHub, Bitbucket and Gitlab" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" groups = ["dev"] files = [ {file = "codecov-2.1.13-py2.py3-none-any.whl", hash = "sha256:c2ca5e51bba9ebb43644c43d0690148a55086f7f5e6fd36170858fa4206744d5"}, {file = "codecov-2.1.13.tar.gz", hash = "sha256:2362b685633caeaf45b9951a9b76ce359cd3581dd515b430c6c3f5dfb4d92a8c"}, ] [package.dependencies] coverage = "*" requests = ">=2.7.9" [[package]] name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" groups = ["dev"] files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] [[package]] name = "coverage" version = "7.10.6" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "coverage-7.10.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:70e7bfbd57126b5554aa482691145f798d7df77489a177a6bef80de78860a356"}, {file = "coverage-7.10.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e41be6f0f19da64af13403e52f2dec38bbc2937af54df8ecef10850ff8d35301"}, {file = "coverage-7.10.6-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:c61fc91ab80b23f5fddbee342d19662f3d3328173229caded831aa0bd7595460"}, {file = "coverage-7.10.6-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:10356fdd33a7cc06e8051413140bbdc6f972137508a3572e3f59f805cd2832fd"}, {file = "coverage-7.10.6-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:80b1695cf7c5ebe7b44bf2521221b9bb8cdf69b1f24231149a7e3eb1ae5fa2fb"}, {file = "coverage-7.10.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2e4c33e6378b9d52d3454bd08847a8651f4ed23ddbb4a0520227bd346382bbc6"}, {file = "coverage-7.10.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c8a3ec16e34ef980a46f60dc6ad86ec60f763c3f2fa0db6d261e6e754f72e945"}, {file = "coverage-7.10.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7d79dabc0a56f5af990cc6da9ad1e40766e82773c075f09cc571e2076fef882e"}, {file = "coverage-7.10.6-cp310-cp310-win32.whl", hash = "sha256:86b9b59f2b16e981906e9d6383eb6446d5b46c278460ae2c36487667717eccf1"}, {file = "coverage-7.10.6-cp310-cp310-win_amd64.whl", hash = "sha256:e132b9152749bd33534e5bd8565c7576f135f157b4029b975e15ee184325f528"}, {file = "coverage-7.10.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c706db3cabb7ceef779de68270150665e710b46d56372455cd741184f3868d8f"}, {file = "coverage-7.10.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8e0c38dc289e0508ef68ec95834cb5d2e96fdbe792eaccaa1bccac3966bbadcc"}, {file = "coverage-7.10.6-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:752a3005a1ded28f2f3a6e8787e24f28d6abe176ca64677bcd8d53d6fe2ec08a"}, {file = "coverage-7.10.6-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:689920ecfd60f992cafca4f5477d55720466ad2c7fa29bb56ac8d44a1ac2b47a"}, {file = "coverage-7.10.6-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ec98435796d2624d6905820a42f82149ee9fc4f2d45c2c5bc5a44481cc50db62"}, {file = "coverage-7.10.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b37201ce4a458c7a758ecc4efa92fa8ed783c66e0fa3c42ae19fc454a0792153"}, {file = "coverage-7.10.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:2904271c80898663c810a6b067920a61dd8d38341244a3605bd31ab55250dad5"}, {file = "coverage-7.10.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5aea98383463d6e1fa4e95416d8de66f2d0cb588774ee20ae1b28df826bcb619"}, {file = "coverage-7.10.6-cp311-cp311-win32.whl", hash = "sha256:e3fb1fa01d3598002777dd259c0c2e6d9d5e10e7222976fc8e03992f972a2cba"}, {file = "coverage-7.10.6-cp311-cp311-win_amd64.whl", hash = "sha256:f35ed9d945bece26553d5b4c8630453169672bea0050a564456eb88bdffd927e"}, {file = "coverage-7.10.6-cp311-cp311-win_arm64.whl", hash = "sha256:99e1a305c7765631d74b98bf7dbf54eeea931f975e80f115437d23848ee8c27c"}, {file = "coverage-7.10.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5b2dd6059938063a2c9fee1af729d4f2af28fd1a545e9b7652861f0d752ebcea"}, {file = "coverage-7.10.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:388d80e56191bf846c485c14ae2bc8898aa3124d9d35903fef7d907780477634"}, {file = "coverage-7.10.6-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:90cb5b1a4670662719591aa92d0095bb41714970c0b065b02a2610172dbf0af6"}, {file = "coverage-7.10.6-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:961834e2f2b863a0e14260a9a273aff07ff7818ab6e66d2addf5628590c628f9"}, {file = "coverage-7.10.6-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bf9a19f5012dab774628491659646335b1928cfc931bf8d97b0d5918dd58033c"}, {file = "coverage-7.10.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:99c4283e2a0e147b9c9cc6bc9c96124de9419d6044837e9799763a0e29a7321a"}, {file = "coverage-7.10.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:282b1b20f45df57cc508c1e033403f02283adfb67d4c9c35a90281d81e5c52c5"}, {file = "coverage-7.10.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8cdbe264f11afd69841bd8c0d83ca10b5b32853263ee62e6ac6a0ab63895f972"}, {file = "coverage-7.10.6-cp312-cp312-win32.whl", hash = "sha256:a517feaf3a0a3eca1ee985d8373135cfdedfbba3882a5eab4362bda7c7cf518d"}, {file = "coverage-7.10.6-cp312-cp312-win_amd64.whl", hash = "sha256:856986eadf41f52b214176d894a7de05331117f6035a28ac0016c0f63d887629"}, {file = "coverage-7.10.6-cp312-cp312-win_arm64.whl", hash = "sha256:acf36b8268785aad739443fa2780c16260ee3fa09d12b3a70f772ef100939d80"}, {file = "coverage-7.10.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ffea0575345e9ee0144dfe5701aa17f3ba546f8c3bb48db62ae101afb740e7d6"}, {file = "coverage-7.10.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:95d91d7317cde40a1c249d6b7382750b7e6d86fad9d8eaf4fa3f8f44cf171e80"}, {file = "coverage-7.10.6-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3e23dd5408fe71a356b41baa82892772a4cefcf758f2ca3383d2aa39e1b7a003"}, {file = "coverage-7.10.6-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0f3f56e4cb573755e96a16501a98bf211f100463d70275759e73f3cbc00d4f27"}, {file = "coverage-7.10.6-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:db4a1d897bbbe7339946ffa2fe60c10cc81c43fab8b062d3fcb84188688174a4"}, {file = "coverage-7.10.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d8fd7879082953c156d5b13c74aa6cca37f6a6f4747b39538504c3f9c63d043d"}, {file = "coverage-7.10.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:28395ca3f71cd103b8c116333fa9db867f3a3e1ad6a084aa3725ae002b6583bc"}, {file = "coverage-7.10.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:61c950fc33d29c91b9e18540e1aed7d9f6787cc870a3e4032493bbbe641d12fc"}, {file = "coverage-7.10.6-cp313-cp313-win32.whl", hash = "sha256:160c00a5e6b6bdf4e5984b0ef21fc860bc94416c41b7df4d63f536d17c38902e"}, {file = "coverage-7.10.6-cp313-cp313-win_amd64.whl", hash = "sha256:628055297f3e2aa181464c3808402887643405573eb3d9de060d81531fa79d32"}, {file = "coverage-7.10.6-cp313-cp313-win_arm64.whl", hash = "sha256:df4ec1f8540b0bcbe26ca7dd0f541847cc8a108b35596f9f91f59f0c060bfdd2"}, {file = "coverage-7.10.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:c9a8b7a34a4de3ed987f636f71881cd3b8339f61118b1aa311fbda12741bff0b"}, {file = "coverage-7.10.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8dd5af36092430c2b075cee966719898f2ae87b636cefb85a653f1d0ba5d5393"}, {file = "coverage-7.10.6-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:b0353b0f0850d49ada66fdd7d0c7cdb0f86b900bb9e367024fd14a60cecc1e27"}, {file = "coverage-7.10.6-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:d6b9ae13d5d3e8aeca9ca94198aa7b3ebbc5acfada557d724f2a1f03d2c0b0df"}, {file = "coverage-7.10.6-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:675824a363cc05781b1527b39dc2587b8984965834a748177ee3c37b64ffeafb"}, {file = "coverage-7.10.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:692d70ea725f471a547c305f0d0fc6a73480c62fb0da726370c088ab21aed282"}, {file = "coverage-7.10.6-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:851430a9a361c7a8484a36126d1d0ff8d529d97385eacc8dfdc9bfc8c2d2cbe4"}, {file = "coverage-7.10.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d9369a23186d189b2fc95cc08b8160ba242057e887d766864f7adf3c46b2df21"}, {file = "coverage-7.10.6-cp313-cp313t-win32.whl", hash = "sha256:92be86fcb125e9bda0da7806afd29a3fd33fdf58fba5d60318399adf40bf37d0"}, {file = "coverage-7.10.6-cp313-cp313t-win_amd64.whl", hash = "sha256:6b3039e2ca459a70c79523d39347d83b73f2f06af5624905eba7ec34d64d80b5"}, {file = "coverage-7.10.6-cp313-cp313t-win_arm64.whl", hash = "sha256:3fb99d0786fe17b228eab663d16bee2288e8724d26a199c29325aac4b0319b9b"}, {file = "coverage-7.10.6-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:6008a021907be8c4c02f37cdc3ffb258493bdebfeaf9a839f9e71dfdc47b018e"}, {file = "coverage-7.10.6-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:5e75e37f23eb144e78940b40395b42f2321951206a4f50e23cfd6e8a198d3ceb"}, {file = "coverage-7.10.6-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:0f7cb359a448e043c576f0da00aa8bfd796a01b06aa610ca453d4dde09cc1034"}, {file = "coverage-7.10.6-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c68018e4fc4e14b5668f1353b41ccf4bc83ba355f0e1b3836861c6f042d89ac1"}, {file = "coverage-7.10.6-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cd4b2b0707fc55afa160cd5fc33b27ccbf75ca11d81f4ec9863d5793fc6df56a"}, {file = "coverage-7.10.6-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4cec13817a651f8804a86e4f79d815b3b28472c910e099e4d5a0e8a3b6a1d4cb"}, {file = "coverage-7.10.6-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:f2a6a8e06bbda06f78739f40bfb56c45d14eb8249d0f0ea6d4b3d48e1f7c695d"}, {file = "coverage-7.10.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:081b98395ced0d9bcf60ada7661a0b75f36b78b9d7e39ea0790bb4ed8da14747"}, {file = "coverage-7.10.6-cp314-cp314-win32.whl", hash = "sha256:6937347c5d7d069ee776b2bf4e1212f912a9f1f141a429c475e6089462fcecc5"}, {file = "coverage-7.10.6-cp314-cp314-win_amd64.whl", hash = "sha256:adec1d980fa07e60b6ef865f9e5410ba760e4e1d26f60f7e5772c73b9a5b0713"}, {file = "coverage-7.10.6-cp314-cp314-win_arm64.whl", hash = "sha256:a80f7aef9535442bdcf562e5a0d5a5538ce8abe6bb209cfbf170c462ac2c2a32"}, {file = "coverage-7.10.6-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:0de434f4fbbe5af4fa7989521c655c8c779afb61c53ab561b64dcee6149e4c65"}, {file = "coverage-7.10.6-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6e31b8155150c57e5ac43ccd289d079eb3f825187d7c66e755a055d2c85794c6"}, {file = "coverage-7.10.6-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:98cede73eb83c31e2118ae8d379c12e3e42736903a8afcca92a7218e1f2903b0"}, {file = "coverage-7.10.6-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f863c08f4ff6b64fa8045b1e3da480f5374779ef187f07b82e0538c68cb4ff8e"}, {file = "coverage-7.10.6-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2b38261034fda87be356f2c3f42221fdb4171c3ce7658066ae449241485390d5"}, {file = "coverage-7.10.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:0e93b1476b79eae849dc3872faeb0bf7948fd9ea34869590bc16a2a00b9c82a7"}, {file = "coverage-7.10.6-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:ff8a991f70f4c0cf53088abf1e3886edcc87d53004c7bb94e78650b4d3dac3b5"}, {file = "coverage-7.10.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ac765b026c9f33044419cbba1da913cfb82cca1b60598ac1c7a5ed6aac4621a0"}, {file = "coverage-7.10.6-cp314-cp314t-win32.whl", hash = "sha256:441c357d55f4936875636ef2cfb3bee36e466dcf50df9afbd398ce79dba1ebb7"}, {file = "coverage-7.10.6-cp314-cp314t-win_amd64.whl", hash = "sha256:073711de3181b2e204e4870ac83a7c4853115b42e9cd4d145f2231e12d670930"}, {file = "coverage-7.10.6-cp314-cp314t-win_arm64.whl", hash = "sha256:137921f2bac5559334ba66122b753db6dc5d1cf01eb7b64eb412bb0d064ef35b"}, {file = "coverage-7.10.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:90558c35af64971d65fbd935c32010f9a2f52776103a259f1dee865fe8259352"}, {file = "coverage-7.10.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8953746d371e5695405806c46d705a3cd170b9cc2b9f93953ad838f6c1e58612"}, {file = "coverage-7.10.6-cp39-cp39-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:c83f6afb480eae0313114297d29d7c295670a41c11b274e6bca0c64540c1ce7b"}, {file = "coverage-7.10.6-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7eb68d356ba0cc158ca535ce1381dbf2037fa8cb5b1ae5ddfc302e7317d04144"}, {file = "coverage-7.10.6-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5b15a87265e96307482746d86995f4bff282f14b027db75469c446da6127433b"}, {file = "coverage-7.10.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:fc53ba868875bfbb66ee447d64d6413c2db91fddcfca57025a0e7ab5b07d5862"}, {file = "coverage-7.10.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:efeda443000aa23f276f4df973cb82beca682fd800bb119d19e80504ffe53ec2"}, {file = "coverage-7.10.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9702b59d582ff1e184945d8b501ffdd08d2cee38d93a2206aa5f1365ce0b8d78"}, {file = "coverage-7.10.6-cp39-cp39-win32.whl", hash = "sha256:2195f8e16ba1a44651ca684db2ea2b2d4b5345da12f07d9c22a395202a05b23c"}, {file = "coverage-7.10.6-cp39-cp39-win_amd64.whl", hash = "sha256:f32ff80e7ef6a5b5b606ea69a36e97b219cd9dc799bcf2963018a4d8f788cfbf"}, {file = "coverage-7.10.6-py3-none-any.whl", hash = "sha256:92c4ecf6bf11b2e85fd4d8204814dc26e6a19f0c9d938c207c5cb0eadfcabbe3"}, {file = "coverage-7.10.6.tar.gz", hash = "sha256:f644a3ae5933a552a29dbb9aa2f90c677a875f80ebea028e5a52a4f429044b90"}, ] [package.dependencies] tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} [package.extras] toml = ["tomli ; python_full_version <= \"3.11.0a6\""] [[package]] name = "dill" version = "0.4.0" description = "serialize all of Python" optional = false python-versions = ">=3.8" groups = ["dev"] files = [ {file = "dill-0.4.0-py3-none-any.whl", hash = "sha256:44f54bf6412c2c8464c14e8243eb163690a9800dbe2c367330883b19c7561049"}, {file = "dill-0.4.0.tar.gz", hash = "sha256:0633f1d2df477324f53a895b02c901fb961bdbf65a17122586ea7019292cbcf0"}, ] [package.extras] graph = ["objgraph (>=1.7.2)"] profile = ["gprof2dot (>=2022.7.29)"] [[package]] name = "distlib" version = "0.4.0" description = "Distribution utilities" optional = false python-versions = "*" groups = ["dev"] files = [ {file = "distlib-0.4.0-py2.py3-none-any.whl", hash = "sha256:9659f7d87e46584a30b5780e43ac7a2143098441670ff0a49d5f9034c54a6c16"}, {file = "distlib-0.4.0.tar.gz", hash = "sha256:feec40075be03a04501a973d81f633735b4b69f98b05450592310c0f401a4e0d"}, ] [[package]] name = "docutils" version = "0.21.2" description = "Docutils -- Python Documentation Utilities" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"}, {file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"}, ] [[package]] name = "exceptiongroup" version = "1.3.0" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" groups = ["dev"] markers = "python_version < \"3.11\"" files = [ {file = "exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10"}, {file = "exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88"}, ] [package.dependencies] typing-extensions = {version = ">=4.6.0", markers = "python_version < \"3.13\""} [package.extras] test = ["pytest (>=6)"] [[package]] name = "filelock" version = "3.19.1" description = "A platform independent file lock." optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "filelock-3.19.1-py3-none-any.whl", hash = "sha256:d38e30481def20772f5baf097c122c3babc4fcdb7e14e57049eb9d88c6dc017d"}, {file = "filelock-3.19.1.tar.gz", hash = "sha256:66eda1888b0171c998b35be2bcc0f6d75c388a7ce20c3f3f37aa8e96c2dddf58"}, ] [[package]] name = "flake8" version = "7.3.0" description = "the modular source code checker: pep8 pyflakes and co" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "flake8-7.3.0-py2.py3-none-any.whl", hash = "sha256:b9696257b9ce8beb888cdbe31cf885c90d31928fe202be0889a7cdafad32f01e"}, {file = "flake8-7.3.0.tar.gz", hash = "sha256:fe044858146b9fc69b551a4b490d69cf960fcb78ad1edcb84e7fbb1b4a8e3872"}, ] [package.dependencies] mccabe = ">=0.7.0,<0.8.0" pycodestyle = ">=2.14.0,<2.15.0" pyflakes = ">=3.4.0,<3.5.0" [[package]] name = "flake8-docstrings" version = "1.7.0" description = "Extension for flake8 which uses pydocstyle to check docstrings" optional = false python-versions = ">=3.7" groups = ["dev"] files = [ {file = "flake8_docstrings-1.7.0-py2.py3-none-any.whl", hash = "sha256:51f2344026da083fc084166a9353f5082b01f72901df422f74b4d953ae88ac75"}, {file = "flake8_docstrings-1.7.0.tar.gz", hash = "sha256:4c8cc748dc16e6869728699e5d0d685da9a10b0ea718e090b1ba088e67a941af"}, ] [package.dependencies] flake8 = ">=3" pydocstyle = ">=2.1" [[package]] name = "frozenlist" version = "1.7.0" description = "A list-like structure which implements collections.abc.MutableSequence" optional = false python-versions = ">=3.9" groups = ["main", "dev"] files = [ {file = "frozenlist-1.7.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cc4df77d638aa2ed703b878dd093725b72a824c3c546c076e8fdf276f78ee84a"}, {file = "frozenlist-1.7.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:716a9973a2cc963160394f701964fe25012600f3d311f60c790400b00e568b61"}, {file = "frozenlist-1.7.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a0fd1bad056a3600047fb9462cff4c5322cebc59ebf5d0a3725e0ee78955001d"}, {file = "frozenlist-1.7.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3789ebc19cb811163e70fe2bd354cea097254ce6e707ae42e56f45e31e96cb8e"}, {file = "frozenlist-1.7.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:af369aa35ee34f132fcfad5be45fbfcde0e3a5f6a1ec0712857f286b7d20cca9"}, {file = "frozenlist-1.7.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac64b6478722eeb7a3313d494f8342ef3478dff539d17002f849101b212ef97c"}, {file = "frozenlist-1.7.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f89f65d85774f1797239693cef07ad4c97fdd0639544bad9ac4b869782eb1981"}, {file = "frozenlist-1.7.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1073557c941395fdfcfac13eb2456cb8aad89f9de27bae29fabca8e563b12615"}, {file = "frozenlist-1.7.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ed8d2fa095aae4bdc7fdd80351009a48d286635edffee66bf865e37a9125c50"}, {file = "frozenlist-1.7.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:24c34bea555fe42d9f928ba0a740c553088500377448febecaa82cc3e88aa1fa"}, {file = "frozenlist-1.7.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:69cac419ac6a6baad202c85aaf467b65ac860ac2e7f2ac1686dc40dbb52f6577"}, {file = "frozenlist-1.7.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:960d67d0611f4c87da7e2ae2eacf7ea81a5be967861e0c63cf205215afbfac59"}, {file = "frozenlist-1.7.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:41be2964bd4b15bf575e5daee5a5ce7ed3115320fb3c2b71fca05582ffa4dc9e"}, {file = "frozenlist-1.7.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:46d84d49e00c9429238a7ce02dc0be8f6d7cd0cd405abd1bebdc991bf27c15bd"}, {file = "frozenlist-1.7.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:15900082e886edb37480335d9d518cec978afc69ccbc30bd18610b7c1b22a718"}, {file = "frozenlist-1.7.0-cp310-cp310-win32.whl", hash = "sha256:400ddd24ab4e55014bba442d917203c73b2846391dd42ca5e38ff52bb18c3c5e"}, {file = "frozenlist-1.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:6eb93efb8101ef39d32d50bce242c84bcbddb4f7e9febfa7b524532a239b4464"}, {file = "frozenlist-1.7.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:aa51e147a66b2d74de1e6e2cf5921890de6b0f4820b257465101d7f37b49fb5a"}, {file = "frozenlist-1.7.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9b35db7ce1cd71d36ba24f80f0c9e7cff73a28d7a74e91fe83e23d27c7828750"}, {file = "frozenlist-1.7.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:34a69a85e34ff37791e94542065c8416c1afbf820b68f720452f636d5fb990cd"}, {file = "frozenlist-1.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a646531fa8d82c87fe4bb2e596f23173caec9185bfbca5d583b4ccfb95183e2"}, {file = "frozenlist-1.7.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:79b2ffbba483f4ed36a0f236ccb85fbb16e670c9238313709638167670ba235f"}, {file = "frozenlist-1.7.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a26f205c9ca5829cbf82bb2a84b5c36f7184c4316617d7ef1b271a56720d6b30"}, {file = "frozenlist-1.7.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bcacfad3185a623fa11ea0e0634aac7b691aa925d50a440f39b458e41c561d98"}, {file = "frozenlist-1.7.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72c1b0fe8fe451b34f12dce46445ddf14bd2a5bcad7e324987194dc8e3a74c86"}, {file = "frozenlist-1.7.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61d1a5baeaac6c0798ff6edfaeaa00e0e412d49946c53fae8d4b8e8b3566c4ae"}, {file = "frozenlist-1.7.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7edf5c043c062462f09b6820de9854bf28cc6cc5b6714b383149745e287181a8"}, {file = "frozenlist-1.7.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:d50ac7627b3a1bd2dcef6f9da89a772694ec04d9a61b66cf87f7d9446b4a0c31"}, {file = "frozenlist-1.7.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ce48b2fece5aeb45265bb7a58259f45027db0abff478e3077e12b05b17fb9da7"}, {file = "frozenlist-1.7.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:fe2365ae915a1fafd982c146754e1de6ab3478def8a59c86e1f7242d794f97d5"}, {file = "frozenlist-1.7.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:45a6f2fdbd10e074e8814eb98b05292f27bad7d1883afbe009d96abdcf3bc898"}, {file = "frozenlist-1.7.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:21884e23cffabb157a9dd7e353779077bf5b8f9a58e9b262c6caad2ef5f80a56"}, {file = "frozenlist-1.7.0-cp311-cp311-win32.whl", hash = "sha256:284d233a8953d7b24f9159b8a3496fc1ddc00f4db99c324bd5fb5f22d8698ea7"}, {file = "frozenlist-1.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:387cbfdcde2f2353f19c2f66bbb52406d06ed77519ac7ee21be0232147c2592d"}, {file = "frozenlist-1.7.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3dbf9952c4bb0e90e98aec1bd992b3318685005702656bc6f67c1a32b76787f2"}, {file = "frozenlist-1.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:1f5906d3359300b8a9bb194239491122e6cf1444c2efb88865426f170c262cdb"}, {file = "frozenlist-1.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3dabd5a8f84573c8d10d8859a50ea2dec01eea372031929871368c09fa103478"}, {file = "frozenlist-1.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa57daa5917f1738064f302bf2626281a1cb01920c32f711fbc7bc36111058a8"}, {file = "frozenlist-1.7.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c193dda2b6d49f4c4398962810fa7d7c78f032bf45572b3e04dd5249dff27e08"}, {file = "frozenlist-1.7.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfe2b675cf0aaa6d61bf8fbffd3c274b3c9b7b1623beb3809df8a81399a4a9c4"}, {file = "frozenlist-1.7.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8fc5d5cda37f62b262405cf9652cf0856839c4be8ee41be0afe8858f17f4c94b"}, {file = "frozenlist-1.7.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0d5ce521d1dd7d620198829b87ea002956e4319002ef0bc8d3e6d045cb4646e"}, {file = "frozenlist-1.7.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:488d0a7d6a0008ca0db273c542098a0fa9e7dfaa7e57f70acef43f32b3f69dca"}, {file = "frozenlist-1.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:15a7eaba63983d22c54d255b854e8108e7e5f3e89f647fc854bd77a237e767df"}, {file = "frozenlist-1.7.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1eaa7e9c6d15df825bf255649e05bd8a74b04a4d2baa1ae46d9c2d00b2ca2cb5"}, {file = "frozenlist-1.7.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4389e06714cfa9d47ab87f784a7c5be91d3934cd6e9a7b85beef808297cc025"}, {file = "frozenlist-1.7.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:73bd45e1488c40b63fe5a7df892baf9e2a4d4bb6409a2b3b78ac1c6236178e01"}, {file = "frozenlist-1.7.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:99886d98e1643269760e5fe0df31e5ae7050788dd288947f7f007209b8c33f08"}, {file = "frozenlist-1.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:290a172aae5a4c278c6da8a96222e6337744cd9c77313efe33d5670b9f65fc43"}, {file = "frozenlist-1.7.0-cp312-cp312-win32.whl", hash = "sha256:426c7bc70e07cfebc178bc4c2bf2d861d720c4fff172181eeb4a4c41d4ca2ad3"}, {file = "frozenlist-1.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:563b72efe5da92e02eb68c59cb37205457c977aa7a449ed1b37e6939e5c47c6a"}, {file = "frozenlist-1.7.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee80eeda5e2a4e660651370ebffd1286542b67e268aa1ac8d6dbe973120ef7ee"}, {file = "frozenlist-1.7.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d1a81c85417b914139e3a9b995d4a1c84559afc839a93cf2cb7f15e6e5f6ed2d"}, {file = "frozenlist-1.7.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cbb65198a9132ebc334f237d7b0df163e4de83fb4f2bdfe46c1e654bdb0c5d43"}, {file = "frozenlist-1.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dab46c723eeb2c255a64f9dc05b8dd601fde66d6b19cdb82b2e09cc6ff8d8b5d"}, {file = "frozenlist-1.7.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6aeac207a759d0dedd2e40745575ae32ab30926ff4fa49b1635def65806fddee"}, {file = "frozenlist-1.7.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bd8c4e58ad14b4fa7802b8be49d47993182fdd4023393899632c88fd8cd994eb"}, {file = "frozenlist-1.7.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04fb24d104f425da3540ed83cbfc31388a586a7696142004c577fa61c6298c3f"}, {file = "frozenlist-1.7.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6a5c505156368e4ea6b53b5ac23c92d7edc864537ff911d2fb24c140bb175e60"}, {file = "frozenlist-1.7.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8bd7eb96a675f18aa5c553eb7ddc24a43c8c18f22e1f9925528128c052cdbe00"}, {file = "frozenlist-1.7.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:05579bf020096fe05a764f1f84cd104a12f78eaab68842d036772dc6d4870b4b"}, {file = "frozenlist-1.7.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:376b6222d114e97eeec13d46c486facd41d4f43bab626b7c3f6a8b4e81a5192c"}, {file = "frozenlist-1.7.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0aa7e176ebe115379b5b1c95b4096fb1c17cce0847402e227e712c27bdb5a949"}, {file = "frozenlist-1.7.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3fbba20e662b9c2130dc771e332a99eff5da078b2b2648153a40669a6d0e36ca"}, {file = "frozenlist-1.7.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:f3f4410a0a601d349dd406b5713fec59b4cee7e71678d5b17edda7f4655a940b"}, {file = "frozenlist-1.7.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e2cdfaaec6a2f9327bf43c933c0319a7c429058e8537c508964a133dffee412e"}, {file = "frozenlist-1.7.0-cp313-cp313-win32.whl", hash = "sha256:5fc4df05a6591c7768459caba1b342d9ec23fa16195e744939ba5914596ae3e1"}, {file = "frozenlist-1.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:52109052b9791a3e6b5d1b65f4b909703984b770694d3eb64fad124c835d7cba"}, {file = "frozenlist-1.7.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a6f86e4193bb0e235ef6ce3dde5cbabed887e0b11f516ce8a0f4d3b33078ec2d"}, {file = "frozenlist-1.7.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:82d664628865abeb32d90ae497fb93df398a69bb3434463d172b80fc25b0dd7d"}, {file = "frozenlist-1.7.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:912a7e8375a1c9a68325a902f3953191b7b292aa3c3fb0d71a216221deca460b"}, {file = "frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9537c2777167488d539bc5de2ad262efc44388230e5118868e172dd4a552b146"}, {file = "frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:f34560fb1b4c3e30ba35fa9a13894ba39e5acfc5f60f57d8accde65f46cc5e74"}, {file = "frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:acd03d224b0175f5a850edc104ac19040d35419eddad04e7cf2d5986d98427f1"}, {file = "frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2038310bc582f3d6a09b3816ab01737d60bf7b1ec70f5356b09e84fb7408ab1"}, {file = "frozenlist-1.7.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8c05e4c8e5f36e5e088caa1bf78a687528f83c043706640a92cb76cd6999384"}, {file = "frozenlist-1.7.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:765bb588c86e47d0b68f23c1bee323d4b703218037765dcf3f25c838c6fecceb"}, {file = "frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:32dc2e08c67d86d0969714dd484fd60ff08ff81d1a1e40a77dd34a387e6ebc0c"}, {file = "frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:c0303e597eb5a5321b4de9c68e9845ac8f290d2ab3f3e2c864437d3c5a30cd65"}, {file = "frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:a47f2abb4e29b3a8d0b530f7c3598badc6b134562b1a5caee867f7c62fee51e3"}, {file = "frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:3d688126c242a6fabbd92e02633414d40f50bb6002fa4cf995a1d18051525657"}, {file = "frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:4e7e9652b3d367c7bd449a727dc79d5043f48b88d0cbfd4f9f1060cf2b414104"}, {file = "frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1a85e345b4c43db8b842cab1feb41be5cc0b10a1830e6295b69d7310f99becaf"}, {file = "frozenlist-1.7.0-cp313-cp313t-win32.whl", hash = "sha256:3a14027124ddb70dfcee5148979998066897e79f89f64b13328595c4bdf77c81"}, {file = "frozenlist-1.7.0-cp313-cp313t-win_amd64.whl", hash = "sha256:3bf8010d71d4507775f658e9823210b7427be36625b387221642725b515dcf3e"}, {file = "frozenlist-1.7.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:cea3dbd15aea1341ea2de490574a4a37ca080b2ae24e4b4f4b51b9057b4c3630"}, {file = "frozenlist-1.7.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7d536ee086b23fecc36c2073c371572374ff50ef4db515e4e503925361c24f71"}, {file = "frozenlist-1.7.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dfcebf56f703cb2e346315431699f00db126d158455e513bd14089d992101e44"}, {file = "frozenlist-1.7.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:974c5336e61d6e7eb1ea5b929cb645e882aadab0095c5a6974a111e6479f8878"}, {file = "frozenlist-1.7.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c70db4a0ab5ab20878432c40563573229a7ed9241506181bba12f6b7d0dc41cb"}, {file = "frozenlist-1.7.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1137b78384eebaf70560a36b7b229f752fb64d463d38d1304939984d5cb887b6"}, {file = "frozenlist-1.7.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e793a9f01b3e8b5c0bc646fb59140ce0efcc580d22a3468d70766091beb81b35"}, {file = "frozenlist-1.7.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:74739ba8e4e38221d2c5c03d90a7e542cb8ad681915f4ca8f68d04f810ee0a87"}, {file = "frozenlist-1.7.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e63344c4e929b1a01e29bc184bbb5fd82954869033765bfe8d65d09e336a677"}, {file = "frozenlist-1.7.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2ea2a7369eb76de2217a842f22087913cdf75f63cf1307b9024ab82dfb525938"}, {file = "frozenlist-1.7.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:836b42f472a0e006e02499cef9352ce8097f33df43baaba3e0a28a964c26c7d2"}, {file = "frozenlist-1.7.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e22b9a99741294b2571667c07d9f8cceec07cb92aae5ccda39ea1b6052ed4319"}, {file = "frozenlist-1.7.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:9a19e85cc503d958abe5218953df722748d87172f71b73cf3c9257a91b999890"}, {file = "frozenlist-1.7.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:f22dac33bb3ee8fe3e013aa7b91dc12f60d61d05b7fe32191ffa84c3aafe77bd"}, {file = "frozenlist-1.7.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9ccec739a99e4ccf664ea0775149f2749b8a6418eb5b8384b4dc0a7d15d304cb"}, {file = "frozenlist-1.7.0-cp39-cp39-win32.whl", hash = "sha256:b3950f11058310008a87757f3eee16a8e1ca97979833239439586857bc25482e"}, {file = "frozenlist-1.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:43a82fce6769c70f2f5a06248b614a7d268080a9d20f7457ef10ecee5af82b63"}, {file = "frozenlist-1.7.0-py3-none-any.whl", hash = "sha256:9a5af342e34f7e97caf8c995864c7a396418ae2859cc6fdf1b1073020d516a7e"}, {file = "frozenlist-1.7.0.tar.gz", hash = "sha256:2e310d81923c2437ea8670467121cc3e9b0f76d3043cc1d2331d56c7fb7a3a8f"}, ] [[package]] name = "idna" version = "3.10" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.6" groups = ["main", "dev"] files = [ {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, ] [package.extras] all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] [[package]] name = "imagesize" version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" groups = ["dev"] files = [ {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, ] [[package]] name = "importlib-metadata" version = "8.7.0" description = "Read metadata from Python packages" optional = false python-versions = ">=3.9" groups = ["dev"] markers = "python_version == \"3.9\"" files = [ {file = "importlib_metadata-8.7.0-py3-none-any.whl", hash = "sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd"}, {file = "importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000"}, ] [package.dependencies] zipp = ">=3.20" [package.extras] check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] enabler = ["pytest-enabler (>=2.2)"] perf = ["ipython"] test = ["flufl.flake8", "importlib_resources (>=1.3) ; python_version < \"3.9\"", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] type = ["pytest-mypy"] [[package]] name = "iniconfig" version = "2.1.0" description = "brain-dead simple config-ini parsing" optional = false python-versions = ">=3.8" groups = ["dev"] files = [ {file = "iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"}, {file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"}, ] [[package]] name = "isort" version = "6.0.1" description = "A Python utility / library to sort Python imports." optional = false python-versions = ">=3.9.0" groups = ["dev"] files = [ {file = "isort-6.0.1-py3-none-any.whl", hash = "sha256:2dc5d7f65c9678d94c88dfc29161a320eec67328bc97aad576874cb4be1e9615"}, {file = "isort-6.0.1.tar.gz", hash = "sha256:1cb5df28dfbc742e490c5e41bad6da41b805b0a8be7bc93cd0fb2a8a890ac450"}, ] [package.extras] colors = ["colorama"] plugins = ["setuptools"] [[package]] name = "jedi" version = "0.17.2" description = "An autocompletion tool for Python that can be used for text editors." optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" groups = ["dev"] files = [ {file = "jedi-0.17.2-py2.py3-none-any.whl", hash = "sha256:98cc583fa0f2f8304968199b01b6b4b94f469a1f4a74c1560506ca2a211378b5"}, {file = "jedi-0.17.2.tar.gz", hash = "sha256:86ed7d9b750603e4ba582ea8edc678657fb4007894a12bcf6f4bb97892f31d20"}, ] [package.dependencies] parso = ">=0.7.0,<0.8.0" [package.extras] qa = ["flake8 (==3.7.9)"] testing = ["Django (<3.1)", "colorama", "docopt", "pytest (>=3.9.0,<5.0.0)"] [[package]] name = "jinja2" version = "3.1.6" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" groups = ["dev"] files = [ {file = "jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"}, {file = "jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"}, ] [package.dependencies] MarkupSafe = ">=2.0" [package.extras] i18n = ["Babel (>=2.7)"] [[package]] name = "markupsafe" version = "3.0.2" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, ] [[package]] name = "mccabe" version = "0.7.0" description = "McCabe checker, plugin for flake8" optional = false python-versions = ">=3.6" groups = ["dev"] files = [ {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, ] [[package]] name = "multidict" version = "6.6.4" description = "multidict implementation" optional = false python-versions = ">=3.9" groups = ["main", "dev"] files = [ {file = "multidict-6.6.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b8aa6f0bd8125ddd04a6593437bad6a7e70f300ff4180a531654aa2ab3f6d58f"}, {file = "multidict-6.6.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b9e5853bbd7264baca42ffc53391b490d65fe62849bf2c690fa3f6273dbcd0cb"}, {file = "multidict-6.6.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0af5f9dee472371e36d6ae38bde009bd8ce65ac7335f55dcc240379d7bed1495"}, {file = "multidict-6.6.4-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:d24f351e4d759f5054b641c81e8291e5d122af0fca5c72454ff77f7cbe492de8"}, {file = "multidict-6.6.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:db6a3810eec08280a172a6cd541ff4a5f6a97b161d93ec94e6c4018917deb6b7"}, {file = "multidict-6.6.4-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a1b20a9d56b2d81e2ff52ecc0670d583eaabaa55f402e8d16dd062373dbbe796"}, {file = "multidict-6.6.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8c9854df0eaa610a23494c32a6f44a3a550fb398b6b51a56e8c6b9b3689578db"}, {file = "multidict-6.6.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4bb7627fd7a968f41905a4d6343b0d63244a0623f006e9ed989fa2b78f4438a0"}, {file = "multidict-6.6.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:caebafea30ed049c57c673d0b36238b1748683be2593965614d7b0e99125c877"}, {file = "multidict-6.6.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ad887a8250eb47d3ab083d2f98db7f48098d13d42eb7a3b67d8a5c795f224ace"}, {file = "multidict-6.6.4-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:ed8358ae7d94ffb7c397cecb62cbac9578a83ecefc1eba27b9090ee910e2efb6"}, {file = "multidict-6.6.4-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:ecab51ad2462197a4c000b6d5701fc8585b80eecb90583635d7e327b7b6923eb"}, {file = "multidict-6.6.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:c5c97aa666cf70e667dfa5af945424ba1329af5dd988a437efeb3a09430389fb"}, {file = "multidict-6.6.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:9a950b7cf54099c1209f455ac5970b1ea81410f2af60ed9eb3c3f14f0bfcf987"}, {file = "multidict-6.6.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:163c7ea522ea9365a8a57832dea7618e6cbdc3cd75f8c627663587459a4e328f"}, {file = "multidict-6.6.4-cp310-cp310-win32.whl", hash = "sha256:17d2cbbfa6ff20821396b25890f155f40c986f9cfbce5667759696d83504954f"}, {file = "multidict-6.6.4-cp310-cp310-win_amd64.whl", hash = "sha256:ce9a40fbe52e57e7edf20113a4eaddfacac0561a0879734e636aa6d4bb5e3fb0"}, {file = "multidict-6.6.4-cp310-cp310-win_arm64.whl", hash = "sha256:01d0959807a451fe9fdd4da3e139cb5b77f7328baf2140feeaf233e1d777b729"}, {file = "multidict-6.6.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c7a0e9b561e6460484318a7612e725df1145d46b0ef57c6b9866441bf6e27e0c"}, {file = "multidict-6.6.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6bf2f10f70acc7a2446965ffbc726e5fc0b272c97a90b485857e5c70022213eb"}, {file = "multidict-6.6.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:66247d72ed62d5dd29752ffc1d3b88f135c6a8de8b5f63b7c14e973ef5bda19e"}, {file = "multidict-6.6.4-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:105245cc6b76f51e408451a844a54e6823bbd5a490ebfe5bdfc79798511ceded"}, {file = "multidict-6.6.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cbbc54e58b34c3bae389ef00046be0961f30fef7cb0dd9c7756aee376a4f7683"}, {file = "multidict-6.6.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:56c6b3652f945c9bc3ac6c8178cd93132b8d82dd581fcbc3a00676c51302bc1a"}, {file = "multidict-6.6.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b95494daf857602eccf4c18ca33337dd2be705bccdb6dddbfc9d513e6addb9d9"}, {file = "multidict-6.6.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e5b1413361cef15340ab9dc61523e653d25723e82d488ef7d60a12878227ed50"}, {file = "multidict-6.6.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e167bf899c3d724f9662ef00b4f7fef87a19c22b2fead198a6f68b263618df52"}, {file = "multidict-6.6.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:aaea28ba20a9026dfa77f4b80369e51cb767c61e33a2d4043399c67bd95fb7c6"}, {file = "multidict-6.6.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:8c91cdb30809a96d9ecf442ec9bc45e8cfaa0f7f8bdf534e082c2443a196727e"}, {file = "multidict-6.6.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1a0ccbfe93ca114c5d65a2471d52d8829e56d467c97b0e341cf5ee45410033b3"}, {file = "multidict-6.6.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:55624b3f321d84c403cb7d8e6e982f41ae233d85f85db54ba6286f7295dc8a9c"}, {file = "multidict-6.6.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:4a1fb393a2c9d202cb766c76208bd7945bc194eba8ac920ce98c6e458f0b524b"}, {file = "multidict-6.6.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:43868297a5759a845fa3a483fb4392973a95fb1de891605a3728130c52b8f40f"}, {file = "multidict-6.6.4-cp311-cp311-win32.whl", hash = "sha256:ed3b94c5e362a8a84d69642dbeac615452e8af9b8eb825b7bc9f31a53a1051e2"}, {file = "multidict-6.6.4-cp311-cp311-win_amd64.whl", hash = "sha256:d8c112f7a90d8ca5d20213aa41eac690bb50a76da153e3afb3886418e61cb22e"}, {file = "multidict-6.6.4-cp311-cp311-win_arm64.whl", hash = "sha256:3bb0eae408fa1996d87247ca0d6a57b7fc1dcf83e8a5c47ab82c558c250d4adf"}, {file = "multidict-6.6.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0ffb87be160942d56d7b87b0fdf098e81ed565add09eaa1294268c7f3caac4c8"}, {file = "multidict-6.6.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d191de6cbab2aff5de6c5723101705fd044b3e4c7cfd587a1929b5028b9714b3"}, {file = "multidict-6.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:38a0956dd92d918ad5feff3db8fcb4a5eb7dba114da917e1a88475619781b57b"}, {file = "multidict-6.6.4-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:6865f6d3b7900ae020b495d599fcf3765653bc927951c1abb959017f81ae8287"}, {file = "multidict-6.6.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a2088c126b6f72db6c9212ad827d0ba088c01d951cee25e758c450da732c138"}, {file = "multidict-6.6.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0f37bed7319b848097085d7d48116f545985db988e2256b2e6f00563a3416ee6"}, {file = "multidict-6.6.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:01368e3c94032ba6ca0b78e7ccb099643466cf24f8dc8eefcfdc0571d56e58f9"}, {file = "multidict-6.6.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8fe323540c255db0bffee79ad7f048c909f2ab0edb87a597e1c17da6a54e493c"}, {file = "multidict-6.6.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8eb3025f17b0a4c3cd08cda49acf312a19ad6e8a4edd9dbd591e6506d999402"}, {file = "multidict-6.6.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bbc14f0365534d35a06970d6a83478b249752e922d662dc24d489af1aa0d1be7"}, {file = "multidict-6.6.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:75aa52fba2d96bf972e85451b99d8e19cc37ce26fd016f6d4aa60da9ab2b005f"}, {file = "multidict-6.6.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4fefd4a815e362d4f011919d97d7b4a1e566f1dde83dc4ad8cfb5b41de1df68d"}, {file = "multidict-6.6.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:db9801fe021f59a5b375ab778973127ca0ac52429a26e2fd86aa9508f4d26eb7"}, {file = "multidict-6.6.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a650629970fa21ac1fb06ba25dabfc5b8a2054fcbf6ae97c758aa956b8dba802"}, {file = "multidict-6.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:452ff5da78d4720d7516a3a2abd804957532dd69296cb77319c193e3ffb87e24"}, {file = "multidict-6.6.4-cp312-cp312-win32.whl", hash = "sha256:8c2fcb12136530ed19572bbba61b407f655e3953ba669b96a35036a11a485793"}, {file = "multidict-6.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:047d9425860a8c9544fed1b9584f0c8bcd31bcde9568b047c5e567a1025ecd6e"}, {file = "multidict-6.6.4-cp312-cp312-win_arm64.whl", hash = "sha256:14754eb72feaa1e8ae528468f24250dd997b8e2188c3d2f593f9eba259e4b364"}, {file = "multidict-6.6.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f46a6e8597f9bd71b31cc708195d42b634c8527fecbcf93febf1052cacc1f16e"}, {file = "multidict-6.6.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:22e38b2bc176c5eb9c0a0e379f9d188ae4cd8b28c0f53b52bce7ab0a9e534657"}, {file = "multidict-6.6.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5df8afd26f162da59e218ac0eefaa01b01b2e6cd606cffa46608f699539246da"}, {file = "multidict-6.6.4-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:49517449b58d043023720aa58e62b2f74ce9b28f740a0b5d33971149553d72aa"}, {file = "multidict-6.6.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ae9408439537c5afdca05edd128a63f56a62680f4b3c234301055d7a2000220f"}, {file = "multidict-6.6.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:87a32d20759dc52a9e850fe1061b6e41ab28e2998d44168a8a341b99ded1dba0"}, {file = "multidict-6.6.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:52e3c8d43cdfff587ceedce9deb25e6ae77daba560b626e97a56ddcad3756879"}, {file = "multidict-6.6.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ad8850921d3a8d8ff6fbef790e773cecfc260bbfa0566998980d3fa8f520bc4a"}, {file = "multidict-6.6.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:497a2954adc25c08daff36f795077f63ad33e13f19bfff7736e72c785391534f"}, {file = "multidict-6.6.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:024ce601f92d780ca1617ad4be5ac15b501cc2414970ffa2bb2bbc2bd5a68fa5"}, {file = "multidict-6.6.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:a693fc5ed9bdd1c9e898013e0da4dcc640de7963a371c0bd458e50e046bf6438"}, {file = "multidict-6.6.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:190766dac95aab54cae5b152a56520fd99298f32a1266d66d27fdd1b5ac00f4e"}, {file = "multidict-6.6.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:34d8f2a5ffdceab9dcd97c7a016deb2308531d5f0fced2bb0c9e1df45b3363d7"}, {file = "multidict-6.6.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:59e8d40ab1f5a8597abcef00d04845155a5693b5da00d2c93dbe88f2050f2812"}, {file = "multidict-6.6.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:467fe64138cfac771f0e949b938c2e1ada2b5af22f39692aa9258715e9ea613a"}, {file = "multidict-6.6.4-cp313-cp313-win32.whl", hash = "sha256:14616a30fe6d0a48d0a48d1a633ab3b8bec4cf293aac65f32ed116f620adfd69"}, {file = "multidict-6.6.4-cp313-cp313-win_amd64.whl", hash = "sha256:40cd05eaeb39e2bc8939451f033e57feaa2ac99e07dbca8afe2be450a4a3b6cf"}, {file = "multidict-6.6.4-cp313-cp313-win_arm64.whl", hash = "sha256:f6eb37d511bfae9e13e82cb4d1af36b91150466f24d9b2b8a9785816deb16605"}, {file = "multidict-6.6.4-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6c84378acd4f37d1b507dfa0d459b449e2321b3ba5f2338f9b085cf7a7ba95eb"}, {file = "multidict-6.6.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0e0558693063c75f3d952abf645c78f3c5dfdd825a41d8c4d8156fc0b0da6e7e"}, {file = "multidict-6.6.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3f8e2384cb83ebd23fd07e9eada8ba64afc4c759cd94817433ab8c81ee4b403f"}, {file = "multidict-6.6.4-cp313-cp313t-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:f996b87b420995a9174b2a7c1a8daf7db4750be6848b03eb5e639674f7963773"}, {file = "multidict-6.6.4-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cc356250cffd6e78416cf5b40dc6a74f1edf3be8e834cf8862d9ed5265cf9b0e"}, {file = "multidict-6.6.4-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:dadf95aa862714ea468a49ad1e09fe00fcc9ec67d122f6596a8d40caf6cec7d0"}, {file = "multidict-6.6.4-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7dd57515bebffd8ebd714d101d4c434063322e4fe24042e90ced41f18b6d3395"}, {file = "multidict-6.6.4-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:967af5f238ebc2eb1da4e77af5492219fbd9b4b812347da39a7b5f5c72c0fa45"}, {file = "multidict-6.6.4-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2a4c6875c37aae9794308ec43e3530e4aa0d36579ce38d89979bbf89582002bb"}, {file = "multidict-6.6.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:7f683a551e92bdb7fac545b9c6f9fa2aebdeefa61d607510b3533286fcab67f5"}, {file = "multidict-6.6.4-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:3ba5aaf600edaf2a868a391779f7a85d93bed147854925f34edd24cc70a3e141"}, {file = "multidict-6.6.4-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:580b643b7fd2c295d83cad90d78419081f53fd532d1f1eb67ceb7060f61cff0d"}, {file = "multidict-6.6.4-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:37b7187197da6af3ee0b044dbc9625afd0c885f2800815b228a0e70f9a7f473d"}, {file = "multidict-6.6.4-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e1b93790ed0bc26feb72e2f08299691ceb6da5e9e14a0d13cc74f1869af327a0"}, {file = "multidict-6.6.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a506a77ddee1efcca81ecbeae27ade3e09cdf21a8ae854d766c2bb4f14053f92"}, {file = "multidict-6.6.4-cp313-cp313t-win32.whl", hash = "sha256:f93b2b2279883d1d0a9e1bd01f312d6fc315c5e4c1f09e112e4736e2f650bc4e"}, {file = "multidict-6.6.4-cp313-cp313t-win_amd64.whl", hash = "sha256:6d46a180acdf6e87cc41dc15d8f5c2986e1e8739dc25dbb7dac826731ef381a4"}, {file = "multidict-6.6.4-cp313-cp313t-win_arm64.whl", hash = "sha256:756989334015e3335d087a27331659820d53ba432befdef6a718398b0a8493ad"}, {file = "multidict-6.6.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:af7618b591bae552b40dbb6f93f5518328a949dac626ee75927bba1ecdeea9f4"}, {file = "multidict-6.6.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b6819f83aef06f560cb15482d619d0e623ce9bf155115150a85ab11b8342a665"}, {file = "multidict-6.6.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4d09384e75788861e046330308e7af54dd306aaf20eb760eb1d0de26b2bea2cb"}, {file = "multidict-6.6.4-cp39-cp39-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:a59c63061f1a07b861c004e53869eb1211ffd1a4acbca330e3322efa6dd02978"}, {file = "multidict-6.6.4-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:350f6b0fe1ced61e778037fdc7613f4051c8baf64b1ee19371b42a3acdb016a0"}, {file = "multidict-6.6.4-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0c5cbac6b55ad69cb6aa17ee9343dfbba903118fd530348c330211dc7aa756d1"}, {file = "multidict-6.6.4-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:630f70c32b8066ddfd920350bc236225814ad94dfa493fe1910ee17fe4365cbb"}, {file = "multidict-6.6.4-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f8d4916a81697faec6cb724a273bd5457e4c6c43d82b29f9dc02c5542fd21fc9"}, {file = "multidict-6.6.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e42332cf8276bb7645d310cdecca93a16920256a5b01bebf747365f86a1675b"}, {file = "multidict-6.6.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f3be27440f7644ab9a13a6fc86f09cdd90b347c3c5e30c6d6d860de822d7cb53"}, {file = "multidict-6.6.4-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:21f216669109e02ef3e2415ede07f4f8987f00de8cdfa0cc0b3440d42534f9f0"}, {file = "multidict-6.6.4-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:d9890d68c45d1aeac5178ded1d1cccf3bc8d7accf1f976f79bf63099fb16e4bd"}, {file = "multidict-6.6.4-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:edfdcae97cdc5d1a89477c436b61f472c4d40971774ac4729c613b4b133163cb"}, {file = "multidict-6.6.4-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:0b2e886624be5773e69cf32bcb8534aecdeb38943520b240fed3d5596a430f2f"}, {file = "multidict-6.6.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:be5bf4b3224948032a845d12ab0f69f208293742df96dc14c4ff9b09e508fc17"}, {file = "multidict-6.6.4-cp39-cp39-win32.whl", hash = "sha256:10a68a9191f284fe9d501fef4efe93226e74df92ce7a24e301371293bd4918ae"}, {file = "multidict-6.6.4-cp39-cp39-win_amd64.whl", hash = "sha256:ee25f82f53262f9ac93bd7e58e47ea1bdcc3393cef815847e397cba17e284210"}, {file = "multidict-6.6.4-cp39-cp39-win_arm64.whl", hash = "sha256:f9867e55590e0855bcec60d4f9a092b69476db64573c9fe17e92b0c50614c16a"}, {file = "multidict-6.6.4-py3-none-any.whl", hash = "sha256:27d8f8e125c07cb954e54d75d04905a9bba8a439c1d84aca94949d4d03d8601c"}, {file = "multidict-6.6.4.tar.gz", hash = "sha256:d2d4e4787672911b48350df02ed3fa3fffdc2f2e8ca06dd6afdf34189b76a9dd"}, ] [package.dependencies] typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} [[package]] name = "mypy" version = "1.17.1" description = "Optional static typing for Python" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "mypy-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3fbe6d5555bf608c47203baa3e72dbc6ec9965b3d7c318aa9a4ca76f465bd972"}, {file = "mypy-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:80ef5c058b7bce08c83cac668158cb7edea692e458d21098c7d3bce35a5d43e7"}, {file = "mypy-1.17.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c4a580f8a70c69e4a75587bd925d298434057fe2a428faaf927ffe6e4b9a98df"}, {file = "mypy-1.17.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dd86bb649299f09d987a2eebb4d52d10603224500792e1bee18303bbcc1ce390"}, {file = "mypy-1.17.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a76906f26bd8d51ea9504966a9c25419f2e668f012e0bdf3da4ea1526c534d94"}, {file = "mypy-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:e79311f2d904ccb59787477b7bd5d26f3347789c06fcd7656fa500875290264b"}, {file = "mypy-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ad37544be07c5d7fba814eb370e006df58fed8ad1ef33ed1649cb1889ba6ff58"}, {file = "mypy-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:064e2ff508e5464b4bd807a7c1625bc5047c5022b85c70f030680e18f37273a5"}, {file = "mypy-1.17.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:70401bbabd2fa1aa7c43bb358f54037baf0586f41e83b0ae67dd0534fc64edfd"}, {file = "mypy-1.17.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e92bdc656b7757c438660f775f872a669b8ff374edc4d18277d86b63edba6b8b"}, {file = "mypy-1.17.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c1fdf4abb29ed1cb091cf432979e162c208a5ac676ce35010373ff29247bcad5"}, {file = "mypy-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:ff2933428516ab63f961644bc49bc4cbe42bbffb2cd3b71cc7277c07d16b1a8b"}, {file = "mypy-1.17.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:69e83ea6553a3ba79c08c6e15dbd9bfa912ec1e493bf75489ef93beb65209aeb"}, {file = "mypy-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1b16708a66d38abb1e6b5702f5c2c87e133289da36f6a1d15f6a5221085c6403"}, {file = "mypy-1.17.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:89e972c0035e9e05823907ad5398c5a73b9f47a002b22359b177d40bdaee7056"}, {file = "mypy-1.17.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:03b6d0ed2b188e35ee6d5c36b5580cffd6da23319991c49ab5556c023ccf1341"}, {file = "mypy-1.17.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c837b896b37cd103570d776bda106eabb8737aa6dd4f248451aecf53030cdbeb"}, {file = "mypy-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:665afab0963a4b39dff7c1fa563cc8b11ecff7910206db4b2e64dd1ba25aed19"}, {file = "mypy-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:93378d3203a5c0800c6b6d850ad2f19f7a3cdf1a3701d3416dbf128805c6a6a7"}, {file = "mypy-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:15d54056f7fe7a826d897789f53dd6377ec2ea8ba6f776dc83c2902b899fee81"}, {file = "mypy-1.17.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:209a58fed9987eccc20f2ca94afe7257a8f46eb5df1fb69958650973230f91e6"}, {file = "mypy-1.17.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:099b9a5da47de9e2cb5165e581f158e854d9e19d2e96b6698c0d64de911dd849"}, {file = "mypy-1.17.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa6ffadfbe6994d724c5a1bb6123a7d27dd68fc9c059561cd33b664a79578e14"}, {file = "mypy-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:9a2b7d9180aed171f033c9f2fc6c204c1245cf60b0cb61cf2e7acc24eea78e0a"}, {file = "mypy-1.17.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:15a83369400454c41ed3a118e0cc58bd8123921a602f385cb6d6ea5df050c733"}, {file = "mypy-1.17.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:55b918670f692fc9fba55c3298d8a3beae295c5cded0a55dccdc5bbead814acd"}, {file = "mypy-1.17.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:62761474061feef6f720149d7ba876122007ddc64adff5ba6f374fda35a018a0"}, {file = "mypy-1.17.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c49562d3d908fd49ed0938e5423daed8d407774a479b595b143a3d7f87cdae6a"}, {file = "mypy-1.17.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:397fba5d7616a5bc60b45c7ed204717eaddc38f826e3645402c426057ead9a91"}, {file = "mypy-1.17.1-cp314-cp314-win_amd64.whl", hash = "sha256:9d6b20b97d373f41617bd0708fd46aa656059af57f2ef72aa8c7d6a2b73b74ed"}, {file = "mypy-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5d1092694f166a7e56c805caaf794e0585cabdbf1df36911c414e4e9abb62ae9"}, {file = "mypy-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:79d44f9bfb004941ebb0abe8eff6504223a9c1ac51ef967d1263c6572bbebc99"}, {file = "mypy-1.17.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b01586eed696ec905e61bd2568f48740f7ac4a45b3a468e6423a03d3788a51a8"}, {file = "mypy-1.17.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43808d9476c36b927fbcd0b0255ce75efe1b68a080154a38ae68a7e62de8f0f8"}, {file = "mypy-1.17.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:feb8cc32d319edd5859da2cc084493b3e2ce5e49a946377663cc90f6c15fb259"}, {file = "mypy-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d7598cf74c3e16539d4e2f0b8d8c318e00041553d83d4861f87c7a72e95ac24d"}, {file = "mypy-1.17.1-py3-none-any.whl", hash = "sha256:a9f52c0351c21fe24c21d8c0eb1f62967b262d6729393397b6f443c3b773c3b9"}, {file = "mypy-1.17.1.tar.gz", hash = "sha256:25e01ec741ab5bb3eec8ba9cdb0f769230368a22c959c4937360efb89b7e9f01"}, ] [package.dependencies] mypy_extensions = ">=1.0.0" pathspec = ">=0.9.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} typing_extensions = ">=4.6.0" [package.extras] dmypy = ["psutil (>=4.0)"] faster-cache = ["orjson"] install-types = ["pip"] mypyc = ["setuptools (>=50)"] reports = ["lxml"] [[package]] name = "mypy-extensions" version = "1.1.0" description = "Type system extensions for programs checked with the mypy type checker." optional = false python-versions = ">=3.8" groups = ["dev"] files = [ {file = "mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505"}, {file = "mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558"}, ] [[package]] name = "packaging" version = "25.0" description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" groups = ["dev"] files = [ {file = "packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484"}, {file = "packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"}, ] [[package]] name = "parso" version = "0.7.1" description = "A Python Parser" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" groups = ["dev"] files = [ {file = "parso-0.7.1-py2.py3-none-any.whl", hash = "sha256:97218d9159b2520ff45eb78028ba8b50d2bc61dcc062a9682666f2dc4bd331ea"}, {file = "parso-0.7.1.tar.gz", hash = "sha256:caba44724b994a8a5e086460bb212abc5a8bc46951bf4a9a1210745953622eb9"}, ] [package.extras] testing = ["docopt", "pytest (>=3.0.7)"] [[package]] name = "pathspec" version = "0.12.1" description = "Utility library for gitignore style pattern matching of file paths." optional = false python-versions = ">=3.8" groups = ["dev"] files = [ {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, ] [[package]] name = "platformdirs" version = "4.4.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "platformdirs-4.4.0-py3-none-any.whl", hash = "sha256:abd01743f24e5287cd7a5db3752faf1a2d65353f38ec26d98e25a6db65958c85"}, {file = "platformdirs-4.4.0.tar.gz", hash = "sha256:ca753cf4d81dc309bc67b0ea38fd15dc97bc30ce419a7f58d13eb3bf14c4febf"}, ] [package.extras] docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.4)", "pytest-cov (>=6)", "pytest-mock (>=3.14)"] type = ["mypy (>=1.14.1)"] [[package]] name = "pluggy" version = "1.6.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746"}, {file = "pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3"}, ] [package.extras] dev = ["pre-commit", "tox"] testing = ["coverage", "pytest", "pytest-benchmark"] [[package]] name = "propcache" version = "0.3.2" description = "Accelerated property cache" optional = false python-versions = ">=3.9" groups = ["main", "dev"] files = [ {file = "propcache-0.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:22d9962a358aedbb7a2e36187ff273adeaab9743373a272976d2e348d08c7770"}, {file = "propcache-0.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0d0fda578d1dc3f77b6b5a5dce3b9ad69a8250a891760a548df850a5e8da87f3"}, {file = "propcache-0.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3def3da3ac3ce41562d85db655d18ebac740cb3fa4367f11a52b3da9d03a5cc3"}, {file = "propcache-0.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9bec58347a5a6cebf239daba9bda37dffec5b8d2ce004d9fe4edef3d2815137e"}, {file = "propcache-0.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55ffda449a507e9fbd4aca1a7d9aa6753b07d6166140e5a18d2ac9bc49eac220"}, {file = "propcache-0.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:64a67fb39229a8a8491dd42f864e5e263155e729c2e7ff723d6e25f596b1e8cb"}, {file = "propcache-0.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9da1cf97b92b51253d5b68cf5a2b9e0dafca095e36b7f2da335e27dc6172a614"}, {file = "propcache-0.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5f559e127134b07425134b4065be45b166183fdcb433cb6c24c8e4149056ad50"}, {file = "propcache-0.3.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:aff2e4e06435d61f11a428360a932138d0ec288b0a31dd9bd78d200bd4a2b339"}, {file = "propcache-0.3.2-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:4927842833830942a5d0a56e6f4839bc484785b8e1ce8d287359794818633ba0"}, {file = "propcache-0.3.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:6107ddd08b02654a30fb8ad7a132021759d750a82578b94cd55ee2772b6ebea2"}, {file = "propcache-0.3.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:70bd8b9cd6b519e12859c99f3fc9a93f375ebd22a50296c3a295028bea73b9e7"}, {file = "propcache-0.3.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2183111651d710d3097338dd1893fcf09c9f54e27ff1a8795495a16a469cc90b"}, {file = "propcache-0.3.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:fb075ad271405dcad8e2a7ffc9a750a3bf70e533bd86e89f0603e607b93aa64c"}, {file = "propcache-0.3.2-cp310-cp310-win32.whl", hash = "sha256:404d70768080d3d3bdb41d0771037da19d8340d50b08e104ca0e7f9ce55fce70"}, {file = "propcache-0.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:7435d766f978b4ede777002e6b3b6641dd229cd1da8d3d3106a45770365f9ad9"}, {file = "propcache-0.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0b8d2f607bd8f80ddc04088bc2a037fdd17884a6fcadc47a96e334d72f3717be"}, {file = "propcache-0.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:06766d8f34733416e2e34f46fea488ad5d60726bb9481d3cddf89a6fa2d9603f"}, {file = "propcache-0.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a2dc1f4a1df4fecf4e6f68013575ff4af84ef6f478fe5344317a65d38a8e6dc9"}, {file = "propcache-0.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:be29c4f4810c5789cf10ddf6af80b041c724e629fa51e308a7a0fb19ed1ef7bf"}, {file = "propcache-0.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59d61f6970ecbd8ff2e9360304d5c8876a6abd4530cb752c06586849ac8a9dc9"}, {file = "propcache-0.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:62180e0b8dbb6b004baec00a7983e4cc52f5ada9cd11f48c3528d8cfa7b96a66"}, {file = "propcache-0.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c144ca294a204c470f18cf4c9d78887810d04a3e2fbb30eea903575a779159df"}, {file = "propcache-0.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5c2a784234c28854878d68978265617aa6dc0780e53d44b4d67f3651a17a9a2"}, {file = "propcache-0.3.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5745bc7acdafa978ca1642891b82c19238eadc78ba2aaa293c6863b304e552d7"}, {file = "propcache-0.3.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:c0075bf773d66fa8c9d41f66cc132ecc75e5bb9dd7cce3cfd14adc5ca184cb95"}, {file = "propcache-0.3.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5f57aa0847730daceff0497f417c9de353c575d8da3579162cc74ac294c5369e"}, {file = "propcache-0.3.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:eef914c014bf72d18efb55619447e0aecd5fb7c2e3fa7441e2e5d6099bddff7e"}, {file = "propcache-0.3.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:2a4092e8549031e82facf3decdbc0883755d5bbcc62d3aea9d9e185549936dcf"}, {file = "propcache-0.3.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:85871b050f174bc0bfb437efbdb68aaf860611953ed12418e4361bc9c392749e"}, {file = "propcache-0.3.2-cp311-cp311-win32.whl", hash = "sha256:36c8d9b673ec57900c3554264e630d45980fd302458e4ac801802a7fd2ef7897"}, {file = "propcache-0.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:e53af8cb6a781b02d2ea079b5b853ba9430fcbe18a8e3ce647d5982a3ff69f39"}, {file = "propcache-0.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8de106b6c84506b31c27168582cd3cb3000a6412c16df14a8628e5871ff83c10"}, {file = "propcache-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:28710b0d3975117239c76600ea351934ac7b5ff56e60953474342608dbbb6154"}, {file = "propcache-0.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce26862344bdf836650ed2487c3d724b00fbfec4233a1013f597b78c1cb73615"}, {file = "propcache-0.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bca54bd347a253af2cf4544bbec232ab982f4868de0dd684246b67a51bc6b1db"}, {file = "propcache-0.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55780d5e9a2ddc59711d727226bb1ba83a22dd32f64ee15594b9392b1f544eb1"}, {file = "propcache-0.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:035e631be25d6975ed87ab23153db6a73426a48db688070d925aa27e996fe93c"}, {file = "propcache-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee6f22b6eaa39297c751d0e80c0d3a454f112f5c6481214fcf4c092074cecd67"}, {file = "propcache-0.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ca3aee1aa955438c4dba34fc20a9f390e4c79967257d830f137bd5a8a32ed3b"}, {file = "propcache-0.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7a4f30862869fa2b68380d677cc1c5fcf1e0f2b9ea0cf665812895c75d0ca3b8"}, {file = "propcache-0.3.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b77ec3c257d7816d9f3700013639db7491a434644c906a2578a11daf13176251"}, {file = "propcache-0.3.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:cab90ac9d3f14b2d5050928483d3d3b8fb6b4018893fc75710e6aa361ecb2474"}, {file = "propcache-0.3.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0b504d29f3c47cf6b9e936c1852246c83d450e8e063d50562115a6be6d3a2535"}, {file = "propcache-0.3.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:ce2ac2675a6aa41ddb2a0c9cbff53780a617ac3d43e620f8fd77ba1c84dcfc06"}, {file = "propcache-0.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:62b4239611205294cc433845b914131b2a1f03500ff3c1ed093ed216b82621e1"}, {file = "propcache-0.3.2-cp312-cp312-win32.whl", hash = "sha256:df4a81b9b53449ebc90cc4deefb052c1dd934ba85012aa912c7ea7b7e38b60c1"}, {file = "propcache-0.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7046e79b989d7fe457bb755844019e10f693752d169076138abf17f31380800c"}, {file = "propcache-0.3.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ca592ed634a73ca002967458187109265e980422116c0a107cf93d81f95af945"}, {file = "propcache-0.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9ecb0aad4020e275652ba3975740f241bd12a61f1a784df044cf7477a02bc252"}, {file = "propcache-0.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7f08f1cc28bd2eade7a8a3d2954ccc673bb02062e3e7da09bc75d843386b342f"}, {file = "propcache-0.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1a342c834734edb4be5ecb1e9fb48cb64b1e2320fccbd8c54bf8da8f2a84c33"}, {file = "propcache-0.3.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a544caaae1ac73f1fecfae70ded3e93728831affebd017d53449e3ac052ac1e"}, {file = "propcache-0.3.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:310d11aa44635298397db47a3ebce7db99a4cc4b9bbdfcf6c98a60c8d5261cf1"}, {file = "propcache-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c1396592321ac83157ac03a2023aa6cc4a3cc3cfdecb71090054c09e5a7cce3"}, {file = "propcache-0.3.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cabf5b5902272565e78197edb682017d21cf3b550ba0460ee473753f28d23c1"}, {file = "propcache-0.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0a2f2235ac46a7aa25bdeb03a9e7060f6ecbd213b1f9101c43b3090ffb971ef6"}, {file = "propcache-0.3.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:92b69e12e34869a6970fd2f3da91669899994b47c98f5d430b781c26f1d9f387"}, {file = "propcache-0.3.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:54e02207c79968ebbdffc169591009f4474dde3b4679e16634d34c9363ff56b4"}, {file = "propcache-0.3.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4adfb44cb588001f68c5466579d3f1157ca07f7504fc91ec87862e2b8e556b88"}, {file = "propcache-0.3.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fd3e6019dc1261cd0291ee8919dd91fbab7b169bb76aeef6c716833a3f65d206"}, {file = "propcache-0.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4c181cad81158d71c41a2bce88edce078458e2dd5ffee7eddd6b05da85079f43"}, {file = "propcache-0.3.2-cp313-cp313-win32.whl", hash = "sha256:8a08154613f2249519e549de2330cf8e2071c2887309a7b07fb56098f5170a02"}, {file = "propcache-0.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:e41671f1594fc4ab0a6dec1351864713cb3a279910ae8b58f884a88a0a632c05"}, {file = "propcache-0.3.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9a3cf035bbaf035f109987d9d55dc90e4b0e36e04bbbb95af3055ef17194057b"}, {file = "propcache-0.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:156c03d07dc1323d8dacaa221fbe028c5c70d16709cdd63502778e6c3ccca1b0"}, {file = "propcache-0.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74413c0ba02ba86f55cf60d18daab219f7e531620c15f1e23d95563f505efe7e"}, {file = "propcache-0.3.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f066b437bb3fa39c58ff97ab2ca351db465157d68ed0440abecb21715eb24b28"}, {file = "propcache-0.3.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1304b085c83067914721e7e9d9917d41ad87696bf70f0bc7dee450e9c71ad0a"}, {file = "propcache-0.3.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ab50cef01b372763a13333b4e54021bdcb291fc9a8e2ccb9c2df98be51bcde6c"}, {file = "propcache-0.3.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fad3b2a085ec259ad2c2842666b2a0a49dea8463579c606426128925af1ed725"}, {file = "propcache-0.3.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:261fa020c1c14deafd54c76b014956e2f86991af198c51139faf41c4d5e83892"}, {file = "propcache-0.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:46d7f8aa79c927e5f987ee3a80205c987717d3659f035c85cf0c3680526bdb44"}, {file = "propcache-0.3.2-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:6d8f3f0eebf73e3c0ff0e7853f68be638b4043c65a70517bb575eff54edd8dbe"}, {file = "propcache-0.3.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:03c89c1b14a5452cf15403e291c0ccd7751d5b9736ecb2c5bab977ad6c5bcd81"}, {file = "propcache-0.3.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:0cc17efde71e12bbaad086d679ce575268d70bc123a5a71ea7ad76f70ba30bba"}, {file = "propcache-0.3.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:acdf05d00696bc0447e278bb53cb04ca72354e562cf88ea6f9107df8e7fd9770"}, {file = "propcache-0.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4445542398bd0b5d32df908031cb1b30d43ac848e20470a878b770ec2dcc6330"}, {file = "propcache-0.3.2-cp313-cp313t-win32.whl", hash = "sha256:f86e5d7cd03afb3a1db8e9f9f6eff15794e79e791350ac48a8c924e6f439f394"}, {file = "propcache-0.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:9704bedf6e7cbe3c65eca4379a9b53ee6a83749f047808cbb5044d40d7d72198"}, {file = "propcache-0.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a7fad897f14d92086d6b03fdd2eb844777b0c4d7ec5e3bac0fbae2ab0602bbe5"}, {file = "propcache-0.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1f43837d4ca000243fd7fd6301947d7cb93360d03cd08369969450cc6b2ce3b4"}, {file = "propcache-0.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:261df2e9474a5949c46e962065d88eb9b96ce0f2bd30e9d3136bcde84befd8f2"}, {file = "propcache-0.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e514326b79e51f0a177daab1052bc164d9d9e54133797a3a58d24c9c87a3fe6d"}, {file = "propcache-0.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d4a996adb6904f85894570301939afeee65f072b4fd265ed7e569e8d9058e4ec"}, {file = "propcache-0.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:76cace5d6b2a54e55b137669b30f31aa15977eeed390c7cbfb1dafa8dfe9a701"}, {file = "propcache-0.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31248e44b81d59d6addbb182c4720f90b44e1efdc19f58112a3c3a1615fb47ef"}, {file = "propcache-0.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abb7fa19dbf88d3857363e0493b999b8011eea856b846305d8c0512dfdf8fbb1"}, {file = "propcache-0.3.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d81ac3ae39d38588ad0549e321e6f773a4e7cc68e7751524a22885d5bbadf886"}, {file = "propcache-0.3.2-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:cc2782eb0f7a16462285b6f8394bbbd0e1ee5f928034e941ffc444012224171b"}, {file = "propcache-0.3.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:db429c19a6c7e8a1c320e6a13c99799450f411b02251fb1b75e6217cf4a14fcb"}, {file = "propcache-0.3.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:21d8759141a9e00a681d35a1f160892a36fb6caa715ba0b832f7747da48fb6ea"}, {file = "propcache-0.3.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:2ca6d378f09adb13837614ad2754fa8afaee330254f404299611bce41a8438cb"}, {file = "propcache-0.3.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:34a624af06c048946709f4278b4176470073deda88d91342665d95f7c6270fbe"}, {file = "propcache-0.3.2-cp39-cp39-win32.whl", hash = "sha256:4ba3fef1c30f306b1c274ce0b8baaa2c3cdd91f645c48f06394068f37d3837a1"}, {file = "propcache-0.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:7a2368eed65fc69a7a7a40b27f22e85e7627b74216f0846b04ba5c116e191ec9"}, {file = "propcache-0.3.2-py3-none-any.whl", hash = "sha256:98f1ec44fb675f5052cccc8e609c46ed23a35a1cfd18545ad4e29002d858a43f"}, {file = "propcache-0.3.2.tar.gz", hash = "sha256:20d7d62e4e7ef05f221e0db2856b979540686342e7dd9973b815599c7057e168"}, ] [[package]] name = "pycodestyle" version = "2.14.0" description = "Python style guide checker" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "pycodestyle-2.14.0-py2.py3-none-any.whl", hash = "sha256:dd6bf7cb4ee77f8e016f9c8e74a35ddd9f67e1d5fd4184d86c3b98e07099f42d"}, {file = "pycodestyle-2.14.0.tar.gz", hash = "sha256:c4b5b517d278089ff9d0abdec919cd97262a3367449ea1c8b49b91529167b783"}, ] [[package]] name = "pydocstyle" version = "6.3.0" description = "Python docstring style checker" optional = false python-versions = ">=3.6" groups = ["dev"] files = [ {file = "pydocstyle-6.3.0-py3-none-any.whl", hash = "sha256:118762d452a49d6b05e194ef344a55822987a462831ade91ec5c06fd2169d019"}, {file = "pydocstyle-6.3.0.tar.gz", hash = "sha256:7ce43f0c0ac87b07494eb9c0b462c0b73e6ff276807f204d6b53edc72b7e44e1"}, ] [package.dependencies] snowballstemmer = ">=2.2.0" [package.extras] toml = ["tomli (>=1.2.3) ; python_version < \"3.11\""] [[package]] name = "pyflakes" version = "3.4.0" description = "passive checker of Python programs" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "pyflakes-3.4.0-py2.py3-none-any.whl", hash = "sha256:f742a7dbd0d9cb9ea41e9a24a918996e8170c799fa528688d40dd582c8265f4f"}, {file = "pyflakes-3.4.0.tar.gz", hash = "sha256:b24f96fafb7d2ab0ec5075b7350b3d2d2218eab42003821c06344973d3ea2f58"}, ] [[package]] name = "pygments" version = "2.19.2" description = "Pygments is a syntax highlighting package written in Python." optional = false python-versions = ">=3.8" groups = ["dev"] files = [ {file = "pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b"}, {file = "pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887"}, ] [package.extras] windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pylint" version = "3.3.8" description = "python code static checker" optional = false python-versions = ">=3.9.0" groups = ["dev"] files = [ {file = "pylint-3.3.8-py3-none-any.whl", hash = "sha256:7ef94aa692a600e82fabdd17102b73fc226758218c97473c7ad67bd4cb905d83"}, {file = "pylint-3.3.8.tar.gz", hash = "sha256:26698de19941363037e2937d3db9ed94fb3303fdadf7d98847875345a8bb6b05"}, ] [package.dependencies] astroid = ">=3.3.8,<=3.4.0.dev0" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} dill = [ {version = ">=0.2", markers = "python_version < \"3.11\""}, {version = ">=0.3.7", markers = "python_version >= \"3.12\""}, {version = ">=0.3.6", markers = "python_version == \"3.11\""}, ] isort = ">=4.2.5,<5.13 || >5.13,<7" mccabe = ">=0.6,<0.8" platformdirs = ">=2.2" tomli = {version = ">=1.1", markers = "python_version < \"3.11\""} tomlkit = ">=0.10.1" typing-extensions = {version = ">=3.10", markers = "python_version < \"3.10\""} [package.extras] spelling = ["pyenchant (>=3.2,<4.0)"] testutils = ["gitpython (>3)"] [[package]] name = "pyproject-api" version = "1.9.1" description = "API to interact with the python pyproject.toml based projects" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "pyproject_api-1.9.1-py3-none-any.whl", hash = "sha256:7d6238d92f8962773dd75b5f0c4a6a27cce092a14b623b811dba656f3b628948"}, {file = "pyproject_api-1.9.1.tar.gz", hash = "sha256:43c9918f49daab37e302038fc1aed54a8c7a91a9fa935d00b9a485f37e0f5335"}, ] [package.dependencies] packaging = ">=25" tomli = {version = ">=2.2.1", markers = "python_version < \"3.11\""} [package.extras] docs = ["furo (>=2024.8.6)", "sphinx-autodoc-typehints (>=3.2)"] testing = ["covdefaults (>=2.3)", "pytest (>=8.3.5)", "pytest-cov (>=6.1.1)", "pytest-mock (>=3.14)", "setuptools (>=80.3.1)"] [[package]] name = "pytest" version = "8.4.2" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "pytest-8.4.2-py3-none-any.whl", hash = "sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e79"}, {file = "pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01"}, ] [package.dependencies] colorama = {version = ">=0.4", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1", markers = "python_version < \"3.11\""} iniconfig = ">=1" packaging = ">=20" pluggy = ">=1.5,<2" pygments = ">=2.7.2" tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-aiohttp" version = "1.1.0" description = "Pytest plugin for aiohttp support" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "pytest_aiohttp-1.1.0-py3-none-any.whl", hash = "sha256:f39a11693a0dce08dd6c542d241e199dd8047a6e6596b2bcfa60d373f143456d"}, {file = "pytest_aiohttp-1.1.0.tar.gz", hash = "sha256:147de8cb164f3fc9d7196967f109ab3c0b93ea3463ab50631e56438eab7b5adc"}, ] [package.dependencies] aiohttp = ">=3.11.0b0" pytest = ">=6.1.0" pytest-asyncio = ">=0.17.2" [package.extras] testing = ["coverage (==6.2)", "mypy (==1.12.1)"] [[package]] name = "pytest-asyncio" version = "1.1.0" description = "Pytest support for asyncio" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "pytest_asyncio-1.1.0-py3-none-any.whl", hash = "sha256:5fe2d69607b0bd75c656d1211f969cadba035030156745ee09e7d71740e58ecf"}, {file = "pytest_asyncio-1.1.0.tar.gz", hash = "sha256:796aa822981e01b68c12e4827b8697108f7205020f24b5793b3c41555dab68ea"}, ] [package.dependencies] backports-asyncio-runner = {version = ">=1.1,<2", markers = "python_version < \"3.11\""} pytest = ">=8.2,<9" typing-extensions = {version = ">=4.12", markers = "python_version < \"3.10\""} [package.extras] docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1)"] testing = ["coverage (>=6.2)", "hypothesis (>=5.7.1)"] [[package]] name = "pytest-cov" version = "6.2.1" description = "Pytest plugin for measuring coverage." optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "pytest_cov-6.2.1-py3-none-any.whl", hash = "sha256:f5bc4c23f42f1cdd23c70b1dab1bbaef4fc505ba950d53e0081d0730dd7e86d5"}, {file = "pytest_cov-6.2.1.tar.gz", hash = "sha256:25cc6cc0a5358204b8108ecedc51a9b57b34cc6b8c967cc2c01a4e00d8a67da2"}, ] [package.dependencies] coverage = {version = ">=7.5", extras = ["toml"]} pluggy = ">=1.2" pytest = ">=6.2.5" [package.extras] testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] [[package]] name = "python-jsonrpc-server" version = "0.4.0" description = "JSON RPC 2.0 server library" optional = false python-versions = "*" groups = ["dev"] files = [ {file = "python-jsonrpc-server-0.4.0.tar.gz", hash = "sha256:62c543e541f101ec5b57dc654efc212d2c2e3ea47ff6f54b2e7dcb36ecf20595"}, {file = "python_jsonrpc_server-0.4.0-py3-none-any.whl", hash = "sha256:e5a908ff182e620aac07db5f57887eeb0afe33993008f57dc1b85b594cea250c"}, ] [package.dependencies] ujson = ">=3.0.0" [package.extras] test = ["coverage", "mock", "pycodestyle", "pyflakes", "pylint", "pytest", "pytest-cov", "versioneer"] [[package]] name = "python-language-server" version = "0.36.2" description = "Python Language Server for the Language Server Protocol" optional = false python-versions = "*" groups = ["dev"] files = [ {file = "python-language-server-0.36.2.tar.gz", hash = "sha256:9984c84a67ee2c5102c8e703215f407fcfa5e62b0ae86c9572d0ada8c4b417b0"}, {file = "python_language_server-0.36.2-py2.py3-none-any.whl", hash = "sha256:a0ad0aca03f4a20c1c40f4f230c6773eac82c9b7cdb026cb09ba10237f4815d5"}, ] [package.dependencies] jedi = ">=0.17.2,<0.18.0" pluggy = "*" python-jsonrpc-server = ">=0.4.0" ujson = {version = ">=3.0.0", markers = "python_version > \"3\""} [package.extras] all = ["autopep8", "flake8 (>=3.8.0)", "mccabe (>=0.6.0,<0.7.0)", "pycodestyle (>=2.6.0,<2.7.0)", "pydocstyle (>=2.0.0)", "pyflakes (>=2.2.0,<2.3.0)", "pylint (>=2.5.0)", "rope (>=0.10.5)", "yapf"] autopep8 = ["autopep8"] flake8 = ["flake8 (>=3.8.0)"] mccabe = ["mccabe (>=0.6.0,<0.7.0)"] pycodestyle = ["pycodestyle (>=2.6.0,<2.7.0)"] pydocstyle = ["pydocstyle (>=2.0.0)"] pyflakes = ["pyflakes (>=2.2.0,<2.3.0)"] pylint = ["pylint (>=2.5.0)"] rope = ["rope (>0.10.5)"] test = ["coverage", "flaky", "matplotlib", "mock", "numpy", "pandas", "pylint (>=2.5.0)", "pyqt5 ; python_version >= \"3\"", "pytest", "pytest-cov", "versioneer"] yapf = ["yapf"] [[package]] name = "pyyaml" version = "6.0.2" description = "YAML parser and emitter for Python" optional = false python-versions = ">=3.8" groups = ["dev"] files = [ {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, ] [[package]] name = "requests" version = "2.32.5" description = "Python HTTP for Humans." optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6"}, {file = "requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf"}, ] [package.dependencies] certifi = ">=2017.4.17" charset_normalizer = ">=2,<4" idna = ">=2.5,<4" urllib3 = ">=1.21.1,<3" [package.extras] socks = ["PySocks (>=1.5.6,!=1.5.7)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "roman-numerals-py" version = "3.1.0" description = "Manipulate well-formed Roman numerals" optional = false python-versions = ">=3.9" groups = ["dev"] markers = "python_version >= \"3.11\"" files = [ {file = "roman_numerals_py-3.1.0-py3-none-any.whl", hash = "sha256:9da2ad2fb670bcf24e81070ceb3be72f6c11c440d73bd579fbeca1e9f330954c"}, {file = "roman_numerals_py-3.1.0.tar.gz", hash = "sha256:be4bf804f083a4ce001b5eb7e3c0862479d10f94c936f6c4e5f250aa5ff5bd2d"}, ] [package.extras] lint = ["mypy (==1.15.0)", "pyright (==1.1.394)", "ruff (==0.9.7)"] test = ["pytest (>=8)"] [[package]] name = "snowballstemmer" version = "3.0.1" description = "This package provides 32 stemmers for 30 languages generated from Snowball algorithms." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*" groups = ["dev"] files = [ {file = "snowballstemmer-3.0.1-py3-none-any.whl", hash = "sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064"}, {file = "snowballstemmer-3.0.1.tar.gz", hash = "sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895"}, ] [[package]] name = "sphinx" version = "7.4.7" description = "Python documentation generator" optional = false python-versions = ">=3.9" groups = ["dev"] markers = "python_version == \"3.9\" or platform_python_implementation == \"PyPy\" and python_version < \"3.11\"" files = [ {file = "sphinx-7.4.7-py3-none-any.whl", hash = "sha256:c2419e2135d11f1951cd994d6eb18a1835bd8fdd8429f9ca375dc1f3281bd239"}, {file = "sphinx-7.4.7.tar.gz", hash = "sha256:242f92a7ea7e6c5b406fdc2615413890ba9f699114a9c09192d7dfead2ee9cfe"}, ] [package.dependencies] alabaster = ">=0.7.14,<0.8.0" babel = ">=2.13" colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} docutils = ">=0.20,<0.22" imagesize = ">=1.3" importlib-metadata = {version = ">=6.0", markers = "python_version < \"3.10\""} Jinja2 = ">=3.1" packaging = ">=23.0" Pygments = ">=2.17" requests = ">=2.30.0" snowballstemmer = ">=2.2" sphinxcontrib-applehelp = "*" sphinxcontrib-devhelp = "*" sphinxcontrib-htmlhelp = ">=2.0.0" sphinxcontrib-jsmath = "*" sphinxcontrib-qthelp = "*" sphinxcontrib-serializinghtml = ">=1.1.9" tomli = {version = ">=2", markers = "python_version < \"3.11\""} [package.extras] docs = ["sphinxcontrib-websupport"] lint = ["flake8 (>=6.0)", "importlib-metadata (>=6.0)", "mypy (==1.10.1)", "pytest (>=6.0)", "ruff (==0.5.2)", "sphinx-lint (>=0.9)", "tomli (>=2)", "types-docutils (==0.21.0.20240711)", "types-requests (>=2.30.0)"] test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=8.0)", "setuptools (>=70.0)", "typing_extensions (>=4.9)"] [[package]] name = "sphinx" version = "8.1.3" description = "Python documentation generator" optional = false python-versions = ">=3.10" groups = ["dev"] markers = "platform_python_implementation != \"PyPy\" and python_version == \"3.10\"" files = [ {file = "sphinx-8.1.3-py3-none-any.whl", hash = "sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2"}, {file = "sphinx-8.1.3.tar.gz", hash = "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927"}, ] [package.dependencies] alabaster = ">=0.7.14" babel = ">=2.13" colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} docutils = ">=0.20,<0.22" imagesize = ">=1.3" Jinja2 = ">=3.1" packaging = ">=23.0" Pygments = ">=2.17" requests = ">=2.30.0" snowballstemmer = ">=2.2" sphinxcontrib-applehelp = ">=1.0.7" sphinxcontrib-devhelp = ">=1.0.6" sphinxcontrib-htmlhelp = ">=2.0.6" sphinxcontrib-jsmath = ">=1.0.1" sphinxcontrib-qthelp = ">=1.0.6" sphinxcontrib-serializinghtml = ">=1.1.9" tomli = {version = ">=2", markers = "python_version < \"3.11\""} [package.extras] docs = ["sphinxcontrib-websupport"] lint = ["flake8 (>=6.0)", "mypy (==1.11.1)", "pyright (==1.1.384)", "pytest (>=6.0)", "ruff (==0.6.9)", "sphinx-lint (>=0.9)", "tomli (>=2)", "types-Pillow (==10.2.0.20240822)", "types-Pygments (==2.18.0.20240506)", "types-colorama (==0.4.15.20240311)", "types-defusedxml (==0.7.0.20240218)", "types-docutils (==0.21.0.20241005)", "types-requests (==2.32.0.20240914)", "types-urllib3 (==1.26.25.14)"] test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=8.0)", "setuptools (>=70.0)", "typing_extensions (>=4.9)"] [[package]] name = "sphinx" version = "8.2.3" description = "Python documentation generator" optional = false python-versions = ">=3.11" groups = ["dev"] markers = "python_version >= \"3.11\"" files = [ {file = "sphinx-8.2.3-py3-none-any.whl", hash = "sha256:4405915165f13521d875a8c29c8970800a0141c14cc5416a38feca4ea5d9b9c3"}, {file = "sphinx-8.2.3.tar.gz", hash = "sha256:398ad29dee7f63a75888314e9424d40f52ce5a6a87ae88e7071e80af296ec348"}, ] [package.dependencies] alabaster = ">=0.7.14" babel = ">=2.13" colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} docutils = ">=0.20,<0.22" imagesize = ">=1.3" Jinja2 = ">=3.1" packaging = ">=23.0" Pygments = ">=2.17" requests = ">=2.30.0" roman-numerals-py = ">=1.0.0" snowballstemmer = ">=2.2" sphinxcontrib-applehelp = ">=1.0.7" sphinxcontrib-devhelp = ">=1.0.6" sphinxcontrib-htmlhelp = ">=2.0.6" sphinxcontrib-jsmath = ">=1.0.1" sphinxcontrib-qthelp = ">=1.0.6" sphinxcontrib-serializinghtml = ">=1.1.9" [package.extras] docs = ["sphinxcontrib-websupport"] lint = ["betterproto (==2.0.0b6)", "mypy (==1.15.0)", "pypi-attestations (==0.0.21)", "pyright (==1.1.395)", "pytest (>=8.0)", "ruff (==0.9.9)", "sphinx-lint (>=0.9)", "types-Pillow (==10.2.0.20240822)", "types-Pygments (==2.19.0.20250219)", "types-colorama (==0.4.15.20240311)", "types-defusedxml (==0.7.0.20240218)", "types-docutils (==0.21.0.20241128)", "types-requests (==2.32.0.20241016)", "types-urllib3 (==1.26.25.14)"] test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=8.0)", "pytest-xdist[psutil] (>=3.4)", "setuptools (>=70.0)", "typing_extensions (>=4.9)"] [[package]] name = "sphinx-readable-theme" version = "1.3.0" description = "Sphinx Readable Theme" optional = false python-versions = "*" groups = ["dev"] files = [ {file = "sphinx-readable-theme-1.3.0.tar.gz", hash = "sha256:f5fe65a2e112cb956b366df41e0fc894ff6b6f0e4a4814fcbff692566db47fc0"}, ] [[package]] name = "sphinxcontrib-applehelp" version = "2.0.0" description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5"}, {file = "sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1"}, ] [package.extras] lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-devhelp" version = "2.0.0" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2"}, {file = "sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad"}, ] [package.extras] lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-htmlhelp" version = "2.1.0" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8"}, {file = "sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9"}, ] [package.extras] lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] standalone = ["Sphinx (>=5)"] test = ["html5lib", "pytest"] [[package]] name = "sphinxcontrib-jsmath" version = "1.0.1" description = "A sphinx extension which renders display math in HTML via JavaScript" optional = false python-versions = ">=3.5" groups = ["dev"] files = [ {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, ] [package.extras] test = ["flake8", "mypy", "pytest"] [[package]] name = "sphinxcontrib-qthelp" version = "2.0.0" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb"}, {file = "sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab"}, ] [package.extras] lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] standalone = ["Sphinx (>=5)"] test = ["defusedxml (>=0.7.1)", "pytest"] [[package]] name = "sphinxcontrib-serializinghtml" version = "2.0.0" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331"}, {file = "sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d"}, ] [package.extras] lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "tomli" version = "2.2.1" description = "A lil' TOML parser" optional = false python-versions = ">=3.8" groups = ["dev"] markers = "python_version < \"3.11\"" files = [ {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, ] [[package]] name = "tomlkit" version = "0.13.3" description = "Style preserving TOML library" optional = false python-versions = ">=3.8" groups = ["dev"] files = [ {file = "tomlkit-0.13.3-py3-none-any.whl", hash = "sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0"}, {file = "tomlkit-0.13.3.tar.gz", hash = "sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1"}, ] [[package]] name = "tox" version = "4.30.1" description = "tox is a generic virtualenv management and test command line tool" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "tox-4.30.1-py3-none-any.whl", hash = "sha256:906ac75edaa38793ae3afa6e42c2bd4454d768c0b1a762a33dc2d60071dbd168"}, {file = "tox-4.30.1.tar.gz", hash = "sha256:9b685427cc143064fc98171c18d2065763095100e6f429c813bbd51765a36b1e"}, ] [package.dependencies] cachetools = ">=6.1" chardet = ">=5.2" colorama = ">=0.4.6" filelock = ">=3.18" packaging = ">=25" platformdirs = ">=4.3.8" pluggy = ">=1.6" pyproject-api = ">=1.9.1" tomli = {version = ">=2.2.1", markers = "python_version < \"3.11\""} typing-extensions = {version = ">=4.14.1", markers = "python_version < \"3.11\""} virtualenv = ">=20.31.2" [[package]] name = "typing-extensions" version = "4.15.0" description = "Backported and Experimental Type Hints for Python 3.9+" optional = false python-versions = ">=3.9" groups = ["main", "dev"] files = [ {file = "typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548"}, {file = "typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466"}, ] markers = {main = "python_version < \"3.13\""} [[package]] name = "ujson" version = "5.11.0" description = "Ultra fast JSON encoder and decoder for Python" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "ujson-5.11.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:446e8c11c06048611c9d29ef1237065de0af07cabdd97e6b5b527b957692ec25"}, {file = "ujson-5.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:16ccb973b7ada0455201808ff11d48fe9c3f034a6ab5bd93b944443c88299f89"}, {file = "ujson-5.11.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3134b783ab314d2298d58cda7e47e7a0f7f71fc6ade6ac86d5dbeaf4b9770fa6"}, {file = "ujson-5.11.0-cp310-cp310-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:185f93ebccffebc8baf8302c869fac70dd5dd78694f3b875d03a31b03b062cdb"}, {file = "ujson-5.11.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d06e87eded62ff0e5f5178c916337d2262fdbc03b31688142a3433eabb6511db"}, {file = "ujson-5.11.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:181fb5b15703a8b9370b25345d2a1fd1359f0f18776b3643d24e13ed9c036d4c"}, {file = "ujson-5.11.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:a4df61a6df0a4a8eb5b9b1ffd673429811f50b235539dac586bb7e9e91994138"}, {file = "ujson-5.11.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6eff24e1abd79e0ec6d7eae651dd675ddbc41f9e43e29ef81e16b421da896915"}, {file = "ujson-5.11.0-cp310-cp310-win32.whl", hash = "sha256:30f607c70091483550fbd669a0b37471e5165b317d6c16e75dba2aa967608723"}, {file = "ujson-5.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:3d2720e9785f84312b8e2cb0c2b87f1a0b1c53aaab3b2af3ab817d54409012e0"}, {file = "ujson-5.11.0-cp310-cp310-win_arm64.whl", hash = "sha256:85e6796631165f719084a9af00c79195d3ebf108151452fefdcb1c8bb50f0105"}, {file = "ujson-5.11.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d7c46cb0fe5e7056b9acb748a4c35aa1b428025853032540bb7e41f46767321f"}, {file = "ujson-5.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d8951bb7a505ab2a700e26f691bdfacf395bc7e3111e3416d325b513eea03a58"}, {file = "ujson-5.11.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:952c0be400229940248c0f5356514123d428cba1946af6fa2bbd7503395fef26"}, {file = "ujson-5.11.0-cp311-cp311-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:94fcae844f1e302f6f8095c5d1c45a2f0bfb928cccf9f1b99e3ace634b980a2a"}, {file = "ujson-5.11.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7e0ec1646db172beb8d3df4c32a9d78015e671d2000af548252769e33079d9a6"}, {file = "ujson-5.11.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:da473b23e3a54448b008d33f742bcd6d5fb2a897e42d1fc6e7bf306ea5d18b1b"}, {file = "ujson-5.11.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:aa6b3d4f1c0d3f82930f4cbd7fe46d905a4a9205a7c13279789c1263faf06dba"}, {file = "ujson-5.11.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4843f3ab4fe1cc596bb7e02228ef4c25d35b4bb0809d6a260852a4bfcab37ba3"}, {file = "ujson-5.11.0-cp311-cp311-win32.whl", hash = "sha256:e979fbc469a7f77f04ec2f4e853ba00c441bf2b06720aa259f0f720561335e34"}, {file = "ujson-5.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:683f57f0dd3acdd7d9aff1de0528d603aafcb0e6d126e3dc7ce8b020a28f5d01"}, {file = "ujson-5.11.0-cp311-cp311-win_arm64.whl", hash = "sha256:7855ccea3f8dad5e66d8445d754fc1cf80265a4272b5f8059ebc7ec29b8d0835"}, {file = "ujson-5.11.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7895f0d2d53bd6aea11743bd56e3cb82d729980636cd0ed9b89418bf66591702"}, {file = "ujson-5.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:12b5e7e22a1fe01058000d1b317d3b65cc3daf61bd2ea7a2b76721fe160fa74d"}, {file = "ujson-5.11.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0180a480a7d099082501cad1fe85252e4d4bf926b40960fb3d9e87a3a6fbbc80"}, {file = "ujson-5.11.0-cp312-cp312-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:fa79fdb47701942c2132a9dd2297a1a85941d966d8c87bfd9e29b0cf423f26cc"}, {file = "ujson-5.11.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8254e858437c00f17cb72e7a644fc42dad0ebb21ea981b71df6e84b1072aaa7c"}, {file = "ujson-5.11.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1aa8a2ab482f09f6c10fba37112af5f957689a79ea598399c85009f2f29898b5"}, {file = "ujson-5.11.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a638425d3c6eed0318df663df44480f4a40dc87cc7c6da44d221418312f6413b"}, {file = "ujson-5.11.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7e3cff632c1d78023b15f7e3a81c3745cd3f94c044d1e8fa8efbd6b161997bbc"}, {file = "ujson-5.11.0-cp312-cp312-win32.whl", hash = "sha256:be6b0eaf92cae8cdee4d4c9e074bde43ef1c590ed5ba037ea26c9632fb479c88"}, {file = "ujson-5.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:b7b136cc6abc7619124fd897ef75f8e63105298b5ca9bdf43ebd0e1fa0ee105f"}, {file = "ujson-5.11.0-cp312-cp312-win_arm64.whl", hash = "sha256:6cd2df62f24c506a0ba322d5e4fe4466d47a9467b57e881ee15a31f7ecf68ff6"}, {file = "ujson-5.11.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:109f59885041b14ee9569bf0bb3f98579c3fa0652317b355669939e5fc5ede53"}, {file = "ujson-5.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a31c6b8004438e8c20fc55ac1c0e07dad42941db24176fe9acf2815971f8e752"}, {file = "ujson-5.11.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:78c684fb21255b9b90320ba7e199780f653e03f6c2528663768965f4126a5b50"}, {file = "ujson-5.11.0-cp313-cp313-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:4c9f5d6a27d035dd90a146f7761c2272cf7103de5127c9ab9c4cd39ea61e878a"}, {file = "ujson-5.11.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:837da4d27fed5fdc1b630bd18f519744b23a0b5ada1bbde1a36ba463f2900c03"}, {file = "ujson-5.11.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:787aff4a84da301b7f3bac09bc696e2e5670df829c6f8ecf39916b4e7e24e701"}, {file = "ujson-5.11.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:6dd703c3e86dc6f7044c5ac0b3ae079ed96bf297974598116aa5fb7f655c3a60"}, {file = "ujson-5.11.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3772e4fe6b0c1e025ba3c50841a0ca4786825a4894c8411bf8d3afe3a8061328"}, {file = "ujson-5.11.0-cp313-cp313-win32.whl", hash = "sha256:8fa2af7c1459204b7a42e98263b069bd535ea0cd978b4d6982f35af5a04a4241"}, {file = "ujson-5.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:34032aeca4510a7c7102bd5933f59a37f63891f30a0706fb46487ab6f0edf8f0"}, {file = "ujson-5.11.0-cp313-cp313-win_arm64.whl", hash = "sha256:ce076f2df2e1aa62b685086fbad67f2b1d3048369664b4cdccc50707325401f9"}, {file = "ujson-5.11.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:65724738c73645db88f70ba1f2e6fb678f913281804d5da2fd02c8c5839af302"}, {file = "ujson-5.11.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:29113c003ca33ab71b1b480bde952fbab2a0b6b03a4ee4c3d71687cdcbd1a29d"}, {file = "ujson-5.11.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c44c703842024d796b4c78542a6fcd5c3cb948b9fc2a73ee65b9c86a22ee3638"}, {file = "ujson-5.11.0-cp314-cp314-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:e750c436fb90edf85585f5c62a35b35082502383840962c6983403d1bd96a02c"}, {file = "ujson-5.11.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f278b31a7c52eb0947b2db55a5133fbc46b6f0ef49972cd1a80843b72e135aba"}, {file = "ujson-5.11.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ab2cb8351d976e788669c8281465d44d4e94413718af497b4e7342d7b2f78018"}, {file = "ujson-5.11.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:090b4d11b380ae25453100b722d0609d5051ffe98f80ec52853ccf8249dfd840"}, {file = "ujson-5.11.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:80017e870d882d5517d28995b62e4e518a894f932f1e242cbc802a2fd64d365c"}, {file = "ujson-5.11.0-cp314-cp314-win32.whl", hash = "sha256:1d663b96eb34c93392e9caae19c099ec4133ba21654b081956613327f0e973ac"}, {file = "ujson-5.11.0-cp314-cp314-win_amd64.whl", hash = "sha256:849e65b696f0d242833f1df4182096cedc50d414215d1371fca85c541fbff629"}, {file = "ujson-5.11.0-cp314-cp314-win_arm64.whl", hash = "sha256:e73df8648c9470af2b6a6bf5250d4744ad2cf3d774dcf8c6e31f018bdd04d764"}, {file = "ujson-5.11.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:de6e88f62796372fba1de973c11138f197d3e0e1d80bcb2b8aae1e826096d433"}, {file = "ujson-5.11.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:49e56ef8066f11b80d620985ae36869a3ff7e4b74c3b6129182ec5d1df0255f3"}, {file = "ujson-5.11.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1a325fd2c3a056cf6c8e023f74a0c478dd282a93141356ae7f16d5309f5ff823"}, {file = "ujson-5.11.0-cp314-cp314t-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:a0af6574fc1d9d53f4ff371f58c96673e6d988ed2b5bf666a6143c782fa007e9"}, {file = "ujson-5.11.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:10f29e71ecf4ecd93a6610bd8efa8e7b6467454a363c3d6416db65de883eb076"}, {file = "ujson-5.11.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:1a0a9b76a89827a592656fe12e000cf4f12da9692f51a841a4a07aa4c7ecc41c"}, {file = "ujson-5.11.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:b16930f6a0753cdc7d637b33b4e8f10d5e351e1fb83872ba6375f1e87be39746"}, {file = "ujson-5.11.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:04c41afc195fd477a59db3a84d5b83a871bd648ef371cf8c6f43072d89144eef"}, {file = "ujson-5.11.0-cp314-cp314t-win32.whl", hash = "sha256:aa6d7a5e09217ff93234e050e3e380da62b084e26b9f2e277d2606406a2fc2e5"}, {file = "ujson-5.11.0-cp314-cp314t-win_amd64.whl", hash = "sha256:48055e1061c1bb1f79e75b4ac39e821f3f35a9b82de17fce92c3140149009bec"}, {file = "ujson-5.11.0-cp314-cp314t-win_arm64.whl", hash = "sha256:1194b943e951092db611011cb8dbdb6cf94a3b816ed07906e14d3bc6ce0e90ab"}, {file = "ujson-5.11.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:65f3c279f4ed4bf9131b11972040200c66ae040368abdbb21596bf1564899694"}, {file = "ujson-5.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:99c49400572cd77050894e16864a335225191fd72a818ea6423ae1a06467beac"}, {file = "ujson-5.11.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0654a2691fc252c3c525e3d034bb27b8a7546c9d3eb33cd29ce6c9feda361a6a"}, {file = "ujson-5.11.0-cp39-cp39-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:6b6ec7e7321d7fc19abdda3ad809baef935f49673951a8bab486aea975007e02"}, {file = "ujson-5.11.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f62b9976fabbcde3ab6e413f4ec2ff017749819a0786d84d7510171109f2d53c"}, {file = "ujson-5.11.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7f1a27ab91083b4770e160d17f61b407f587548f2c2b5fbf19f94794c495594a"}, {file = "ujson-5.11.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ecd6ff8a3b5a90c292c2396c2d63c687fd0ecdf17de390d852524393cd9ed052"}, {file = "ujson-5.11.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9aacbeb23fdbc4b256a7d12e0beb9063a1ba5d9e0dbb2cfe16357c98b4334596"}, {file = "ujson-5.11.0-cp39-cp39-win32.whl", hash = "sha256:674f306e3e6089f92b126eb2fe41bcb65e42a15432c143365c729fdb50518547"}, {file = "ujson-5.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:c6618f480f7c9ded05e78a1938873fde68baf96cdd74e6d23c7e0a8441175c4b"}, {file = "ujson-5.11.0-cp39-cp39-win_arm64.whl", hash = "sha256:5600202a731af24a25e2d7b6eb3f648e4ecd4bb67c4d5cf12f8fab31677469c9"}, {file = "ujson-5.11.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:abae0fb58cc820092a0e9e8ba0051ac4583958495bfa5262a12f628249e3b362"}, {file = "ujson-5.11.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:fac6c0649d6b7c3682a0a6e18d3de6857977378dce8d419f57a0b20e3d775b39"}, {file = "ujson-5.11.0-pp311-pypy311_pp73-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4b42c115c7c6012506e8168315150d1e3f76e7ba0f4f95616f4ee599a1372bbc"}, {file = "ujson-5.11.0-pp311-pypy311_pp73-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:86baf341d90b566d61a394869ce77188cc8668f76d7bb2c311d77a00f4bdf844"}, {file = "ujson-5.11.0-pp311-pypy311_pp73-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4598bf3965fc1a936bd84034312bcbe00ba87880ef1ee33e33c1e88f2c398b49"}, {file = "ujson-5.11.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:416389ec19ef5f2013592f791486bef712ebce0cd59299bf9df1ba40bb2f6e04"}, {file = "ujson-5.11.0.tar.gz", hash = "sha256:e204ae6f909f099ba6b6b942131cee359ddda2b6e4ea39c12eb8b991fe2010e0"}, ] [[package]] name = "urllib3" version = "1.26.20" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" groups = ["dev"] markers = "platform_python_implementation == \"PyPy\" or python_version == \"3.9\"" files = [ {file = "urllib3-1.26.20-py2.py3-none-any.whl", hash = "sha256:0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e"}, {file = "urllib3-1.26.20.tar.gz", hash = "sha256:40c2dc0c681e47eb8f90e7e27bf6ff7df2e677421fd46756da1161c39ca70d32"}, ] [package.extras] brotli = ["brotli (==1.0.9) ; os_name != \"nt\" and python_version < \"3\" and platform_python_implementation == \"CPython\"", "brotli (>=1.0.9) ; python_version >= \"3\" and platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; (os_name != \"nt\" or python_version >= \"3\") and platform_python_implementation != \"CPython\"", "brotlipy (>=0.6.0) ; os_name == \"nt\" and python_version < \"3\""] secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress ; python_version == \"2.7\"", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] name = "urllib3" version = "2.5.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" groups = ["dev"] markers = "platform_python_implementation != \"PyPy\" and python_version >= \"3.10\"" files = [ {file = "urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc"}, {file = "urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760"}, ] [package.extras] brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] [[package]] name = "vcrpy" version = "7.0.0" description = "Automatically mock your HTTP interactions to simplify and speed up testing" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ {file = "vcrpy-7.0.0-py2.py3-none-any.whl", hash = "sha256:55791e26c18daa363435054d8b35bd41a4ac441b6676167635d1b37a71dbe124"}, {file = "vcrpy-7.0.0.tar.gz", hash = "sha256:176391ad0425edde1680c5b20738ea3dc7fb942520a48d2993448050986b3a50"}, ] [package.dependencies] PyYAML = "*" urllib3 = [ {version = "<2", markers = "python_version < \"3.10\" or platform_python_implementation == \"PyPy\""}, {version = "*", markers = "platform_python_implementation != \"PyPy\" and python_version >= \"3.10\""}, ] wrapt = "*" yarl = "*" [package.extras] tests = ["Werkzeug (==2.0.3)", "aiohttp", "boto3", "httplib2", "httpx", "pytest", "pytest-aiohttp", "pytest-asyncio", "pytest-cov", "pytest-httpbin", "requests (>=2.22.0)", "tornado", "urllib3"] [[package]] name = "virtualenv" version = "20.34.0" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.8" groups = ["dev"] files = [ {file = "virtualenv-20.34.0-py3-none-any.whl", hash = "sha256:341f5afa7eee943e4984a9207c025feedd768baff6753cd660c857ceb3e36026"}, {file = "virtualenv-20.34.0.tar.gz", hash = "sha256:44815b2c9dee7ed86e387b842a84f20b93f7f417f95886ca1996a72a4138eb1a"}, ] [package.dependencies] distlib = ">=0.3.7,<1" filelock = ">=3.12.2,<4" platformdirs = ">=3.9.1,<5" typing-extensions = {version = ">=4.13.2", markers = "python_version < \"3.11\""} [package.extras] docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8) ; platform_python_implementation == \"PyPy\" or platform_python_implementation == \"GraalVM\" or platform_python_implementation == \"CPython\" and sys_platform == \"win32\" and python_version >= \"3.13\"", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10) ; platform_python_implementation == \"CPython\""] [[package]] name = "voluptuous" version = "0.15.2" description = "Python data validation library" optional = false python-versions = ">=3.9" groups = ["main"] files = [ {file = "voluptuous-0.15.2-py3-none-any.whl", hash = "sha256:016348bc7788a9af9520b1764ebd4de0df41fe2138ebe9e06fa036bf86a65566"}, {file = "voluptuous-0.15.2.tar.gz", hash = "sha256:6ffcab32c4d3230b4d2af3a577c87e1908a714a11f6f95570456b1849b0279aa"}, ] [[package]] name = "wrapt" version = "1.17.3" description = "Module for decorators, wrappers and monkey patching." optional = false python-versions = ">=3.8" groups = ["dev"] files = [ {file = "wrapt-1.17.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:88bbae4d40d5a46142e70d58bf664a89b6b4befaea7b2ecc14e03cedb8e06c04"}, {file = "wrapt-1.17.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e6b13af258d6a9ad602d57d889f83b9d5543acd471eee12eb51f5b01f8eb1bc2"}, {file = "wrapt-1.17.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd341868a4b6714a5962c1af0bd44f7c404ef78720c7de4892901e540417111c"}, {file = "wrapt-1.17.3-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f9b2601381be482f70e5d1051a5965c25fb3625455a2bf520b5a077b22afb775"}, {file = "wrapt-1.17.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:343e44b2a8e60e06a7e0d29c1671a0d9951f59174f3709962b5143f60a2a98bd"}, {file = "wrapt-1.17.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:33486899acd2d7d3066156b03465b949da3fd41a5da6e394ec49d271baefcf05"}, {file = "wrapt-1.17.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e6f40a8aa5a92f150bdb3e1c44b7e98fb7113955b2e5394122fa5532fec4b418"}, {file = "wrapt-1.17.3-cp310-cp310-win32.whl", hash = "sha256:a36692b8491d30a8c75f1dfee65bef119d6f39ea84ee04d9f9311f83c5ad9390"}, {file = "wrapt-1.17.3-cp310-cp310-win_amd64.whl", hash = "sha256:afd964fd43b10c12213574db492cb8f73b2f0826c8df07a68288f8f19af2ebe6"}, {file = "wrapt-1.17.3-cp310-cp310-win_arm64.whl", hash = "sha256:af338aa93554be859173c39c85243970dc6a289fa907402289eeae7543e1ae18"}, {file = "wrapt-1.17.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:273a736c4645e63ac582c60a56b0acb529ef07f78e08dc6bfadf6a46b19c0da7"}, {file = "wrapt-1.17.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5531d911795e3f935a9c23eb1c8c03c211661a5060aab167065896bbf62a5f85"}, {file = "wrapt-1.17.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0610b46293c59a3adbae3dee552b648b984176f8562ee0dba099a56cfbe4df1f"}, {file = "wrapt-1.17.3-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b32888aad8b6e68f83a8fdccbf3165f5469702a7544472bdf41f582970ed3311"}, {file = "wrapt-1.17.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8cccf4f81371f257440c88faed6b74f1053eef90807b77e31ca057b2db74edb1"}, {file = "wrapt-1.17.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8a210b158a34164de8bb68b0e7780041a903d7b00c87e906fb69928bf7890d5"}, {file = "wrapt-1.17.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:79573c24a46ce11aab457b472efd8d125e5a51da2d1d24387666cd85f54c05b2"}, {file = "wrapt-1.17.3-cp311-cp311-win32.whl", hash = "sha256:c31eebe420a9a5d2887b13000b043ff6ca27c452a9a22fa71f35f118e8d4bf89"}, {file = "wrapt-1.17.3-cp311-cp311-win_amd64.whl", hash = "sha256:0b1831115c97f0663cb77aa27d381237e73ad4f721391a9bfb2fe8bc25fa6e77"}, {file = "wrapt-1.17.3-cp311-cp311-win_arm64.whl", hash = "sha256:5a7b3c1ee8265eb4c8f1b7d29943f195c00673f5ab60c192eba2d4a7eae5f46a"}, {file = "wrapt-1.17.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ab232e7fdb44cdfbf55fc3afa31bcdb0d8980b9b95c38b6405df2acb672af0e0"}, {file = "wrapt-1.17.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9baa544e6acc91130e926e8c802a17f3b16fbea0fd441b5a60f5cf2cc5c3deba"}, {file = "wrapt-1.17.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6b538e31eca1a7ea4605e44f81a48aa24c4632a277431a6ed3f328835901f4fd"}, {file = "wrapt-1.17.3-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:042ec3bb8f319c147b1301f2393bc19dba6e176b7da446853406d041c36c7828"}, {file = "wrapt-1.17.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3af60380ba0b7b5aeb329bc4e402acd25bd877e98b3727b0135cb5c2efdaefe9"}, {file = "wrapt-1.17.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0b02e424deef65c9f7326d8c19220a2c9040c51dc165cddb732f16198c168396"}, {file = "wrapt-1.17.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:74afa28374a3c3a11b3b5e5fca0ae03bef8450d6aa3ab3a1e2c30e3a75d023dc"}, {file = "wrapt-1.17.3-cp312-cp312-win32.whl", hash = "sha256:4da9f45279fff3543c371d5ababc57a0384f70be244de7759c85a7f989cb4ebe"}, {file = "wrapt-1.17.3-cp312-cp312-win_amd64.whl", hash = "sha256:e71d5c6ebac14875668a1e90baf2ea0ef5b7ac7918355850c0908ae82bcb297c"}, {file = "wrapt-1.17.3-cp312-cp312-win_arm64.whl", hash = "sha256:604d076c55e2fdd4c1c03d06dc1a31b95130010517b5019db15365ec4a405fc6"}, {file = "wrapt-1.17.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a47681378a0439215912ef542c45a783484d4dd82bac412b71e59cf9c0e1cea0"}, {file = "wrapt-1.17.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:54a30837587c6ee3cd1a4d1c2ec5d24e77984d44e2f34547e2323ddb4e22eb77"}, {file = "wrapt-1.17.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:16ecf15d6af39246fe33e507105d67e4b81d8f8d2c6598ff7e3ca1b8a37213f7"}, {file = "wrapt-1.17.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6fd1ad24dc235e4ab88cda009e19bf347aabb975e44fd5c2fb22a3f6e4141277"}, {file = "wrapt-1.17.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ed61b7c2d49cee3c027372df5809a59d60cf1b6c2f81ee980a091f3afed6a2d"}, {file = "wrapt-1.17.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:423ed5420ad5f5529db9ce89eac09c8a2f97da18eb1c870237e84c5a5c2d60aa"}, {file = "wrapt-1.17.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e01375f275f010fcbf7f643b4279896d04e571889b8a5b3f848423d91bf07050"}, {file = "wrapt-1.17.3-cp313-cp313-win32.whl", hash = "sha256:53e5e39ff71b3fc484df8a522c933ea2b7cdd0d5d15ae82e5b23fde87d44cbd8"}, {file = "wrapt-1.17.3-cp313-cp313-win_amd64.whl", hash = "sha256:1f0b2f40cf341ee8cc1a97d51ff50dddb9fcc73241b9143ec74b30fc4f44f6cb"}, {file = "wrapt-1.17.3-cp313-cp313-win_arm64.whl", hash = "sha256:7425ac3c54430f5fc5e7b6f41d41e704db073309acfc09305816bc6a0b26bb16"}, {file = "wrapt-1.17.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:cf30f6e3c077c8e6a9a7809c94551203c8843e74ba0c960f4a98cd80d4665d39"}, {file = "wrapt-1.17.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:e228514a06843cae89621384cfe3a80418f3c04aadf8a3b14e46a7be704e4235"}, {file = "wrapt-1.17.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:5ea5eb3c0c071862997d6f3e02af1d055f381b1d25b286b9d6644b79db77657c"}, {file = "wrapt-1.17.3-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:281262213373b6d5e4bb4353bc36d1ba4084e6d6b5d242863721ef2bf2c2930b"}, {file = "wrapt-1.17.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dc4a8d2b25efb6681ecacad42fca8859f88092d8732b170de6a5dddd80a1c8fa"}, {file = "wrapt-1.17.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:373342dd05b1d07d752cecbec0c41817231f29f3a89aa8b8843f7b95992ed0c7"}, {file = "wrapt-1.17.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d40770d7c0fd5cbed9d84b2c3f2e156431a12c9a37dc6284060fb4bec0b7ffd4"}, {file = "wrapt-1.17.3-cp314-cp314-win32.whl", hash = "sha256:fbd3c8319de8e1dc79d346929cd71d523622da527cca14e0c1d257e31c2b8b10"}, {file = "wrapt-1.17.3-cp314-cp314-win_amd64.whl", hash = "sha256:e1a4120ae5705f673727d3253de3ed0e016f7cd78dc463db1b31e2463e1f3cf6"}, {file = "wrapt-1.17.3-cp314-cp314-win_arm64.whl", hash = "sha256:507553480670cab08a800b9463bdb881b2edeed77dc677b0a5915e6106e91a58"}, {file = "wrapt-1.17.3-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:ed7c635ae45cfbc1a7371f708727bf74690daedc49b4dba310590ca0bd28aa8a"}, {file = "wrapt-1.17.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:249f88ed15503f6492a71f01442abddd73856a0032ae860de6d75ca62eed8067"}, {file = "wrapt-1.17.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5a03a38adec8066d5a37bea22f2ba6bbf39fcdefbe2d91419ab864c3fb515454"}, {file = "wrapt-1.17.3-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5d4478d72eb61c36e5b446e375bbc49ed002430d17cdec3cecb36993398e1a9e"}, {file = "wrapt-1.17.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:223db574bb38637e8230eb14b185565023ab624474df94d2af18f1cdb625216f"}, {file = "wrapt-1.17.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e405adefb53a435f01efa7ccdec012c016b5a1d3f35459990afc39b6be4d5056"}, {file = "wrapt-1.17.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:88547535b787a6c9ce4086917b6e1d291aa8ed914fdd3a838b3539dc95c12804"}, {file = "wrapt-1.17.3-cp314-cp314t-win32.whl", hash = "sha256:41b1d2bc74c2cac6f9074df52b2efbef2b30bdfe5f40cb78f8ca22963bc62977"}, {file = "wrapt-1.17.3-cp314-cp314t-win_amd64.whl", hash = "sha256:73d496de46cd2cdbdbcce4ae4bcdb4afb6a11234a1df9c085249d55166b95116"}, {file = "wrapt-1.17.3-cp314-cp314t-win_arm64.whl", hash = "sha256:f38e60678850c42461d4202739f9bf1e3a737c7ad283638251e79cc49effb6b6"}, {file = "wrapt-1.17.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:70d86fa5197b8947a2fa70260b48e400bf2ccacdcab97bb7de47e3d1e6312225"}, {file = "wrapt-1.17.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:df7d30371a2accfe4013e90445f6388c570f103d61019b6b7c57e0265250072a"}, {file = "wrapt-1.17.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:caea3e9c79d5f0d2c6d9ab96111601797ea5da8e6d0723f77eabb0d4068d2b2f"}, {file = "wrapt-1.17.3-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:758895b01d546812d1f42204bd443b8c433c44d090248bf22689df673ccafe00"}, {file = "wrapt-1.17.3-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:02b551d101f31694fc785e58e0720ef7d9a10c4e62c1c9358ce6f63f23e30a56"}, {file = "wrapt-1.17.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:656873859b3b50eeebe6db8b1455e99d90c26ab058db8e427046dbc35c3140a5"}, {file = "wrapt-1.17.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a9a2203361a6e6404f80b99234fe7fb37d1fc73487b5a78dc1aa5b97201e0f22"}, {file = "wrapt-1.17.3-cp38-cp38-win32.whl", hash = "sha256:55cbbc356c2842f39bcc553cf695932e8b30e30e797f961860afb308e6b1bb7c"}, {file = "wrapt-1.17.3-cp38-cp38-win_amd64.whl", hash = "sha256:ad85e269fe54d506b240d2d7b9f5f2057c2aa9a2ea5b32c66f8902f768117ed2"}, {file = "wrapt-1.17.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:30ce38e66630599e1193798285706903110d4f057aab3168a34b7fdc85569afc"}, {file = "wrapt-1.17.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:65d1d00fbfb3ea5f20add88bbc0f815150dbbde3b026e6c24759466c8b5a9ef9"}, {file = "wrapt-1.17.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a7c06742645f914f26c7f1fa47b8bc4c91d222f76ee20116c43d5ef0912bba2d"}, {file = "wrapt-1.17.3-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7e18f01b0c3e4a07fe6dfdb00e29049ba17eadbc5e7609a2a3a4af83ab7d710a"}, {file = "wrapt-1.17.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f5f51a6466667a5a356e6381d362d259125b57f059103dd9fdc8c0cf1d14139"}, {file = "wrapt-1.17.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:59923aa12d0157f6b82d686c3fd8e1166fa8cdfb3e17b42ce3b6147ff81528df"}, {file = "wrapt-1.17.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:46acc57b331e0b3bcb3e1ca3b421d65637915cfcd65eb783cb2f78a511193f9b"}, {file = "wrapt-1.17.3-cp39-cp39-win32.whl", hash = "sha256:3e62d15d3cfa26e3d0788094de7b64efa75f3a53875cdbccdf78547aed547a81"}, {file = "wrapt-1.17.3-cp39-cp39-win_amd64.whl", hash = "sha256:1f23fa283f51c890eda8e34e4937079114c74b4c81d2b2f1f1d94948f5cc3d7f"}, {file = "wrapt-1.17.3-cp39-cp39-win_arm64.whl", hash = "sha256:24c2ed34dc222ed754247a2702b1e1e89fdbaa4016f324b4b8f1a802d4ffe87f"}, {file = "wrapt-1.17.3-py3-none-any.whl", hash = "sha256:7171ae35d2c33d326ac19dd8facb1e82e5fd04ef8c6c0e394d7af55a55051c22"}, {file = "wrapt-1.17.3.tar.gz", hash = "sha256:f66eb08feaa410fe4eebd17f2a2c8e2e46d3476e9f8c783daa8e09e0faa666d0"}, ] [[package]] name = "yarl" version = "1.20.1" description = "Yet another URL library" optional = false python-versions = ">=3.9" groups = ["main", "dev"] files = [ {file = "yarl-1.20.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6032e6da6abd41e4acda34d75a816012717000fa6839f37124a47fcefc49bec4"}, {file = "yarl-1.20.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2c7b34d804b8cf9b214f05015c4fee2ebe7ed05cf581e7192c06555c71f4446a"}, {file = "yarl-1.20.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0c869f2651cc77465f6cd01d938d91a11d9ea5d798738c1dc077f3de0b5e5fed"}, {file = "yarl-1.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62915e6688eb4d180d93840cda4110995ad50c459bf931b8b3775b37c264af1e"}, {file = "yarl-1.20.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:41ebd28167bc6af8abb97fec1a399f412eec5fd61a3ccbe2305a18b84fb4ca73"}, {file = "yarl-1.20.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:21242b4288a6d56f04ea193adde174b7e347ac46ce6bc84989ff7c1b1ecea84e"}, {file = "yarl-1.20.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bea21cdae6c7eb02ba02a475f37463abfe0a01f5d7200121b03e605d6a0439f8"}, {file = "yarl-1.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f8a891e4a22a89f5dde7862994485e19db246b70bb288d3ce73a34422e55b23"}, {file = "yarl-1.20.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dd803820d44c8853a109a34e3660e5a61beae12970da479cf44aa2954019bf70"}, {file = "yarl-1.20.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b982fa7f74c80d5c0c7b5b38f908971e513380a10fecea528091405f519b9ebb"}, {file = "yarl-1.20.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:33f29ecfe0330c570d997bcf1afd304377f2e48f61447f37e846a6058a4d33b2"}, {file = "yarl-1.20.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:835ab2cfc74d5eb4a6a528c57f05688099da41cf4957cf08cad38647e4a83b30"}, {file = "yarl-1.20.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:46b5e0ccf1943a9a6e766b2c2b8c732c55b34e28be57d8daa2b3c1d1d4009309"}, {file = "yarl-1.20.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:df47c55f7d74127d1b11251fe6397d84afdde0d53b90bedb46a23c0e534f9d24"}, {file = "yarl-1.20.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76d12524d05841276b0e22573f28d5fbcb67589836772ae9244d90dd7d66aa13"}, {file = "yarl-1.20.1-cp310-cp310-win32.whl", hash = "sha256:6c4fbf6b02d70e512d7ade4b1f998f237137f1417ab07ec06358ea04f69134f8"}, {file = "yarl-1.20.1-cp310-cp310-win_amd64.whl", hash = "sha256:aef6c4d69554d44b7f9d923245f8ad9a707d971e6209d51279196d8e8fe1ae16"}, {file = "yarl-1.20.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:47ee6188fea634bdfaeb2cc420f5b3b17332e6225ce88149a17c413c77ff269e"}, {file = "yarl-1.20.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d0f6500f69e8402d513e5eedb77a4e1818691e8f45e6b687147963514d84b44b"}, {file = "yarl-1.20.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7a8900a42fcdaad568de58887c7b2f602962356908eedb7628eaf6021a6e435b"}, {file = "yarl-1.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bad6d131fda8ef508b36be3ece16d0902e80b88ea7200f030a0f6c11d9e508d4"}, {file = "yarl-1.20.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:df018d92fe22aaebb679a7f89fe0c0f368ec497e3dda6cb81a567610f04501f1"}, {file = "yarl-1.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f969afbb0a9b63c18d0feecf0db09d164b7a44a053e78a7d05f5df163e43833"}, {file = "yarl-1.20.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:812303eb4aa98e302886ccda58d6b099e3576b1b9276161469c25803a8db277d"}, {file = "yarl-1.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98c4a7d166635147924aa0bf9bfe8d8abad6fffa6102de9c99ea04a1376f91e8"}, {file = "yarl-1.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:12e768f966538e81e6e7550f9086a6236b16e26cd964cf4df35349970f3551cf"}, {file = "yarl-1.20.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:fe41919b9d899661c5c28a8b4b0acf704510b88f27f0934ac7a7bebdd8938d5e"}, {file = "yarl-1.20.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:8601bc010d1d7780592f3fc1bdc6c72e2b6466ea34569778422943e1a1f3c389"}, {file = "yarl-1.20.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:daadbdc1f2a9033a2399c42646fbd46da7992e868a5fe9513860122d7fe7a73f"}, {file = "yarl-1.20.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:03aa1e041727cb438ca762628109ef1333498b122e4c76dd858d186a37cec845"}, {file = "yarl-1.20.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:642980ef5e0fa1de5fa96d905c7e00cb2c47cb468bfcac5a18c58e27dbf8d8d1"}, {file = "yarl-1.20.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:86971e2795584fe8c002356d3b97ef6c61862720eeff03db2a7c86b678d85b3e"}, {file = "yarl-1.20.1-cp311-cp311-win32.whl", hash = "sha256:597f40615b8d25812f14562699e287f0dcc035d25eb74da72cae043bb884d773"}, {file = "yarl-1.20.1-cp311-cp311-win_amd64.whl", hash = "sha256:26ef53a9e726e61e9cd1cda6b478f17e350fb5800b4bd1cd9fe81c4d91cfeb2e"}, {file = "yarl-1.20.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdcc4cd244e58593a4379fe60fdee5ac0331f8eb70320a24d591a3be197b94a9"}, {file = "yarl-1.20.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b29a2c385a5f5b9c7d9347e5812b6f7ab267193c62d282a540b4fc528c8a9d2a"}, {file = "yarl-1.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1112ae8154186dfe2de4732197f59c05a83dc814849a5ced892b708033f40dc2"}, {file = "yarl-1.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90bbd29c4fe234233f7fa2b9b121fb63c321830e5d05b45153a2ca68f7d310ee"}, {file = "yarl-1.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:680e19c7ce3710ac4cd964e90dad99bf9b5029372ba0c7cbfcd55e54d90ea819"}, {file = "yarl-1.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a979218c1fdb4246a05efc2cc23859d47c89af463a90b99b7c56094daf25a16"}, {file = "yarl-1.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255b468adf57b4a7b65d8aad5b5138dce6a0752c139965711bdcb81bc370e1b6"}, {file = "yarl-1.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a97d67108e79cfe22e2b430d80d7571ae57d19f17cda8bb967057ca8a7bf5bfd"}, {file = "yarl-1.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8570d998db4ddbfb9a590b185a0a33dbf8aafb831d07a5257b4ec9948df9cb0a"}, {file = "yarl-1.20.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:97c75596019baae7c71ccf1d8cc4738bc08134060d0adfcbe5642f778d1dca38"}, {file = "yarl-1.20.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1c48912653e63aef91ff988c5432832692ac5a1d8f0fb8a33091520b5bbe19ef"}, {file = "yarl-1.20.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4c3ae28f3ae1563c50f3d37f064ddb1511ecc1d5584e88c6b7c63cf7702a6d5f"}, {file = "yarl-1.20.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c5e9642f27036283550f5f57dc6156c51084b458570b9d0d96100c8bebb186a8"}, {file = "yarl-1.20.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2c26b0c49220d5799f7b22c6838409ee9bc58ee5c95361a4d7831f03cc225b5a"}, {file = "yarl-1.20.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:564ab3d517e3d01c408c67f2e5247aad4019dcf1969982aba3974b4093279004"}, {file = "yarl-1.20.1-cp312-cp312-win32.whl", hash = "sha256:daea0d313868da1cf2fac6b2d3a25c6e3a9e879483244be38c8e6a41f1d876a5"}, {file = "yarl-1.20.1-cp312-cp312-win_amd64.whl", hash = "sha256:48ea7d7f9be0487339828a4de0360d7ce0efc06524a48e1810f945c45b813698"}, {file = "yarl-1.20.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0b5ff0fbb7c9f1b1b5ab53330acbfc5247893069e7716840c8e7d5bb7355038a"}, {file = "yarl-1.20.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:14f326acd845c2b2e2eb38fb1346c94f7f3b01a4f5c788f8144f9b630bfff9a3"}, {file = "yarl-1.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f60e4ad5db23f0b96e49c018596707c3ae89f5d0bd97f0ad3684bcbad899f1e7"}, {file = "yarl-1.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:49bdd1b8e00ce57e68ba51916e4bb04461746e794e7c4d4bbc42ba2f18297691"}, {file = "yarl-1.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:66252d780b45189975abfed839616e8fd2dbacbdc262105ad7742c6ae58f3e31"}, {file = "yarl-1.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59174e7332f5d153d8f7452a102b103e2e74035ad085f404df2e40e663a22b28"}, {file = "yarl-1.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e3968ec7d92a0c0f9ac34d5ecfd03869ec0cab0697c91a45db3fbbd95fe1b653"}, {file = "yarl-1.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1a4fbb50e14396ba3d375f68bfe02215d8e7bc3ec49da8341fe3157f59d2ff5"}, {file = "yarl-1.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11a62c839c3a8eac2410e951301309426f368388ff2f33799052787035793b02"}, {file = "yarl-1.20.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:041eaa14f73ff5a8986b4388ac6bb43a77f2ea09bf1913df7a35d4646db69e53"}, {file = "yarl-1.20.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:377fae2fef158e8fd9d60b4c8751387b8d1fb121d3d0b8e9b0be07d1b41e83dc"}, {file = "yarl-1.20.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1c92f4390e407513f619d49319023664643d3339bd5e5a56a3bebe01bc67ec04"}, {file = "yarl-1.20.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d25ddcf954df1754ab0f86bb696af765c5bfaba39b74095f27eececa049ef9a4"}, {file = "yarl-1.20.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:909313577e9619dcff8c31a0ea2aa0a2a828341d92673015456b3ae492e7317b"}, {file = "yarl-1.20.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:793fd0580cb9664548c6b83c63b43c477212c0260891ddf86809e1c06c8b08f1"}, {file = "yarl-1.20.1-cp313-cp313-win32.whl", hash = "sha256:468f6e40285de5a5b3c44981ca3a319a4b208ccc07d526b20b12aeedcfa654b7"}, {file = "yarl-1.20.1-cp313-cp313-win_amd64.whl", hash = "sha256:495b4ef2fea40596bfc0affe3837411d6aa3371abcf31aac0ccc4bdd64d4ef5c"}, {file = "yarl-1.20.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f60233b98423aab21d249a30eb27c389c14929f47be8430efa7dbd91493a729d"}, {file = "yarl-1.20.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:6f3eff4cc3f03d650d8755c6eefc844edde99d641d0dcf4da3ab27141a5f8ddf"}, {file = "yarl-1.20.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:69ff8439d8ba832d6bed88af2c2b3445977eba9a4588b787b32945871c2444e3"}, {file = "yarl-1.20.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cf34efa60eb81dd2645a2e13e00bb98b76c35ab5061a3989c7a70f78c85006d"}, {file = "yarl-1.20.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8e0fe9364ad0fddab2688ce72cb7a8e61ea42eff3c7caeeb83874a5d479c896c"}, {file = "yarl-1.20.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f64fbf81878ba914562c672024089e3401974a39767747691c65080a67b18c1"}, {file = "yarl-1.20.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6342d643bf9a1de97e512e45e4b9560a043347e779a173250824f8b254bd5ce"}, {file = "yarl-1.20.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56dac5f452ed25eef0f6e3c6a066c6ab68971d96a9fb441791cad0efba6140d3"}, {file = "yarl-1.20.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7d7f497126d65e2cad8dc5f97d34c27b19199b6414a40cb36b52f41b79014be"}, {file = "yarl-1.20.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:67e708dfb8e78d8a19169818eeb5c7a80717562de9051bf2413aca8e3696bf16"}, {file = "yarl-1.20.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:595c07bc79af2494365cc96ddeb772f76272364ef7c80fb892ef9d0649586513"}, {file = "yarl-1.20.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7bdd2f80f4a7df852ab9ab49484a4dee8030023aa536df41f2d922fd57bf023f"}, {file = "yarl-1.20.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c03bfebc4ae8d862f853a9757199677ab74ec25424d0ebd68a0027e9c639a390"}, {file = "yarl-1.20.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:344d1103e9c1523f32a5ed704d576172d2cabed3122ea90b1d4e11fe17c66458"}, {file = "yarl-1.20.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:88cab98aa4e13e1ade8c141daeedd300a4603b7132819c484841bb7af3edce9e"}, {file = "yarl-1.20.1-cp313-cp313t-win32.whl", hash = "sha256:b121ff6a7cbd4abc28985b6028235491941b9fe8fe226e6fdc539c977ea1739d"}, {file = "yarl-1.20.1-cp313-cp313t-win_amd64.whl", hash = "sha256:541d050a355bbbc27e55d906bc91cb6fe42f96c01413dd0f4ed5a5240513874f"}, {file = "yarl-1.20.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e42ba79e2efb6845ebab49c7bf20306c4edf74a0b20fc6b2ccdd1a219d12fad3"}, {file = "yarl-1.20.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:41493b9b7c312ac448b7f0a42a089dffe1d6e6e981a2d76205801a023ed26a2b"}, {file = "yarl-1.20.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f5a5928ff5eb13408c62a968ac90d43f8322fd56d87008b8f9dabf3c0f6ee983"}, {file = "yarl-1.20.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30c41ad5d717b3961b2dd785593b67d386b73feca30522048d37298fee981805"}, {file = "yarl-1.20.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:59febc3969b0781682b469d4aca1a5cab7505a4f7b85acf6db01fa500fa3f6ba"}, {file = "yarl-1.20.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d2b6fb3622b7e5bf7a6e5b679a69326b4279e805ed1699d749739a61d242449e"}, {file = "yarl-1.20.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:749d73611db8d26a6281086f859ea7ec08f9c4c56cec864e52028c8b328db723"}, {file = "yarl-1.20.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9427925776096e664c39e131447aa20ec738bdd77c049c48ea5200db2237e000"}, {file = "yarl-1.20.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff70f32aa316393eaf8222d518ce9118148eddb8a53073c2403863b41033eed5"}, {file = "yarl-1.20.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c7ddf7a09f38667aea38801da8b8d6bfe81df767d9dfc8c88eb45827b195cd1c"}, {file = "yarl-1.20.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:57edc88517d7fc62b174fcfb2e939fbc486a68315d648d7e74d07fac42cec240"}, {file = "yarl-1.20.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:dab096ce479d5894d62c26ff4f699ec9072269d514b4edd630a393223f45a0ee"}, {file = "yarl-1.20.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:14a85f3bd2d7bb255be7183e5d7d6e70add151a98edf56a770d6140f5d5f4010"}, {file = "yarl-1.20.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:2c89b5c792685dd9cd3fa9761c1b9f46fc240c2a3265483acc1565769996a3f8"}, {file = "yarl-1.20.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:69e9b141de5511021942a6866990aea6d111c9042235de90e08f94cf972ca03d"}, {file = "yarl-1.20.1-cp39-cp39-win32.whl", hash = "sha256:b5f307337819cdfdbb40193cad84978a029f847b0a357fbe49f712063cfc4f06"}, {file = "yarl-1.20.1-cp39-cp39-win_amd64.whl", hash = "sha256:eae7bfe2069f9c1c5b05fc7fe5d612e5bbc089a39309904ee8b829e322dcad00"}, {file = "yarl-1.20.1-py3-none-any.whl", hash = "sha256:83b8eb083fe4683c6115795d9fc1cfaf2cbbefb19b3a1cb68f6527460f483a77"}, {file = "yarl-1.20.1.tar.gz", hash = "sha256:d017a4997ee50c91fd5466cef416231bb82177b93b029906cefc542ce14c35ac"}, ] [package.dependencies] idna = ">=2.0" multidict = ">=4.0" propcache = ">=0.2.1" [[package]] name = "zipp" version = "3.23.0" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.9" groups = ["dev"] markers = "python_version == \"3.9\"" files = [ {file = "zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e"}, {file = "zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166"}, ] [package.extras] check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] enabler = ["pytest-enabler (>=2.2)"] test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more_itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] type = ["pytest-mypy"] [metadata] lock-version = "2.1" python-versions = ">=3.9" content-hash = "4f5634f760768e9b4ed4faf8aa8fcf98e4fbc4563cccc027beaced08eaf4de8d" ahayworth-python_awair-683cb06/pyproject.toml000066400000000000000000000036741507173055200215120ustar00rootroot00000000000000[tool.poetry] name = "python-awair" version = "0.2.5" description = "asyncio client for the Awair GraphQL and Local APIs" authors = ["Andrew Hayworth "] license = "MIT" readme = "README.md" homepage = "https://github.com/ahayworth/python_awair" repository = "https://github.com/ahayworth/python_awair" keywords = ["awair", "getawair", "api", "async", "asyncio"] classifiers = [ "Development Status :: 4 - Beta", "Framework :: AsyncIO", "Intended Audience :: Developers", "Topic :: Home Automation", "Topic :: Software Development :: Libraries", "Typing :: Typed" ] [tool.poetry.dependencies] python = ">=3.9" aiohttp = ">=3.6.1" voluptuous = ">=0.11.7" [tool.poetry.group.dev.dependencies] black = ">=19.10b0" codecov = ">=2.1" coverage = ">=5.0.4" flake8 = ">=3.7.9" flake8-docstrings = ">=1.5.0" isort = ">=4.3.21" mypy = ">=0.770" pydocstyle = ">=5.0.2" pylint = ">=2.4.4" pytest = ">=5.2" pytest-aiohttp = ">=0.3.0" pytest-cov = ">=2.8.1" python-language-server = ">=0.31.9" sphinx = ">=3.0.1" sphinx-readable-theme = ">=1.3.0" tox = ">=4" vcrpy = ">=4.0.2" [tool.pytest.ini_options] asyncio_mode = "auto" [tool.tox] legacy_tox_ini = """ [tox] envlist = py39, py310, py311, py312, py313 isolated_build = True skipsdist = True skip_missing_interpreters = True [testenv] allowlist_externals = poetry commands = poetry run pytest {posargs} [testenv:lint] allowlist_externals = poetry commands = poetry run black . --check poetry run isort --check python_awair/ tests/ poetry run flake8 python_awair/ tests/ poetry run pylint python_awair/ tests/ poetry run mypy python_awair/ tests/ [testenv:coverage] allowlist_externals = poetry codecov passenv = CI,CODECOV*,GITHUB_ACTION,GITHUB_REF,GITHUB_REPOSITORY,GITHUB_HEAD_REF,GITHUB_SHA,GITHUB_RUN_ID commands = poetry run pytest --cov=python_awair {posargs} codecov """ [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" ahayworth-python_awair-683cb06/python_awair/000077500000000000000000000000001507173055200212705ustar00rootroot00000000000000ahayworth-python_awair-683cb06/python_awair/__init__.py000066400000000000000000000074301507173055200234050ustar00rootroot00000000000000"""Python asyncio client for the Awair REST API. This module is an object-oriented wrapper around the Awair_ REST API_. It requires an access token (which can be obtained from the `developer console`_) and implements read-only access to the "user" portions of the API. .. _Awair: https://getawair.com .. _API: https://docs.developer.getawair.com/?version=latest .. _`developer console`: https://developer.getawair.com """ from asyncio import gather from typing import List, Optional from aiohttp import ClientSession from python_awair import const from python_awair.auth import AccessTokenAuth, AwairAuth from python_awair.client import AwairClient from python_awair.devices import AwairLocalDevice from python_awair.exceptions import AwairError from python_awair.user import AwairUser class Awair: """Entry class for the Awair API. Args: session: An aiohttp session that will be used to query the Awair API. access_token: An optional access token, obtained from the Awair developer console, used to authenticate to the Awair API. authenticator: An optional instance of an AwairAuth class, which can provide an HTTP Bearer token for authentication. Most users will simply provide an access_token, instead. """ client: AwairClient """AwairClient: The instantiated AwairClient that will be used to fetch API responses and check for HTTP errors. """ def __init__( self, session: ClientSession, access_token: Optional[str] = None, authenticator: Optional[AwairAuth] = None, ) -> None: """Initialize the Awair API wrapper.""" if authenticator: self.client = AwairClient(authenticator, session) elif access_token: self.client = AwairClient(AccessTokenAuth(access_token), session) else: raise AwairError("No authentication supplied!") async def user(self) -> AwairUser: """Return the current AwairUser. The Awair "user" API does not provide a way to query for a specific user, so this method always returns the user that is associated with the authentication that is in-use. This is *typically* the user that owns the access_token that was provided at class instantiaton, unless you have provided an authenticator class implementing some other stategy (perhaps OAuth). """ response = await self.client.query(const.USER_URL) return AwairUser(client=self.client, attributes=response) class AwairLocal: """Entry class for the local sensors Awair API.""" client: AwairClient """AwairClient: The instantiated AwairClient that will be used to fetch API responses and check for HTTP errors. """ _device_addrs: List[str] """IP or DNS addresses of Awair devices with the local sensors API enabled.""" def __init__(self, session: ClientSession, device_addrs: List[str]) -> None: """Initialize the Awair local sensors API wrapper.""" self._device_addrs = device_addrs if len(device_addrs) > 0: self.client = AwairClient(AccessTokenAuth(""), session) else: raise AwairError("No local Awair device addresses supplied!") async def devices(self) -> List[AwairLocalDevice]: """Return a list of local awair devices.""" responses = await gather( *( self.client.query(f"http://{addr}/settings/config/data") for addr in self._device_addrs ) ) return [ AwairLocalDevice( client=self.client, device_addr=self._device_addrs[i], attributes=device ) for i, device in enumerate(responses) ] ahayworth-python_awair-683cb06/python_awair/air_data.py000066400000000000000000000021571507173055200234130ustar00rootroot00000000000000"""Wrapper class for awair airdata responses.""" from datetime import datetime from typing import Any, Dict from python_awair import const from python_awair.indices import Indices from python_awair.sensors import Sensors class AirData: """Wrapper class for awair airdata responses.""" timestamp: datetime score: float sensors: Sensors indices: Indices def __init__(self, attributes: Dict[str, Any]) -> None: """Initialize from API data.""" self.timestamp = datetime.strptime(attributes["timestamp"], const.DATE_FORMAT) self.score = attributes["score"] self.sensors = Sensors( { sensor["comp"]: sensor["value"] for sensor in attributes.get("sensors", []) } ) self.indices = Indices( {index["comp"]: index["value"] for index in attributes.get("indices", [])} ) def __repr__(self) -> str: """Return a friendly representation.""" return ( f"" ) ahayworth-python_awair-683cb06/python_awair/attrdict.py000066400000000000000000000026121507173055200234610ustar00rootroot00000000000000"""Dict with attribute-like access.""" from typing import Any, Dict, KeysView from python_awair import const class AttrDict(Dict[str, Any]): """Dict with attribute-like access. For example, given an AttrDict *foo*, we could access its values via *foo["bar"]* or *foo.bar*. This is the parent class for the Sensors and Indices classes, and as such it renames some properties to friendlier names on initialization (but not anytime after). """ def __init__(self, attrs: Dict[str, Any]) -> None: """Initialize, hiding known sensor aliases.""" new_attrs = dict(attrs) for key, value in attrs.items(): if key in const.SENSOR_TO_ALIAS: new_attrs[const.SENSOR_TO_ALIAS[key]] = value del new_attrs[key] super().__init__(new_attrs) def __getattr__(self, name: str) -> Any: """Return things in the dict via dot-notation.""" if name in self: return self[name] raise AttributeError() def __setattr__(self, name: str, value: Any) -> None: """Set values in the dict via dot-notation.""" self[name] = value def __delattr__(self, name: str) -> None: """Remove values from the dict via dot-notation.""" del self[name] def __dir__(self) -> KeysView[str]: """Return dict keys as dir attributes.""" return self.keys() ahayworth-python_awair-683cb06/python_awair/auth.py000066400000000000000000000013061507173055200226030ustar00rootroot00000000000000"""Authentication constructs for the Awair API.""" from abc import ABC, abstractmethod class AwairAuth(ABC): """Abstract authentication that provides a Bearer token.""" @abstractmethod async def get_bearer_token(self) -> str: """Return a valid bearer token for authentication.""" class AccessTokenAuth(AwairAuth): """Authentication that uses an Awair access token.""" def __init__(self, access_token: str) -> None: """Initialize and save off our acces token.""" self.access_token = access_token super().__init__() async def get_bearer_token(self) -> str: """Return the access token for authentication.""" return self.access_token ahayworth-python_awair-683cb06/python_awair/client.py000066400000000000000000000050501507173055200231200ustar00rootroot00000000000000"""Wrapper class to query the Awair API.""" import json as Json from typing import Any, Dict, NoReturn from aiohttp import ClientResponse, ClientSession from python_awair.auth import AwairAuth from python_awair.exceptions import ( AuthError, AwairError, NotFoundError, QueryError, RatelimitError, ) class AwairClient: """Python asyncio client for the Awair GraphQL API.""" def __init__( self, authenticator: AwairAuth, session: ClientSession, ) -> None: """Initialize an AwairClient with sensible defaults.""" self.__authenticator = authenticator self.__session = session async def query(self, url: str) -> Any: """Query the Awair api, and handle errors.""" headers = await self.__headers() async with self.__session.get(url, headers=headers) as resp: if resp.status != 200: self.__handle_non_200_error(resp) # Response could be from Awair Omni Ethernet backpack # https://github.com/home-assistant/core/issues/147682 if resp.content_type == "text/html": text = await resp.text() json = Json.loads(text) else: json = await resp.json() self.__check_errors_array(json) return json async def __headers(self) -> Dict[str, str]: """Return headers to set on the API request.""" token = await self.__authenticator.get_bearer_token() return { "Authorization": f"Bearer {token}", "Content-Type": "application/json", } @staticmethod def __check_errors_array(json: Dict[Any, Any]) -> None: """Check for an "errors" array and process it. Holdover from the GraphQL API, unclear if we could still get messages like this. """ if "errors" in json: messages = [] for error in json["errors"]: if "Too many requests" in error["message"]: raise RatelimitError() messages.append(error.get("message", "Unknown error")) if messages: raise AwairError(", ".join(messages)) @staticmethod def __handle_non_200_error(resp: ClientResponse) -> NoReturn: if resp.status == 400: raise QueryError() if resp.status in (401, 403): raise AuthError() if resp.status == 404: raise NotFoundError() if resp.status == 429: raise RatelimitError() raise AwairError() ahayworth-python_awair-683cb06/python_awair/const.py000066400000000000000000000012531507173055200227710ustar00rootroot00000000000000"""Mostly query constants.""" BASE_URL = "https://developer-apis.awair.is/v1" USER_URL = f"{BASE_URL}/users/self" DEVICE_URL = f"{USER_URL}/devices" DATE_FORMAT = "%Y-%m-%dT%H:%M:%S.%fZ" SENSOR_TO_ALIAS = { "temp": "temperature", "humid": "humidity", "co2": "carbon_dioxide", "voc": "volatile_organic_compounds", "pm25": "particulate_matter_2_5", "lux": "illuminance", "spl_a": "sound_pressure_level", } AWAIR_MODELS = { "awair": "Awair", "awair-element": "Awair Element", "awair-glow": "Awair Glow", "awair-glow-c": "Awair Glow C", "awair-mint": "Awair Mint", "awair-omni": "Awair Omni", "awair-r2": "Awair 2nd Edition", } ahayworth-python_awair-683cb06/python_awair/devices.py000066400000000000000000000466601507173055200233000ustar00rootroot00000000000000"""Class to describe an Awair device.""" import urllib from abc import ABC, abstractmethod from datetime import datetime, timedelta from typing import Any, Dict, List, Optional, Union, cast import voluptuous as vol from python_awair import const from python_awair.air_data import AirData from python_awair.client import AwairClient AirDataParam = Union[datetime, bool, int, None] class AwairBaseDevice(ABC): """An Awair device. This class serves two purposes - it provides metadata about a given Awair device, but it also provides methods that retrieve sensor measurements from that device. Available information includes things like the model, name, and location of a device; and the query interface allows the user to query for sensor data in several different samplings, over various timeframes. .. note:: While you can instantiate this class by hand (perhaps in a test case), you should typically load user devices by calling *AwairUser.devices()*. Args: client: An AwairClient that is used if this AwairDevice object needs to query the API. attributes: A mapping which describes the device. This class expects that the *attributes* provided are essentially the result of calling the */v1/users/self/devices* API endpoint. """ device_id: int """int: The ID that identifies the Awair device.""" uuid: str """str: Another ID that identifies the Awair device. This ID typically takes the form of *model_id*. For example, given a first-gen Awair device with ID 123, The uuid would be "awair_123". """ device_type: str """str: The API name for the model of this Awair device. This differs from the human-friendly name, which is given by the *model* attribute. .. table:: :widths: auto ============= ====================== Device type Model ============= ====================== awair `Awair (1st Edition)`_ awair-element `Awair Element`_ awair-glow `Awair Glow`_ awair-glow-c `Awair Glow C`_ awair-mint `Awair Baby`_ awair-omni `Awair Omni`_ awair-r2 `Awair (2nd Edition)`_ ============= ====================== .. _`Awair (2nd Edition)`: https://getawair.com/pages/awair-2nd-edition .. _`Awair Baby`: https://getawair.com/pages/awair-baby .. _`Awair Element`: https://getawair.com/pages/awair-element .. _`Awair Glow C`: https://getawair.com/pages/awair-glow .. _`Awair Glow`: https://web.archive.org/web/20161210171139/https://getawair.com/pages/awair-glow .. _`Awair Omni`: https://getawair.com/pages/awair-for-business .. _`Awair (1st Edition)`: https://web.archive.org/web/20150528004143/https://getawair.com/ """ mac_address: Optional[str] """Optional[str]: The network MAC address.""" latitude: Optional[float] """float: The latitude of the device's location, if known.""" location_name: Optional[str] """float: Description of the device's location.""" longitude: Optional[float] """float: The longitude of the device's location, if known.""" name: Optional[str] """Optional[str]: The user-assigned name for this device.""" preference: Optional[str] """Optional[str]: The device "preference". This represents an instruction to the Awair application, which represents the area of concern for this device. Put differently, it represents *why* the user is using this device to monitor air quality - for example, concern about allergies. Example: "GENERAL" """ room_type: Optional[str] """Optional[str]: The type of room this device is in. For example, a "LIVING_ROOM" or an "OFFICE". """ space_type: Optional[str] """Optional[str]: The type of space this device is in. For example, this might be an "OFFICE" or a "HOME". """ timezone: Optional[str] """Optional[str]: The timezone of the device.""" client: AwairClient """AwairClient: A reference to the configured AwairClient. This is the class that actually queries the API. It's here if you need it, but you probably don't need to use it. """ def __init__(self, client: AwairClient, attributes: Dict[str, Any]) -> None: """Initialize an awair device from API attributes.""" self.device_id = attributes["deviceId"] self.uuid = attributes["deviceUUID"] self.device_type = attributes["deviceType"] self.mac_address = attributes.get("macAddress", None) self.latitude = attributes.get("latitude", None) self.longitude = attributes.get("longitude", None) self.name = attributes.get("name", None) self.preference = attributes.get("preference", None) self.room_type = attributes.get("roomType", None) self.space_type = attributes.get("spaceType", None) self.timezone = attributes.get("timezone", None) self.client = client def __repr__(self) -> str: """Return a friendly representation.""" return f"" @property def model(self) -> str: """Return the human-friendly model, if known. .. table:: :widths: auto ============= ====================== Device type Model ============= ====================== awair `Awair (1st Edition)`_ awair-element `Awair Element`_ awair-glow `Awair Glow`_ awair-glow-c `Awair Glow C`_ awair-mint `Awair Baby`_ awair-omni `Awair Omni`_ awair-r2 `Awair (2nd Edition)`_ ============= ====================== .. _`Awair (2nd Edition)`: https://getawair.com/pages/awair-2nd-edition .. _`Awair Baby`: https://getawair.com/pages/awair-baby .. _`Awair Element`: https://getawair.com/pages/awair-element .. _`Awair Glow C`: https://getawair.com/pages/awair-glow .. _`Awair Glow`: https://web.archive.org/web/20161210171139/https://getawair.com/pages/awair-glow .. _`Awair Omni`: https://getawair.com/pages/awair-for-business .. _`Awair (1st Edition)`: https://web.archive.org/web/20150528004143/https://getawair.com/ """ return const.AWAIR_MODELS.get(self.device_type, self.device_type) async def air_data_latest(self, fahrenheit: bool = False) -> Optional[AirData]: """Get the latest air data for this device. Returns one AirData class describing the most up-to-date measurements for this device's sensors. If the device has been offline for more than 10 minutes, None will be returned. Args: fahrenheit: Return temperatures in fahrenheit (the default is to return temperatures in celsius). The conversion is done in the Awair API itself, not in this library. """ response = await self.__get_airdata("latest", fahrenheit=fahrenheit) if response: return response[0] return None async def air_data_five_minute(self, **kwargs: AirDataParam) -> List[AirData]: r"""Return five-minute summary air data readings for this device. Each data point returned represents a five-minute average of sensor readings. Up to a maximum of 288 data points will be returned - which represents 24 hours of data. Args: kwargs: A mapping of query parameters, which influence the data returned. None are required: ========== ===================================================== Parameter Value ========== ===================================================== fahrenheit *False* (default): temperature data is returned in celsius. *True*: temperature data is returned in fahrenheit. desc *True* (default): datapoints are ordered descending from the *to* parameter. *False*: datapoints are ordered ascending from the *to* parameter. limit *int*: represents the maximum number of datapoints to return. The default and maximum for this parameter is 288. from *datetime*: lower bound for the earliest datapoint to return. May not be chronologically after the *to* parameter, and the difference between the *to* and *from* parameters may not exceed 24 hours. Defaults to 24 hours before the current date/time. to *datetime*: upper bound for the most recent datapoint to return. May not be chronologically before the *from* parameter, and the difference between the *to* and *from* parameters may not exceed 24 hours. Defaults to the current date/time. ========== ===================================================== """ return await self.__get_airdata("5-min-avg", **kwargs) async def air_data_fifteen_minute(self, **kwargs: AirDataParam) -> List[AirData]: r"""Return fifteen-minute summary air data readings for this device. Each data point returned represents a fifteen-minute average of sensor readings. Up to a maximum of 672 data points will be returned - which represents 7 days of data. Args: kwargs: A mapping of query parameters, which influence the data returned. None are required: ========== ===================================================== Parameter Value ========== ===================================================== fahrenheit *False* (default): temperature data is returned in celsius. *True*: temperature data is returned in fahrenheit. desc *True* (default): datapoints are ordered descending from the *to* parameter. *False*: datapoints are ordered ascending from the *to* parameter. limit *int*: represents the maximum number of datapoints to return. The default and maximum for this parameter is 672. from *datetime*: lower bound for the earliest datapoint to return. May not be chronologically after the *to* parameter, and the difference between the *to* and *from* parameters may not exceed 7 days. Defaults to 7 days before the current date/time. to *datetime*: upper bound for the most recent datapoint to return. May not be chronologically before the *from* parameter, and the difference between the *to* and *from* parameters may not exceed 7 days. Defaults to the current date/time. ========== ===================================================== """ return await self.__get_airdata("15-min-avg", **kwargs) async def air_data_raw(self, **kwargs: AirDataParam) -> List[AirData]: r"""Return the raw, per-second air data readings for this device. Each data point returned represents the sensor readings at a given second. Up to a maximum of 360 data points will be returned - which represents 1 hour of data. Args: kwargs: A mapping of query parameters, which influence the data returned. None are required: ========== ===================================================== Parameter Value ========== ===================================================== fahrenheit *False* (default): temperature data is returned in celsius. *True*: temperature data is returned in fahrenheit. desc *True* (default): datapoints are ordered descending from the *to* parameter. *False*: datapoints are ordered ascending from the *to* parameter. limit *int*: represents the maximum number of datapoints to return. The default and maximum for this parameter is 360. from *datetime*: lower bound for the earliest datapoint to return. May not be chronologically after the *to* parameter, and the difference between the *to* and *from* parameters may not exceed 1 hour. Defaults to 1 hour before the current date/time. to *datetime*: upper bound for the most recent datapoint to return. May not be chronologically before the *from* parameter, and the difference between the *to* and *from* parameters may not exceed 1 hour. Defaults to the current date/time. ========== ===================================================== """ return await self.__get_airdata("raw", **kwargs) @abstractmethod def _get_airdata_base_url(self) -> str: """Get the base URL to use for airdata.""" raise TypeError("expected subclass to define override") @abstractmethod def _extract_airdata(self, response: Any) -> List[Any]: """Get the data object out of a response.""" raise TypeError("expected subclass to define override") async def __get_airdata(self, kind: str, **kwargs: AirDataParam) -> List[AirData]: """Call one of several varying air-data API endpoints.""" url = "/".join([self._get_airdata_base_url(), "air-data", kind]) if kwargs is not None: url += self._format_args(kind, **kwargs) response = await self.client.query(url) return [AirData(data) for data in self._extract_airdata(response)] @staticmethod def _format_args(kind: str, **kwargs: AirDataParam) -> str: max_limit = {"raw": 360, "5-min-avg": 288, "15-min-avg": 672} max_hours = {"raw": 1, "15-min-avg": 168, "5-min-avg": 24} def validate_hours(params: Dict[str, Any]) -> Dict[str, Any]: hour_limit = max_hours.get(kind, 24) right_now = datetime.now() from_date = params.get("from_date", right_now - timedelta(hours=hour_limit)) to_date = params.get("to_date", right_now) if not hasattr(from_date, "now") or not hasattr(to_date, "now"): raise vol.Invalid( "Expected 'from_date' and/or 'to_date' to be instances of datetime" ) if from_date > right_now or to_date > right_now: raise vol.Invalid("Dates cannot be in the future!") if from_date > to_date: raise vol.Invalid("'from_date' cannot be greater than 'to_date'.") if (to_date - from_date) > timedelta(hours=hour_limit): raise vol.Invalid( "Difference between 'from_date' and 'to_date' must be less than " + f"or equal to {hour_limit} hours." ) if "from_date" in params: params["from_date"] = str(params["from_date"]) if "to_date" in params: params["to_date"] = str(params["to_date"]) return params schema = vol.Schema( vol.All( { vol.Optional("fahrenheit"): vol.All( bool, vol.Coerce(str), vol.Lower ), vol.Optional("desc"): vol.All(bool, vol.Coerce(str), vol.Lower), vol.Optional("limit"): vol.All( int, vol.Range(min=1, max=max_limit.get(kind, 1)), vol.Coerce(str), ), # We validate dates by hand because it's annoying af with mocking. vol.Optional("from_date"): object, vol.Optional("to_date"): object, }, validate_hours, ) ) args = schema(kwargs) if args: return "?" + urllib.parse.urlencode(args) return "" class AwairDevice(AwairBaseDevice): """A cloud-based Awair device.""" def _get_airdata_base_url(self) -> str: """Get the base URL to use for airdata.""" return "/".join([const.DEVICE_URL, self.device_type, str(self.device_id)]) def _extract_airdata(self, response: Any) -> List[Any]: """Get the data object out of a response.""" return cast(List[Any], response.get("data", [])) class AwairLocalDevice(AwairBaseDevice): """A local Awair device.""" device_addr: str """The DNS or IP address of the device.""" fw_version: Optional[str] """The firmware version currently running on the device.""" def __init__( self, client: AwairClient, device_addr: str, attributes: Dict[str, Any] ): """Initialize an awair local device from API attributes.""" # the format of the config endpoint for local sensors is different than # the cloud API. device_uuid: str = attributes["device_uuid"] [device_type, device_id_str] = device_uuid.split("_", 1) device_id = int(device_id_str) attributes["deviceId"] = device_id attributes["deviceUUID"] = device_uuid attributes["deviceType"] = device_type attributes["macAddress"] = attributes.get("wifi_mac", None) super().__init__(client, attributes) self.device_addr = device_addr self.fw_version = attributes.get("fw_version", None) def _get_airdata_base_url(self) -> str: """Get the base URL to use for airdata.""" return f"http://{self.device_addr}" def _extract_airdata(self, response: Any) -> List[Any]: """Get the data object out of a response.""" # reformat local sensors response to match the cloud API top_level = {"timestamp", "score"} sensors = [ {"comp": k, "value": response[k]} for k in response.keys() if k not in top_level ] data = { "timestamp": response["timestamp"], "score": response["score"], "sensors": sensors, } return [data] @staticmethod def _format_args(kind: str, **kwargs: AirDataParam) -> str: if "fahrenheit" in kwargs: if kwargs["fahrenheit"]: raise ValueError("fahrenheit is not supported for local sensors yet") # if we pass any URL parameters with local sensors, it causes the # timestamp to be the empty string. del kwargs["fahrenheit"] return AwairBaseDevice._format_args(kind, **kwargs) ahayworth-python_awair-683cb06/python_awair/exceptions.py000066400000000000000000000021731507173055200240260ustar00rootroot00000000000000"""Various exceptions for the Awair API.""" from typing import Optional class AwairError(Exception): """Base awair exception class.""" message = "Error querying the Awair API." def __init__(self, extra_message: Optional[str] = None) -> None: """Add extra messages to our base message.""" final_message = self.message if extra_message: final_message += f" {extra_message}" super().__init__(final_message) class AuthError(AwairError): """Some kind of authorization or authentication failure.""" message = ( "The supplied access token is invalid or " + "does not have access to the requested data" ) class QueryError(AwairError): """The query was somehow malformed.""" message = "The supplied parameters were invalid." class NotFoundError(AwairError): """The requested endpoint is gone.""" message = "The Awair API returned an unexpected HTTP 404." class RatelimitError(AwairError): """The API quota was exceeded.""" message = ( "The ratelimit for the Awair API has been " + "exceeded. Please try again later" ) ahayworth-python_awair-683cb06/python_awair/indices.py000066400000000000000000000041231507173055200232600ustar00rootroot00000000000000"""Indices dict with attribute access.""" from python_awair.attrdict import AttrDict class Indices(AttrDict): """Indices of an AwairDevice. An Indices object represents a set of "index" values for a set of sensors of a given AwairDevice. Essentially, the "index" is a bit like a quality score - and Awair has devised a set of quality levels for a variety of their sensors. The "index" is given as a *float* between -4 and 4, but the absolute value is what really matters - just ignore the sign. As a value approaches 4.0, it is considered "worse". As it approaches 0, it is considered "better". A mapping of index ranges and values per-sensor can be found at Awair's `API documentation`_ - that list is authoritative. .. _`API documentation`: https://docs.developer.getawair.com/?version=latest#data-guide The Indices object is a subclass of AttrDict, and thus its values are accessible via string keys - like *foo["bar"]* - or via dot-notation: *foo.bar*. The index names from the Awair API are not entirely user-friendly, so we've aliased known indices to more descriptive values: .. table:: ======== ========================== API name python_awair name ======== ========================== temp temperature humid humidity co2 carbon_dioxide voc volatile_organic_compounds pm25 particulate_matter_2_5 ======== ========================== Any new indices added by an Awair device before this library is updated will be accessible via their API name, rather than a friendly name. .. note:: The 1st generation Awair device will have a "dust" index, since it has an aggregate pm2.5/pm10 dust sensor (and cannot distinguish between those two sizes). .. note:: Do not assume that every sensor present on a device will also have a corresponding "index"; this is not the case. """ def __repr__(self) -> str: """Pretty-print.""" return f"Indices({super().__repr__()})" ahayworth-python_awair-683cb06/python_awair/sensors.py000066400000000000000000000037031507173055200233410ustar00rootroot00000000000000"""Sensors dict with attribute-like access.""" from python_awair.attrdict import AttrDict class Sensors(AttrDict): """Sensors of an AwairDevice. A Sensors object represents a set of sensors and corresponding values for a given Awair device, at a given point in time. The object itself essentially inherits from *dict*, and thus one can access sensor values by their string keys, and it is iterable - just like a dict. However, the class also supports getting, setting, and deleting sensor values via dot-notation; like an attribute or property. For example, given a *foo* Sensors object with a "bar" sensor, you could access that value either by calling *foo["bar"]* or *foo.bar*. The sensor names from the Awair API are not entirely user-friendly, so we've aliased known sensors to more descriptive values: .. table:: ======== ========================== API name python_awair name ======== ========================== temp temperature humid humidity co2 carbon_dioxide voc volatile_organic_compounds pm25 particulate_matter_2_5 lux illuminance spl_a sound_pressure_level ======== ========================== A more thorough description of available sensors and their units is available on `Awair's API documentation`_. Any new sensors added by an Awair device before this library is updated will be accessible via their API name, rather than a friendly name. .. note:: The 1st generation Awair device contains an "aggregate dust" sensor, which measures a range of particle sizes. It cannot distinguish between pm2.5 and pm10 particles. .. _`Awair's API documentation`: https://docs.developer.getawair.com/?version=latest#data-guide """ def __repr__(self) -> str: """Pretty-print.""" return f"Sensors({super().__repr__()})" ahayworth-python_awair-683cb06/python_awair/user.py000066400000000000000000000117051507173055200226240ustar00rootroot00000000000000"""An Awair user.""" from datetime import date from typing import Any, Dict, List, Optional from python_awair import const from python_awair.client import AwairClient from python_awair.devices import AwairDevice class AwairUser: """An Awair user. This class is primarily informational - it describes the user to which the provided authentication belongs (be that an access_token, or perhaps an OAuth token). Available fields include user information, API quotas, and usage. Additionally, the class provides a method to access the list of devices that are "owned" by this user. .. note:: While you can instantiate this class by hand (perhaps in a test case), you should typically load a user by calling *Awair.user()* instead. Args: client: An AwairClient that is used if this AwairUser object needs to query the API. attributes: A mapping which describes the user. This class expects that the *attributes* provided are essentially the result of calling the */v1/users/self* API endpoint. """ user_id: str """str: The user ID uniquely references an Awair user account. It is returned as a string, because API docs indicate it is a string. """ email: Optional[str] """Optional[str]: The email addres on file for the user.""" first_name: Optional[str] """Optional[str]: The first name of the user.""" last_name: Optional[str] """Optional[str]: The last name of the user.""" sex: Optional[str] """Optional[str]: The 'sex' of the user. Typical values seem to be 'MALE', 'FEMALE', or 'UNKNOWN'. """ dob: Optional[date] """Optional[date]: The user's date of birth, if known.""" tier: Optional[str] """Optional[str]: The account "tier". This broadly maps to a set of permissions and API quotas, but they are not currently well-defined. """ usages: Dict[str, int] """Dict[str, int]: A mapping describing API usage. The keys represent the type of API call being described, and should be reflected in the user's *permissions* attribute. The values represent the number of times that the API call has been used in this usage window. Usage windows reset at midnight. .. todo:: Document the timezone of the usage window reset. """ permissions: Dict[str, int] """Dict[str, int]: A mapping describing API quotas. The keys represent the type of API call being described, and if the API call has been used in this usage window, then it will be represented in this user's *usages* attribute. The values represent the maximum number of times that the API call may be used in this usage window. Usage windwos reset at midnight. .. todo:: Document the timezone of the usage window reset. """ client: AwairClient """AwairClient: A reference to the configured AwairClient. This AwairClient will be used to query the API and validate HTTP responses. It's normally not something one would need to access. """ def __init__(self, client: AwairClient, attributes: Dict[str, Any]) -> None: """Initialize an awair user from API attributes.""" self.user_id = attributes["id"] self.email = attributes.get("email", None) self.first_name = attributes.get("firstName", None) self.last_name = attributes.get("lastName", None) self.sex = attributes.get("sex", None) self.dob: Optional[date] dob_day = attributes.get("dobDay", None) dob_month = attributes.get("dobMonth", None) dob_year = attributes.get("dobYear", None) if dob_day and dob_month and dob_year: self.dob = date(day=dob_day, month=dob_month, year=dob_year) else: self.dob = None self.tier = attributes.get("tier", None) self.usages = { item["scope"]: item["usage"] for item in attributes.get("usages", []) } self.permissions = { item["scope"]: item["quota"] for item in attributes.get("permissions", []) } self.client = client def __repr__(self) -> str: """Return a friendly representation.""" parts = [f"user_id={self.user_id}"] if self.email is not None: parts.append(f"email={self.email}") return f"" async def devices(self) -> List[AwairDevice]: """Return a list of awair devices this user owns. .. note:: For organization users, the underlying API endpoint that this method uses should show you devices that you have access to view. However, the organization API is not directly supported at this time. """ response = await self.client.query(const.DEVICE_URL) return [ AwairDevice(client=self.client, attributes=device) for device in response.get("devices", []) ] ahayworth-python_awair-683cb06/tests/000077500000000000000000000000001507173055200177265ustar00rootroot00000000000000ahayworth-python_awair-683cb06/tests/__init__.py000066400000000000000000000000361507173055200220360ustar00rootroot00000000000000"""Tests for python_awair.""" ahayworth-python_awair-683cb06/tests/const.py000066400000000000000000000023141507173055200214260ustar00rootroot00000000000000"""Test constants.""" import os ACCESS_TOKEN = os.environ.get("AWAIR_ACCESS_TOKEN", "abcdefg") AWAIR_GEN1_ID = 24947 MOCK_GEN1_DEVICE_ATTRS = { "deviceId": AWAIR_GEN1_ID, "deviceType": "awair", "deviceUUID": f"awair_{AWAIR_GEN1_ID}", } MOCK_OMNI_DEVICE_ATTRS = { "deviceId": 755, "deviceType": "awair-omni", "deviceUUID": "awair-omni_755", } MOCK_MINT_DEVICE_ATTRS = { "deviceId": 3665, "deviceType": "awair-mint", "deviceUUID": "awair-mint_3665", } MOCK_GEN2_DEVICE_ATTRS = { "deviceId": 5709, "deviceType": "awair-r2", "deviceUUID": "awair-r2_5709", } MOCK_GLOW_DEVICE_ATTRS = { "deviceId": 1405, "deviceType": "awair-glow", "deviceUUID": "awair-glow_1405", } MOCK_USER_ATTRS = {"id": "32406"} MOCK_ELEMENT_DEVICE_A_ATTRS = { "deviceId": 6049, "deviceType": "awair-element", "deviceUUID": "awair-element_6049", "fw_version": "1.1.5", } MOCK_ELEMENT_DEVICE_B_ATTRS = { "deviceId": 5366, "deviceType": "awair-element", "deviceUUID": "awair-element_5366", "fw_version": "1.2.8", } MOCK_ELEMENT_DEVICE_C_ATTRS = { "deviceId": 18959, "deviceType": "awair-omni", "deviceUUID": "awair-omni_18959", "fw_version": "1.8.1", } ahayworth-python_awair-683cb06/tests/fixtures/000077500000000000000000000000001507173055200215775ustar00rootroot00000000000000ahayworth-python_awair-683cb06/tests/fixtures/cassettes/000077500000000000000000000000001507173055200235755ustar00rootroot00000000000000ahayworth-python_awair-683cb06/tests/fixtures/cassettes/awair-r2.yaml000066400000000000000000000027651507173055200261170ustar00rootroot00000000000000interactions: - request: body: null headers: Content-Type: - application/json authorization: - fake_token method: GET uri: https://developer-apis.awair.is/v1/users/self/devices/awair-r2/5709/air-data/latest?fahrenheit=false response: body: string: '{"data":[{"timestamp":"2020-04-10T16:41:57.771Z","score":97.0,"sensors":[{"comp":"temp","value":18.829999923706055},{"comp":"humid","value":50.52000045776367},{"comp":"co2","value":431.0},{"comp":"voc","value":57.0},{"comp":"pm25","value":2.0}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":1.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"pm25","value":0.0}]}]}' headers: Alt-Svc: clear Via: 1.1 google access-control-allow-credentials: 'true' access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Accept-Encoding, Accept-Language, Host, Referer, User-Agent access-control-allow-methods: GET, POST, PUT, PATCH, DELETE, OPTIONS access-control-allow-origin: '*' content-type: application/json date: Fri, 10 Apr 2020 16:18:11 GMT server: istio-envoy transfer-encoding: chunked x-envoy-decorator-operation: developer-apis-node-port.default.svc.cluster.local:3000/* x-envoy-upstream-service-time: '46' status: code: 200 message: OK url: https://developer-apis.awair.is/v1/users/self/devices/awair-r2/5709/air-data/latest?fahrenheit=false version: 1 ahayworth-python_awair-683cb06/tests/fixtures/cassettes/bad_auth.yaml000066400000000000000000000012261507173055200262310ustar00rootroot00000000000000interactions: - request: body: null headers: Content-Type: - application/json authorization: - fake_token method: GET uri: https://developer-apis.awair.is/v1/users/self response: body: string: The supplied authentication is invalid headers: Alt-Svc: clear Content-Length: '38' Content-Type: text/plain; charset=UTF-8 Date: Thu, 09 Apr 2020 23:18:43 GMT Server: akka-http/10.1.1 Via: 1.1 google WWW-Authenticate: Bearer realm="developer-apis" status: code: 401 message: Unauthorized url: https://developer-apis.awair.is/v1/users/self version: 1 ahayworth-python_awair-683cb06/tests/fixtures/cassettes/bad_params.yaml000066400000000000000000000014001507173055200265450ustar00rootroot00000000000000interactions: - request: body: null headers: Content-Type: - application/json authorization: - fake_token method: GET uri: https://developer-apis.awair.is/v1/users/self/devices/awair/24947/air-data/latest?fahrenheit=451 response: body: string: 'The query parameter ''fahrenheit'' was malformed: ''451'' is not a valid Boolean value' headers: Alt-Svc: clear Content-Length: '82' Content-Type: text/plain; charset=UTF-8 Date: Thu, 09 Apr 2020 23:18:44 GMT Server: akka-http/10.1.1 Via: 1.1 google status: code: 400 message: Bad Request url: https://developer-apis.awair.is/v1/users/self/devices/awair/24947/air-data/latest?fahrenheit=451 version: 1 ahayworth-python_awair-683cb06/tests/fixtures/cassettes/custom_auth.yaml000066400000000000000000000037621507173055200270240ustar00rootroot00000000000000interactions: - request: body: null headers: Content-Type: - application/json authorization: - fake_token method: GET uri: https://developer-apis.awair.is/v1/users/self response: body: string: '{"dobDay":8,"usages":[{"scope":"USER_INFO","usage":1}],"tier":"Large_developer","email":"foo@bar.com","dobYear":2020,"permissions":[{"scope":"USER_DEVICE_LIST","quota":2147483647},{"scope":"USER_INFO","quota":2147483647},{"scope":"FIFTEEN_MIN","quota":30000},{"scope":"FIVE_MIN","quota":30000},{"scope":"RAW","quota":30000},{"scope":"LATEST","quota":30000},{"scope":"PUT_PREFERENCE","quota":30000},{"scope":"PUT_DISPLAY_MODE","quota":30000},{"scope":"PUT_LED_MODE","quota":30000},{"scope":"PUT_KNOCKING_MODE","quota":30000},{"scope":"PUT_TIMEZONE","quota":30000},{"scope":"PUT_DEVICE_NAME","quota":30000},{"scope":"PUT_LOCATION","quota":30000},{"scope":"PUT_ROOM_TYPE","quota":30000},{"scope":"PUT_SPACE_TYPE","quota":30000},{"scope":"GET_DISPLAY_MODE","quota":30000},{"scope":"GET_LED_MODE","quota":30000},{"scope":"GET_KNOCKING_MODE","quota":30000},{"scope":"GET_POWER_STATUS","quota":30000},{"scope":"GET_TIMEZONE","quota":30000}],"dobMonth":4,"sex":"MALE","lastName":"Hayworth","firstName":"Andrew","id":"32406"}' headers: Alt-Svc: clear Via: 1.1 google access-control-allow-credentials: 'true' access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Accept-Encoding, Accept-Language, Host, Referer, User-Agent access-control-allow-methods: GET, POST, PUT, PATCH, DELETE, OPTIONS access-control-allow-origin: '*' content-type: application/json date: Sat, 11 Apr 2020 21:12:01 GMT server: istio-envoy transfer-encoding: chunked x-envoy-decorator-operation: developer-apis-node-port.default.svc.cluster.local:3000/* x-envoy-upstream-service-time: '103' status: code: 200 message: OK url: https://developer-apis.awair.is/v1/users/self version: 1 ahayworth-python_awair-683cb06/tests/fixtures/cassettes/devices.yaml000066400000000000000000000022351507173055200261050ustar00rootroot00000000000000interactions: - request: body: null headers: Content-Type: - application/json authorization: - fake_token method: GET uri: https://developer-apis.awair.is/v1/users/self/devices response: body: string: '{"devices":[{"name":"Living Room","macAddress":"70886B104941","latitude":0.0,"preference":"GENERAL","timezone":"","roomType":"LIVING_ROOM","deviceType":"awair","longitude":0.0,"spaceType":"HOME","deviceUUID":"awair_24947","deviceId":24947,"locationName":"Chicago, IL"}]}' headers: Access-Control-Allow-Credentials: 'true' Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Accept-Encoding, Accept-Language, Host, Referer, User-Agent Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS Access-Control-Allow-Origin: '*' Alt-Svc: clear Content-Type: application/json Date: Thu, 09 Apr 2020 23:18:41 GMT Server: akka-http/10.1.1 Transfer-Encoding: chunked Via: 1.1 google status: code: 200 message: OK url: https://developer-apis.awair.is/v1/users/self/devices version: 1 ahayworth-python_awair-683cb06/tests/fixtures/cassettes/fifteen_minute.yaml000066400000000000000000011105411507173055200274650ustar00rootroot00000000000000interactions: - request: body: null headers: Content-Type: - application/json authorization: - fake_token method: GET uri: https://developer-apis.awair.is/v1/users/self/devices/awair/24947/air-data/15-min-avg?from_date=2020-04-10+10:08:31.252873 response: body: string: '{"data":[{"timestamp":"2020-04-10T15:30:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.791961108936984},{"comp":"humid","value":41.39196074242685},{"comp":"co2","value":640.5882352941177},{"comp":"voc","value":365.80392156862746},{"comp":"dust","value":12.909803932788325}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:15:00.000Z","score":88.02222222222223,"sensors":[{"comp":"temp","value":21.820222261216905},{"comp":"humid","value":41.35288895501031},{"comp":"co2","value":626.2666666666667},{"comp":"voc","value":363.35555555555555},{"comp":"dust","value":12.882222175598145}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:00:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.701666429307725},{"comp":"humid","value":41.542888938056095},{"comp":"co2","value":619.0},{"comp":"voc","value":365.3777777777778},{"comp":"dust","value":13.051111094156902}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:45:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.589213789179084},{"comp":"humid","value":41.655168726203144},{"comp":"co2","value":590.4606741573034},{"comp":"voc","value":369.7191011235955},{"comp":"dust","value":13.23370781373442}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:30:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.48244425455729},{"comp":"humid","value":41.68633325364855},{"comp":"co2","value":555.9666666666667},{"comp":"voc","value":364.6},{"comp":"dust","value":13.108888869815402}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:15:00.000Z","score":88.02222222222223,"sensors":[{"comp":"temp","value":21.449222056070962},{"comp":"humid","value":41.78155568440755},{"comp":"co2","value":525.6},{"comp":"voc","value":345.18888888888887},{"comp":"dust","value":13.301111083560519}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.5555555555555556},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:00:00.000Z","score":88.62222222222222,"sensors":[{"comp":"temp","value":21.502555720011394},{"comp":"humid","value":42.077222188313804},{"comp":"co2","value":520.2},{"comp":"voc","value":336.73333333333335},{"comp":"dust","value":13.127777756585015}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T13:45:00.000Z","score":88.7888895670573,"sensors":[{"comp":"temp","value":21.534888585408527},{"comp":"humid","value":42.1761105855306},{"comp":"co2","value":518.7666422526041},{"comp":"voc","value":335.01111857096356},{"comp":"dust","value":13.216666539510092}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T13:30:00.000Z","score":88.92222340901692,"sensors":[{"comp":"temp","value":21.436777750651043},{"comp":"humid","value":42.60211054484049},{"comp":"co2","value":517.9666646321615},{"comp":"voc","value":337.3777770996094},{"comp":"dust","value":13.277777671813965}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T13:15:00.000Z","score":88.63333384195964,"sensors":[{"comp":"temp","value":21.391667048136394},{"comp":"humid","value":42.665777842203774},{"comp":"co2","value":517.8111165364584},{"comp":"voc","value":340.1000061035156},{"comp":"dust","value":13.251111030578613}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T13:00:00.000Z","score":88.7111104329427,"sensors":[{"comp":"temp","value":21.385888417561848},{"comp":"humid","value":42.833221435546875},{"comp":"co2","value":520.7777709960938},{"comp":"voc","value":343.3666687011719},{"comp":"dust","value":13.20444424947103}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.15555556242664656},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T12:45:00.000Z","score":88.7888895670573,"sensors":[{"comp":"temp","value":21.369555791219074},{"comp":"humid","value":42.93900044759115},{"comp":"co2","value":523.1111043294271},{"comp":"voc","value":341.58888753255206},{"comp":"dust","value":13.187777837117514}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.033333333830038704},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T12:30:00.000Z","score":88.67548116048177,"sensors":[{"comp":"temp","value":21.3187198638916},{"comp":"humid","value":42.87528610229492},{"comp":"co2","value":514.3260498046875},{"comp":"voc","value":338.9743347167969},{"comp":"dust","value":13.250038464864096}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T12:15:00.000Z","score":88.7000020345052,"sensors":[{"comp":"temp","value":21.336888631184895},{"comp":"humid","value":42.96544392903646},{"comp":"co2","value":520.4000040690104},{"comp":"voc","value":342.57777913411456},{"comp":"dust","value":13.211111386617025}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.08888889104127884},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T12:00:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.185888926188152},{"comp":"humid","value":42.84166717529297},{"comp":"co2","value":515.8000081380209},{"comp":"voc","value":343.92222086588544},{"comp":"dust","value":13.154444376627604}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.3888888905445735},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T11:45:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.0222225189209},{"comp":"humid","value":43.05788930257162},{"comp":"co2","value":519.9111124674479},{"comp":"voc","value":348.03333536783856},{"comp":"dust","value":13.15666643778483}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T11:30:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.9435551961263},{"comp":"humid","value":43.38744354248047},{"comp":"co2","value":530.2888793945312},{"comp":"voc","value":349.46666463216144},{"comp":"dust","value":13.023333231608072}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.9888888796170553},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T11:15:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.78344472249349},{"comp":"humid","value":43.43744405110677},{"comp":"co2","value":533.1444498697916},{"comp":"voc","value":348.9888916015625},{"comp":"dust","value":13.077777862548828}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T11:00:00.000Z","score":87.58888753255208,"sensors":[{"comp":"temp","value":20.436333338419598},{"comp":"humid","value":43.80011113484701},{"comp":"co2","value":538.9888916015625},{"comp":"voc","value":343.93332926432294},{"comp":"dust","value":12.86555544535319}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.3666666696468989},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T10:45:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.255555470784504},{"comp":"humid","value":43.669776916503906},{"comp":"co2","value":539.6555379231771},{"comp":"voc","value":341.977783203125},{"comp":"dust","value":13.031111081441244}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T10:30:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.13536834716797},{"comp":"humid","value":43.31893412272135},{"comp":"co2","value":523.0176086425781},{"comp":"voc","value":326.97203572591144},{"comp":"dust","value":13.040268262227377}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T10:15:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.166221618652344},{"comp":"humid","value":42.84566752115885},{"comp":"co2","value":506.44444783528644},{"comp":"voc","value":317.2555440266927},{"comp":"dust","value":13.047777811686197}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T10:00:00.000Z","score":87.01111094156902,"sensors":[{"comp":"temp","value":20.306222279866535},{"comp":"humid","value":43.30388895670573},{"comp":"co2","value":527.8777872721354},{"comp":"voc","value":330.95554606119794},{"comp":"dust","value":13.03000005086263}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T09:45:00.000Z","score":87.53333028157552,"sensors":[{"comp":"temp","value":20.526444753011067},{"comp":"humid","value":43.084556579589844},{"comp":"co2","value":546.7555541992188},{"comp":"voc","value":335.93332926432294},{"comp":"dust","value":12.91777769724528}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T09:30:00.000Z","score":87.16666666666667,"sensors":[{"comp":"temp","value":20.401333491007488},{"comp":"humid","value":43.16366704305013},{"comp":"co2","value":530.0777791341146},{"comp":"voc","value":339.3555501302083},{"comp":"dust","value":13.008888880411783}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.21111110846201578},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T09:15:00.000Z","score":87.94444529215495,"sensors":[{"comp":"temp","value":21.12555503845215},{"comp":"humid","value":41.887444814046226},{"comp":"co2","value":566.0999959309896},{"comp":"voc","value":348.977783203125},{"comp":"dust","value":13.04888916015625}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T09:00:00.000Z","score":86.46666463216145,"sensors":[{"comp":"temp","value":22.40166664123535},{"comp":"humid","value":37.52211125691732},{"comp":"co2","value":514.04443359375},{"comp":"voc","value":325.6888936360677},{"comp":"dust","value":13.14555549621582}],"indices":[{"comp":"temp","value":-0.20000000794728598},{"comp":"humid","value":-0.9888888796170553},{"comp":"co2","value":0.0},{"comp":"voc","value":0.20000000298023224},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T08:45:00.000Z","score":87.03555552164714,"sensors":[{"comp":"temp","value":20.498844782511394},{"comp":"humid","value":42.60688908894857},{"comp":"co2","value":518.8755493164062},{"comp":"voc","value":327.8666687011719},{"comp":"dust","value":13.03688907623291}],"indices":[{"comp":"temp","value":-0.9466666579246521},{"comp":"humid","value":-0.05333333214124044},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T08:30:00.000Z","score":87.02222188313802,"sensors":[{"comp":"temp","value":20.383333841959637},{"comp":"humid","value":43.24444452921549},{"comp":"co2","value":536.3222249348959},{"comp":"voc","value":342.25555419921875},{"comp":"dust","value":13.0633331934611}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.3444444437821706},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T08:15:00.000Z","score":87.46666717529297,"sensors":[{"comp":"temp","value":20.603444417317707},{"comp":"humid","value":42.95811080932617},{"comp":"co2","value":549.4888916015625},{"comp":"voc","value":347.2000020345052},{"comp":"dust","value":13.082221984863281}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.7333333343267441},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T08:00:00.000Z","score":87.12222290039062,"sensors":[{"comp":"temp","value":20.535778045654297},{"comp":"humid","value":43.02588780721029},{"comp":"co2","value":522.0111083984375},{"comp":"voc","value":344.8222147623698},{"comp":"dust","value":13.321111043294271}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.47777778406937915},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T07:45:00.000Z","score":87.2111104329427,"sensors":[{"comp":"temp","value":20.61577796936035},{"comp":"humid","value":43.45155461629232},{"comp":"co2","value":570.2555541992188},{"comp":"voc","value":363.0},{"comp":"dust","value":13.13444455464681}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T07:30:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.43988863627116},{"comp":"humid","value":43.085000356038414},{"comp":"co2","value":540.6555582682291},{"comp":"voc","value":347.94443766276044},{"comp":"dust","value":12.967777887980143}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.6222222161789736},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T07:15:00.000Z","score":87.42222340901692,"sensors":[{"comp":"temp","value":20.682666778564453},{"comp":"humid","value":43.06144460042318},{"comp":"co2","value":574.6444498697916},{"comp":"voc","value":362.09999593098956},{"comp":"dust","value":13.020000139872232}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T07:00:00.000Z","score":87.29540252685547,"sensors":[{"comp":"temp","value":20.74557113647461},{"comp":"humid","value":42.79779942830404},{"comp":"co2","value":540.1432902018229},{"comp":"voc","value":346.9302673339844},{"comp":"dust","value":13.183984438578287}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.6061302721500397},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T06:45:00.000Z","score":87.77777862548828,"sensors":[{"comp":"temp","value":21.056111017862957},{"comp":"humid","value":42.90044403076172},{"comp":"co2","value":580.9444376627604},{"comp":"voc","value":362.1000061035156},{"comp":"dust","value":13.323333740234375}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T06:30:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.14644495646159},{"comp":"humid","value":42.81066640218099},{"comp":"co2","value":547.5222371419271},{"comp":"voc","value":347.1000061035156},{"comp":"dust","value":13.51888910929362}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.6333333452542623},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T06:15:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.33222262064616},{"comp":"humid","value":42.81255594889323},{"comp":"co2","value":596.4777628580729},{"comp":"voc","value":365.44443766276044},{"comp":"dust","value":13.36222235361735}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T06:00:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.370535532633465},{"comp":"humid","value":42.70987319946289},{"comp":"co2","value":580.8540242513021},{"comp":"voc","value":360.759765625},{"comp":"dust","value":13.54540220896403}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T05:45:00.000Z","score":87.93333435058594,"sensors":[{"comp":"temp","value":21.527889251708984},{"comp":"humid","value":42.7216682434082},{"comp":"co2","value":644.5444539388021},{"comp":"voc","value":382.47777303059894},{"comp":"dust","value":13.521111170450846}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T05:30:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.519222259521484},{"comp":"humid","value":42.75655619303385},{"comp":"co2","value":655.8444417317709},{"comp":"voc","value":387.04444376627606},{"comp":"dust","value":13.222222328186035}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T05:15:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.6712220509847},{"comp":"humid","value":42.61155573527018},{"comp":"co2","value":677.1333414713541},{"comp":"voc","value":404.74444580078125},{"comp":"dust","value":13.09666665395101}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T05:00:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.760882059733074},{"comp":"humid","value":42.83531824747721},{"comp":"co2","value":695.7647501627604},{"comp":"voc","value":414.4272054036458},{"comp":"dust","value":12.995249112447103}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T04:45:00.000Z","score":87.95555623372395,"sensors":[{"comp":"temp","value":21.831111907958984},{"comp":"humid","value":43.01566696166992},{"comp":"co2","value":723.7444661458334},{"comp":"voc","value":434.09999593098956},{"comp":"dust","value":13.267777760823568}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T04:30:00.000Z","score":87.42222340901692,"sensors":[{"comp":"temp","value":21.827555974324543},{"comp":"humid","value":43.3368886311849},{"comp":"co2","value":747.7999877929688},{"comp":"voc","value":445.0},{"comp":"dust","value":13.668888727823893}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T04:15:00.000Z","score":87.2111104329427,"sensors":[{"comp":"temp","value":21.893110911051433},{"comp":"humid","value":43.39388910929362},{"comp":"co2","value":764.2222086588541},{"comp":"voc","value":460.6333312988281},{"comp":"dust","value":13.899999936421713}],"indices":[{"comp":"temp","value":-0.9111111164093018},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T04:00:00.000Z","score":87.1999994913737,"sensors":[{"comp":"temp","value":21.932666778564453},{"comp":"humid","value":43.590554555257164},{"comp":"co2","value":779.1777954101562},{"comp":"voc","value":463.8888854980469},{"comp":"dust","value":14.11222235361735}],"indices":[{"comp":"temp","value":-0.7333333343267441},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T03:45:00.000Z","score":86.94444529215495,"sensors":[{"comp":"temp","value":21.969778060913086},{"comp":"humid","value":43.707332611083984},{"comp":"co2","value":786.9444580078125},{"comp":"voc","value":473.6000061035156},{"comp":"dust","value":14.457777976989746}],"indices":[{"comp":"temp","value":-0.6444444457689921},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T03:30:00.000Z","score":86.92222086588542,"sensors":[{"comp":"temp","value":22.03333346048991},{"comp":"humid","value":44.093221028645836},{"comp":"co2","value":811.8000081380209},{"comp":"voc","value":486.52222696940106},{"comp":"dust","value":14.806666692097982}],"indices":[{"comp":"temp","value":-0.4555555582046509},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T03:15:00.000Z","score":85.46666717529297,"sensors":[{"comp":"temp","value":22.115556081136067},{"comp":"humid","value":44.04755528767904},{"comp":"co2","value":812.4111124674479},{"comp":"voc","value":501.0888977050781},{"comp":"dust","value":18.86555544535319}],"indices":[{"comp":"temp","value":-0.07777777810891469},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.2666666507720947}]},{"timestamp":"2020-04-10T03:00:00.000Z","score":86.42643483479817,"sensors":[{"comp":"temp","value":22.159942626953125},{"comp":"humid","value":44.50594584147135},{"comp":"co2","value":845.1865844726562},{"comp":"voc","value":518.9501749674479},{"comp":"dust","value":16.056053161621094}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T02:45:00.000Z","score":86.46666717529297,"sensors":[{"comp":"temp","value":22.219444274902344},{"comp":"humid","value":43.75100072224935},{"comp":"co2","value":813.3333333333334},{"comp":"voc","value":510.1777750651042},{"comp":"dust","value":15.54777749379476}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0111111005147297}]},{"timestamp":"2020-04-10T02:30:00.000Z","score":85.71111297607422,"sensors":[{"comp":"temp","value":22.225444157918293},{"comp":"humid","value":43.85688781738281},{"comp":"co2","value":819.5111287434896},{"comp":"voc","value":519.4111124674479},{"comp":"dust","value":17.606667200724285}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0888888835906982}]},{"timestamp":"2020-04-10T02:15:00.000Z","score":85.98888905843098,"sensors":[{"comp":"temp","value":22.33111063639323},{"comp":"humid","value":43.73833211263021},{"comp":"co2","value":832.3444213867188},{"comp":"voc","value":539.2222290039062},{"comp":"dust","value":16.234444618225098}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T02:00:00.000Z","score":84.57777659098308,"sensors":[{"comp":"temp","value":22.38255500793457},{"comp":"humid","value":44.01422119140625},{"comp":"co2","value":851.6555582682291},{"comp":"voc","value":560.7111206054688},{"comp":"dust","value":19.698888778686523}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.1666666666666667}]},{"timestamp":"2020-04-10T01:45:00.000Z","score":85.00000254313152,"sensors":[{"comp":"temp","value":22.485222498575848},{"comp":"humid","value":44.02255503336588},{"comp":"co2","value":857.1333414713541},{"comp":"voc","value":581.5333455403646},{"comp":"dust","value":18.198888778686523}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T01:30:00.000Z","score":83.12222290039062,"sensors":[{"comp":"temp","value":22.633000055948894},{"comp":"humid","value":44.3956667582194},{"comp":"co2","value":884.2222290039062},{"comp":"voc","value":612.477783203125},{"comp":"dust","value":23.23555564880371}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.4444444179534912}]},{"timestamp":"2020-04-10T01:15:00.000Z","score":83.3651351928711,"sensors":[{"comp":"temp","value":22.785842895507812},{"comp":"humid","value":44.43799591064453},{"comp":"co2","value":913.1026814778646},{"comp":"voc","value":640.4137980143229},{"comp":"dust","value":21.902528762817383}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.4513409932454426}]},{"timestamp":"2020-04-10T01:00:00.000Z","score":81.25900522867839,"sensors":[{"comp":"temp","value":22.89436403910319},{"comp":"humid","value":45.23716735839844},{"comp":"co2","value":960.1113077799479},{"comp":"voc","value":683.3788655598959},{"comp":"dust","value":26.824961344401043}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.8532567024230957}]},{"timestamp":"2020-04-10T00:45:00.000Z","score":79.36666615804036,"sensors":[{"comp":"temp","value":22.99811045328776},{"comp":"humid","value":45.81988779703776},{"comp":"co2","value":990.7555745442709},{"comp":"voc","value":706.2555745442709},{"comp":"dust","value":30.836666742960613}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.42222222685813904},{"comp":"voc","value":1.0},{"comp":"dust","value":2.155555526415507}]},{"timestamp":"2020-04-10T00:30:00.000Z","score":78.07777659098308,"sensors":[{"comp":"temp","value":23.010666529337566},{"comp":"humid","value":45.80744425455729},{"comp":"co2","value":953.3666585286459},{"comp":"voc","value":633.3777872721354},{"comp":"dust","value":36.403333028157554}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.47777777910232544},{"comp":"voc","value":1.0},{"comp":"dust","value":2.3555555740992227}]},{"timestamp":"2020-04-10T00:15:00.000Z","score":88.65555572509766,"sensors":[{"comp":"temp","value":22.962666829427082},{"comp":"humid","value":42.66411209106445},{"comp":"co2","value":705.3111165364584},{"comp":"voc","value":431.1888936360677},{"comp":"dust","value":14.481111208597818}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0444444417953491}]},{"timestamp":"2020-04-10T00:00:00.000Z","score":89.55555470784505,"sensors":[{"comp":"temp","value":23.13955561319987},{"comp":"humid","value":42.71444574991862},{"comp":"co2","value":729.4888916015625},{"comp":"voc","value":412.45555623372394},{"comp":"dust","value":13.269999821980795}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T23:45:00.000Z","score":89.8000005086263,"sensors":[{"comp":"temp","value":23.329333623250324},{"comp":"humid","value":42.633889516194664},{"comp":"co2","value":735.7888793945312},{"comp":"voc","value":418.2111104329427},{"comp":"dust","value":13.098888715108236}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T23:30:00.000Z","score":89.5111083984375,"sensors":[{"comp":"temp","value":23.508221944173176},{"comp":"humid","value":42.687445322672524},{"comp":"co2","value":757.7888997395834},{"comp":"voc","value":431.1555582682292},{"comp":"dust","value":13.355555534362793}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T23:15:00.000Z","score":89.7888895670573,"sensors":[{"comp":"temp","value":23.569665908813477},{"comp":"humid","value":42.863110860188804},{"comp":"co2","value":766.6666870117188},{"comp":"voc","value":441.46666463216144},{"comp":"dust","value":13.09666665395101}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T23:00:00.000Z","score":89.17088063557942,"sensors":[{"comp":"temp","value":23.669230143229168},{"comp":"humid","value":42.95727284749349},{"comp":"co2","value":797.8869832356771},{"comp":"voc","value":450.50767008463544},{"comp":"dust","value":13.425670305887857}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T22:45:00.000Z","score":89.76666768391927,"sensors":[{"comp":"temp","value":23.664666493733723},{"comp":"humid","value":43.10955556233724},{"comp":"co2","value":775.9555460611979},{"comp":"voc","value":442.57777913411456},{"comp":"dust","value":13.411110877990723}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T22:30:00.000Z","score":89.17777760823567,"sensors":[{"comp":"temp","value":23.558778127034504},{"comp":"humid","value":43.47400029500326},{"comp":"co2","value":798.7999877929688},{"comp":"voc","value":450.7222188313802},{"comp":"dust","value":14.143333435058594}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0222222407658894}]},{"timestamp":"2020-04-09T22:15:00.000Z","score":89.11111195882161,"sensors":[{"comp":"temp","value":23.487666447957356},{"comp":"humid","value":43.876888275146484},{"comp":"co2","value":820.3888956705729},{"comp":"voc","value":462.72222900390625},{"comp":"dust","value":13.643333435058594}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T22:00:00.000Z","score":88.47777557373047,"sensors":[{"comp":"temp","value":23.539222717285156},{"comp":"humid","value":44.033888498942055},{"comp":"co2","value":815.2222290039062},{"comp":"voc","value":480.3333333333333},{"comp":"dust","value":15.48888874053955}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0555555423100789}]},{"timestamp":"2020-04-09T21:45:00.000Z","score":88.98850504557292,"sensors":[{"comp":"temp","value":23.44316800435384},{"comp":"humid","value":43.75647481282552},{"comp":"co2","value":778.7762451171875},{"comp":"voc","value":494.0287373860677},{"comp":"dust","value":13.955134391784668}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T21:30:00.000Z","score":88.26666768391927,"sensors":[{"comp":"temp","value":23.522555669148762},{"comp":"humid","value":43.39144515991211},{"comp":"co2","value":764.9000040690104},{"comp":"voc","value":509.75555419921875},{"comp":"dust","value":15.619999885559082}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T21:15:00.000Z","score":87.94444274902344,"sensors":[{"comp":"temp","value":23.468666712443035},{"comp":"humid","value":43.288778940836586},{"comp":"co2","value":710.8555501302084},{"comp":"voc","value":475.8777770996094},{"comp":"dust","value":17.93555514017741}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.1555555661519368}]},{"timestamp":"2020-04-09T21:00:00.000Z","score":89.50843048095703,"sensors":[{"comp":"temp","value":23.528815587361652},{"comp":"humid","value":43.52201461791992},{"comp":"co2","value":716.9716389973959},{"comp":"voc","value":428.2532552083333},{"comp":"dust","value":15.41524887084961}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T20:45:00.000Z","score":89.86666615804036,"sensors":[{"comp":"temp","value":23.42544428507487},{"comp":"humid","value":44.15233357747396},{"comp":"co2","value":747.5777791341146},{"comp":"voc","value":432.7111104329427},{"comp":"dust","value":13.808888753255209}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T20:30:00.000Z","score":90.0,"sensors":[{"comp":"temp","value":23.485111236572266},{"comp":"humid","value":44.95477803548177},{"comp":"co2","value":810.95556640625},{"comp":"voc","value":434.0333251953125},{"comp":"dust","value":13.15666643778483}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T20:15:00.000Z","score":90.33333333333333,"sensors":[{"comp":"temp","value":23.347888946533203},{"comp":"humid","value":45.51311238606771},{"comp":"co2","value":788.1888834635416},{"comp":"voc","value":412.6555480957031},{"comp":"dust","value":12.984444618225098}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T20:00:00.000Z","score":90.46666717529297,"sensors":[{"comp":"temp","value":23.444000244140625},{"comp":"humid","value":44.69366582234701},{"comp":"co2","value":778.022216796875},{"comp":"voc","value":416.4111022949219},{"comp":"dust","value":13.306666692097982}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T19:45:00.000Z","score":90.16666666666667,"sensors":[{"comp":"temp","value":23.260555267333984},{"comp":"humid","value":45.097110748291016},{"comp":"co2","value":752.6999918619791},{"comp":"voc","value":424.38889567057294},{"comp":"dust","value":13.535555521647135}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T19:30:00.000Z","score":90.12222290039062,"sensors":[{"comp":"temp","value":23.247000376383465},{"comp":"humid","value":44.76822280883789},{"comp":"co2","value":728.0666910807291},{"comp":"voc","value":426.3444417317708},{"comp":"dust","value":13.678888956705729}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T19:15:00.000Z","score":90.01111094156902,"sensors":[{"comp":"temp","value":23.162222544352215},{"comp":"humid","value":45.131666819254555},{"comp":"co2","value":720.7888793945312},{"comp":"voc","value":437.72222900390625},{"comp":"dust","value":13.735555648803711}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T19:00:00.000Z","score":89.71647644042969,"sensors":[{"comp":"temp","value":23.2349427541097},{"comp":"humid","value":45.35543314615885},{"comp":"co2","value":718.157470703125},{"comp":"voc","value":452.94788614908856},{"comp":"dust","value":14.527356465657553}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T18:45:00.000Z","score":88.9000015258789,"sensors":[{"comp":"temp","value":23.01011085510254},{"comp":"humid","value":45.60899988810221},{"comp":"co2","value":715.7333374023438},{"comp":"voc","value":469.2999979654948},{"comp":"dust","value":15.00333309173584}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T18:30:00.000Z","score":88.3000005086263,"sensors":[{"comp":"temp","value":23.146888732910156},{"comp":"humid","value":46.150333404541016},{"comp":"co2","value":718.3111165364584},{"comp":"voc","value":499.7888895670573},{"comp":"dust","value":15.695555369059244}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T18:15:00.000Z","score":87.6999994913737,"sensors":[{"comp":"temp","value":22.82966677347819},{"comp":"humid","value":46.09866714477539},{"comp":"co2","value":721.477783203125},{"comp":"voc","value":532.5111083984375},{"comp":"dust","value":15.534444491068522}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T18:00:00.000Z","score":87.92222340901692,"sensors":[{"comp":"temp","value":22.815889358520508},{"comp":"humid","value":45.59600067138672},{"comp":"co2","value":692.0444539388021},{"comp":"voc","value":525.2555541992188},{"comp":"dust","value":15.853333791097006}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T17:45:00.000Z","score":88.05555725097656,"sensors":[{"comp":"temp","value":22.6146666208903},{"comp":"humid","value":45.66211064656576},{"comp":"co2","value":683.9666544596354},{"comp":"voc","value":525.8000081380209},{"comp":"dust","value":14.993333180745443}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T17:30:00.000Z","score":87.44444274902344,"sensors":[{"comp":"temp","value":22.56255531311035},{"comp":"humid","value":45.886112213134766},{"comp":"co2","value":695.7777913411459},{"comp":"voc","value":537.6999918619791},{"comp":"dust","value":15.692222277323404}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0333333412806194}]},{"timestamp":"2020-04-09T17:15:00.000Z","score":87.52222188313802,"sensors":[{"comp":"temp","value":22.35711097717285},{"comp":"humid","value":46.05933380126953},{"comp":"co2","value":690.6777954101562},{"comp":"voc","value":528.7555338541666},{"comp":"dust","value":15.008888880411783}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0111111005147297}]},{"timestamp":"2020-04-09T17:00:00.000Z","score":87.80804443359375,"sensors":[{"comp":"temp","value":22.379245122273762},{"comp":"humid","value":45.665042877197266},{"comp":"co2","value":666.1306559244791},{"comp":"voc","value":518.0839029947916},{"comp":"dust","value":15.451187451680502}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0555555423100789}]},{"timestamp":"2020-04-09T16:45:00.000Z","score":88.14999961853027,"sensors":[{"comp":"temp","value":22.293110529581707},{"comp":"humid","value":45.65377680460612},{"comp":"co2","value":689.4888916015625},{"comp":"voc","value":531.5111083984375},{"comp":"dust","value":13.179999987284342}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T16:30:00.000Z","score":88.01111348470052,"sensors":[{"comp":"temp","value":22.451222737630207},{"comp":"humid","value":45.45933405558268},{"comp":"co2","value":696.3666585286459},{"comp":"voc","value":530.0333455403646},{"comp":"dust","value":14.591111183166504}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T16:15:00.000Z","score":88.8000005086263,"sensors":[{"comp":"temp","value":22.2554448445638},{"comp":"humid","value":45.24644470214844},{"comp":"co2","value":675.1222330729166},{"comp":"voc","value":500.94166564941406},{"comp":"dust","value":13.34777800242106}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T16:00:00.000Z","score":89.48888905843098,"sensors":[{"comp":"temp","value":22.36055564880371},{"comp":"humid","value":44.91399892171224},{"comp":"co2","value":648.95556640625},{"comp":"voc","value":456.06667073567706},{"comp":"dust","value":13.86222235361735}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T15:45:00.000Z","score":89.81111145019531,"sensors":[{"comp":"temp","value":22.147666295369465},{"comp":"humid","value":44.89711125691732},{"comp":"co2","value":617.0999959309896},{"comp":"voc","value":411.79998779296875},{"comp":"dust","value":13.63777764638265}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T15:30:00.000Z","score":89.96666717529297,"sensors":[{"comp":"temp","value":22.092111587524414},{"comp":"humid","value":44.47744496663412},{"comp":"co2","value":610.0999959309896},{"comp":"voc","value":389.3333333333333},{"comp":"dust","value":12.957777659098307}],"indices":[{"comp":"temp","value":-0.08888889352480571},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T15:15:00.000Z","score":90.0,"sensors":[{"comp":"temp","value":22.010000228881836},{"comp":"humid","value":44.39655558268229},{"comp":"co2","value":600.45556640625},{"comp":"voc","value":382.1444396972656},{"comp":"dust","value":12.896666844685873}],"indices":[{"comp":"temp","value":-0.3111111136774222},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T15:00:00.000Z","score":89.85555521647136,"sensors":[{"comp":"temp","value":22.05631446838379},{"comp":"humid","value":44.52339426676432},{"comp":"co2","value":594.7658894856771},{"comp":"voc","value":382.1003824869792},{"comp":"dust","value":13.390383084615072}],"indices":[{"comp":"temp","value":-0.06666666766007741},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T14:45:00.000Z","score":90.25555419921875,"sensors":[{"comp":"temp","value":21.998889287312824},{"comp":"humid","value":45.247554779052734},{"comp":"co2","value":574.3777669270834},{"comp":"voc","value":362.56667073567706},{"comp":"dust","value":12.915555636088053}],"indices":[{"comp":"temp","value":-0.522222230831782},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T14:30:00.000Z","score":90.81111145019531,"sensors":[{"comp":"temp","value":22.06166648864746},{"comp":"humid","value":45.212999979654946},{"comp":"co2","value":579.6333414713541},{"comp":"voc","value":352.52222696940106},{"comp":"dust","value":12.907777786254883}],"indices":[{"comp":"temp","value":-0.14444444825251898},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T14:15:00.000Z","score":90.01111094156902,"sensors":[{"comp":"temp","value":21.966888427734375},{"comp":"humid","value":45.7238883972168},{"comp":"co2","value":584.8111368815104},{"comp":"voc","value":352.26666259765625},{"comp":"dust","value":12.915555318196615}],"indices":[{"comp":"temp","value":-0.9111110965410868},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T14:00:00.000Z","score":90.0,"sensors":[{"comp":"temp","value":21.84844462076823},{"comp":"humid","value":45.84600067138672},{"comp":"co2","value":578.0333251953125},{"comp":"voc","value":351.3222249348958},{"comp":"dust","value":12.808888753255209}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T13:45:00.000Z","score":90.0,"sensors":[{"comp":"temp","value":21.776777903238933},{"comp":"humid","value":46.0347785949707},{"comp":"co2","value":578.3333333333334},{"comp":"voc","value":352.3666585286458},{"comp":"dust","value":12.864444414774576}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T13:30:00.000Z","score":89.94444529215495,"sensors":[{"comp":"temp","value":21.75633366902669},{"comp":"humid","value":46.103888193766274},{"comp":"co2","value":581.7777913411459},{"comp":"voc","value":350.2999979654948},{"comp":"dust","value":13.00444475809733}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T13:15:00.000Z","score":90.0,"sensors":[{"comp":"temp","value":21.769222259521484},{"comp":"humid","value":46.1583366394043},{"comp":"co2","value":585.6210734049479},{"comp":"voc","value":352.2674255371094},{"comp":"dust","value":12.74842898050944}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T13:00:00.000Z","score":89.88888804117839,"sensors":[{"comp":"temp","value":21.837888717651367},{"comp":"humid","value":46.13611094156901},{"comp":"co2","value":603.6777750651041},{"comp":"voc","value":351.7777811686198},{"comp":"dust","value":12.995555559794107}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T12:45:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":21.608444213867188},{"comp":"humid","value":46.684556325276695},{"comp":"co2","value":589.3222249348959},{"comp":"voc","value":351.1444498697917},{"comp":"dust","value":13.04777749379476}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T12:30:00.000Z","score":89.04444376627605,"sensors":[{"comp":"temp","value":21.714221954345703},{"comp":"humid","value":46.487555185953774},{"comp":"co2","value":612.6222330729166},{"comp":"voc","value":351.477783203125},{"comp":"dust","value":13.38777764638265}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T12:15:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":21.598666508992512},{"comp":"humid","value":46.580665588378906},{"comp":"co2","value":579.9666544596354},{"comp":"voc","value":348.977783203125},{"comp":"dust","value":12.975555419921875}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T12:00:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":21.752444585164387},{"comp":"humid","value":46.69633356730143},{"comp":"co2","value":618.3444417317709},{"comp":"voc","value":353.94444783528644},{"comp":"dust","value":13.075555483500162}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T11:45:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":21.680222193400066},{"comp":"humid","value":46.771666526794434},{"comp":"co2","value":578.0555419921875},{"comp":"voc","value":352.59999593098956},{"comp":"dust","value":12.923333168029785}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T11:30:00.000Z","score":89.06666564941406,"sensors":[{"comp":"temp","value":21.817333221435547},{"comp":"humid","value":46.78233337402344},{"comp":"co2","value":617.1888834635416},{"comp":"voc","value":357.27777099609375},{"comp":"dust","value":12.922222137451172}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T11:15:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":21.775110880533855},{"comp":"humid","value":46.909444173177086},{"comp":"co2","value":592.3444417317709},{"comp":"voc","value":357.8333333333333},{"comp":"dust","value":12.972222010294596}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T11:00:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":21.909861882527668},{"comp":"humid","value":47.040409088134766},{"comp":"co2","value":641.8892822265625},{"comp":"voc","value":363.66436767578125},{"comp":"dust","value":12.92984676361084}],"indices":[{"comp":"temp","value":-0.9111111164093018},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T10:45:00.000Z","score":89.14444224039714,"sensors":[{"comp":"temp","value":21.89577802022298},{"comp":"humid","value":46.81433232625326},{"comp":"co2","value":605.5},{"comp":"voc","value":361.94443766276044},{"comp":"dust","value":13.13777764638265}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T10:30:00.000Z","score":89.32221984863281,"sensors":[{"comp":"temp","value":22.123666763305664},{"comp":"humid","value":46.82011159261068},{"comp":"co2","value":638.7111206054688},{"comp":"voc","value":369.03333536783856},{"comp":"dust","value":13.08555539449056}],"indices":[{"comp":"temp","value":-0.22222222884496054},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T10:15:00.000Z","score":89.98888905843098,"sensors":[{"comp":"temp","value":22.134888966878254},{"comp":"humid","value":46.84211095174154},{"comp":"co2","value":602.3666585286459},{"comp":"voc","value":368.7999979654948},{"comp":"dust","value":13.111111005147299}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T10:00:00.000Z","score":89.58888753255208,"sensors":[{"comp":"temp","value":22.29344431559245},{"comp":"humid","value":46.844888051350914},{"comp":"co2","value":650.5444539388021},{"comp":"voc","value":376.8777770996094},{"comp":"dust","value":13.074444452921549}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T09:45:00.000Z","score":89.82222239176433,"sensors":[{"comp":"temp","value":22.286444346110027},{"comp":"humid","value":46.935665130615234},{"comp":"co2","value":619.7222290039062},{"comp":"voc","value":378.55555216471356},{"comp":"dust","value":13.13777764638265}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T09:30:00.000Z","score":89.05555470784505,"sensors":[{"comp":"temp","value":22.38622283935547},{"comp":"humid","value":47.14977773030599},{"comp":"co2","value":661.8666585286459},{"comp":"voc","value":387.72222900390625},{"comp":"dust","value":13.116666793823242}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T09:15:00.000Z","score":90.37777709960938,"sensors":[{"comp":"temp","value":22.97599983215332},{"comp":"humid","value":45.62255605061849},{"comp":"co2","value":647.2333374023438},{"comp":"voc","value":391.91111246744794},{"comp":"dust","value":13.367777506510416}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T09:00:00.000Z","score":89.5,"sensors":[{"comp":"temp","value":24.71999994913737},{"comp":"humid","value":41.45122273763021},{"comp":"co2","value":680.3666585286459},{"comp":"voc","value":390.43333943684894},{"comp":"dust","value":13.29888884226481}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":-0.10000000397364299},{"comp":"co2","value":0.0},{"comp":"voc","value":0.9222222169240316},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T08:45:00.000Z","score":89.1866683959961,"sensors":[{"comp":"temp","value":22.78980000813802},{"comp":"humid","value":46.79159927368164},{"comp":"co2","value":650.7733561197916},{"comp":"voc","value":388.31333414713544},{"comp":"dust","value":13.303333282470703}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":-0.05333333214124044},{"comp":"co2","value":0.0},{"comp":"voc","value":0.9466666579246521},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T08:30:00.000Z","score":89.04444376627605,"sensors":[{"comp":"temp","value":22.814666748046875},{"comp":"humid","value":47.118221282958984},{"comp":"co2","value":696.3555501302084},{"comp":"voc","value":408.41111246744794},{"comp":"dust","value":13.252222061157227}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T08:15:00.000Z","score":89.67777760823567,"sensors":[{"comp":"temp","value":22.883333206176758},{"comp":"humid","value":47.224778493245445},{"comp":"co2","value":674.0888875325521},{"comp":"voc","value":412.51111857096356},{"comp":"dust","value":13.121111234029135}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T08:00:00.000Z","score":88.86666615804036,"sensors":[{"comp":"temp","value":22.98988914489746},{"comp":"humid","value":47.31311162312826},{"comp":"co2","value":717.0555623372396},{"comp":"voc","value":420.6999918619792},{"comp":"dust","value":13.614444732666016}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0444444417953491}]},{"timestamp":"2020-04-09T07:45:00.000Z","score":89.77777608235677,"sensors":[{"comp":"temp","value":23.046666463216145},{"comp":"humid","value":47.319889068603516},{"comp":"co2","value":687.8444417317709},{"comp":"voc","value":421.92222086588544},{"comp":"dust","value":12.96999994913737}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T07:30:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":23.155221939086914},{"comp":"humid","value":47.41344451904297},{"comp":"co2","value":736.3222452799479},{"comp":"voc","value":431.7999979654948},{"comp":"dust","value":13.08222230275472}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T07:15:00.000Z","score":88.6999994913737,"sensors":[{"comp":"temp","value":23.201763153076172},{"comp":"humid","value":47.597338358561196},{"comp":"co2","value":715.9145711263021},{"comp":"voc","value":435.4842936197917},{"comp":"dust","value":14.06360149383545}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0555555423100789}]},{"timestamp":"2020-04-09T07:00:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":23.291555404663086},{"comp":"humid","value":47.68344497680664},{"comp":"co2","value":757.0111083984375},{"comp":"voc","value":443.26666259765625},{"comp":"dust","value":13.080000241597494}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T06:45:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":23.372000376383465},{"comp":"humid","value":47.73177846272787},{"comp":"co2","value":740.3666788736979},{"comp":"voc","value":443.8444417317708},{"comp":"dust","value":13.13444455464681}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T06:30:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":23.554888407389324},{"comp":"humid","value":47.6283327738444},{"comp":"co2","value":774.8555704752604},{"comp":"voc","value":451.05556233723956},{"comp":"dust","value":13.158889134724935}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T06:15:00.000Z","score":89.17777760823567,"sensors":[{"comp":"temp","value":23.656333287556965},{"comp":"humid","value":47.6761105855306},{"comp":"co2","value":753.066650390625},{"comp":"voc","value":449.6444396972656},{"comp":"dust","value":13.154444376627604}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T06:00:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":23.77655537923177},{"comp":"humid","value":47.59600067138672},{"comp":"co2","value":794.6333211263021},{"comp":"voc","value":455.6666666666667},{"comp":"dust","value":13.323333422342936}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T05:45:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":23.87266667683919},{"comp":"humid","value":47.728111267089844},{"comp":"co2","value":795.0},{"comp":"voc","value":462.8666687011719},{"comp":"dust","value":13.264444351196289}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T05:30:00.000Z","score":87.98888905843098,"sensors":[{"comp":"temp","value":23.9657777150472},{"comp":"humid","value":47.712109883626304},{"comp":"co2","value":838.1999918619791},{"comp":"voc","value":470.95555623372394},{"comp":"dust","value":16.157777468363445}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.1777777671813965}]},{"timestamp":"2020-04-09T05:15:00.000Z","score":88.68888854980469,"sensors":[{"comp":"temp","value":24.11055564880371},{"comp":"humid","value":47.83944447835287},{"comp":"co2","value":844.1666666666666},{"comp":"voc","value":479.78887939453125},{"comp":"dust","value":13.607777913411459}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T05:00:00.000Z","score":88.11800893147786,"sensors":[{"comp":"temp","value":24.322551727294922},{"comp":"humid","value":47.63460922241211},{"comp":"co2","value":894.7494303385416},{"comp":"voc","value":489.9130350748698},{"comp":"dust","value":13.39249038696289}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T04:45:00.000Z","score":88.12222290039062,"sensors":[{"comp":"temp","value":24.44933319091797},{"comp":"humid","value":47.765332539876304},{"comp":"co2","value":794.2111206054688},{"comp":"voc","value":506.45555623372394},{"comp":"dust","value":13.321111043294271}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T04:30:00.000Z","score":88.1999994913737,"sensors":[{"comp":"temp","value":24.50633366902669},{"comp":"humid","value":47.59355545043945},{"comp":"co2","value":775.7888793945312},{"comp":"voc","value":509.7111104329427},{"comp":"dust","value":13.55555534362793}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T04:15:00.000Z","score":88.01111094156902,"sensors":[{"comp":"temp","value":24.47711118062337},{"comp":"humid","value":47.847222646077476},{"comp":"co2","value":793.1889038085938},{"comp":"voc","value":522.04443359375},{"comp":"dust","value":13.355555534362793}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T04:00:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":24.493444442749023},{"comp":"humid","value":47.742889404296875},{"comp":"co2","value":788.1555582682291},{"comp":"voc","value":524.5999959309896},{"comp":"dust","value":13.647777875264486}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T03:45:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":24.440221786499023},{"comp":"humid","value":48.028778076171875},{"comp":"co2","value":797.2666625976562},{"comp":"voc","value":534.5111083984375},{"comp":"dust","value":13.591111183166504}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T03:30:00.000Z","score":87.77777608235677,"sensors":[{"comp":"temp","value":24.4227778116862},{"comp":"humid","value":48.05755615234375},{"comp":"co2","value":788.6777750651041},{"comp":"voc","value":540.2555541992188},{"comp":"dust","value":14.00777784983317}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T03:15:00.000Z","score":87.14444478352864,"sensors":[{"comp":"temp","value":24.389554977416992},{"comp":"humid","value":48.38800048828125},{"comp":"co2","value":813.2777913411459},{"comp":"voc","value":553.5666707356771},{"comp":"dust","value":13.978888829549154}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T03:00:00.000Z","score":87.01149495442708,"sensors":[{"comp":"temp","value":24.452609380086262},{"comp":"humid","value":48.30227915445963},{"comp":"co2","value":820.757080078125},{"comp":"voc","value":561.9406127929688},{"comp":"dust","value":13.983026822408041}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T02:45:00.000Z","score":86.5,"sensors":[{"comp":"temp","value":24.427666346232098},{"comp":"humid","value":48.57922236124674},{"comp":"co2","value":831.8777872721354},{"comp":"voc","value":581.8222249348959},{"comp":"dust","value":14.977777798970541}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0555555423100789}]},{"timestamp":"2020-04-09T02:30:00.000Z","score":87.02222188313802,"sensors":[{"comp":"temp","value":24.45288912455241},{"comp":"humid","value":48.426221211751304},{"comp":"co2","value":806.4889119466146},{"comp":"voc","value":574.1555582682291},{"comp":"dust","value":13.976666450500488}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T02:15:00.000Z","score":87.23333231608073,"sensors":[{"comp":"temp","value":24.420888264973957},{"comp":"humid","value":48.329444885253906},{"comp":"co2","value":767.8111165364584},{"comp":"voc","value":555.2777506510416},{"comp":"dust","value":14.55222225189209}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T02:00:00.000Z","score":87.52222188313802,"sensors":[{"comp":"temp","value":24.393666585286457},{"comp":"humid","value":48.273999532063804},{"comp":"co2","value":761.8333333333334},{"comp":"voc","value":565.4111124674479},{"comp":"dust","value":14.300000190734863}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T01:45:00.000Z","score":86.6999994913737,"sensors":[{"comp":"temp","value":24.352444966634113},{"comp":"humid","value":48.60844421386719},{"comp":"co2","value":775.0888875325521},{"comp":"voc","value":588.9666544596354},{"comp":"dust","value":14.96999994913737}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T01:30:00.000Z","score":86.60000101725261,"sensors":[{"comp":"temp","value":24.375999450683594},{"comp":"humid","value":48.645554860432945},{"comp":"co2","value":793.1444498697916},{"comp":"voc","value":602.2666625976562},{"comp":"dust","value":14.811111450195312}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0444444417953491}]},{"timestamp":"2020-04-09T01:15:00.000Z","score":85.35555521647136,"sensors":[{"comp":"temp","value":24.42566680908203},{"comp":"humid","value":48.94244384765625},{"comp":"co2","value":830.2333374023438},{"comp":"voc","value":626.2000122070312},{"comp":"dust","value":16.361111323038738}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0555555423100789}]},{"timestamp":"2020-04-09T01:00:00.000Z","score":85.08543904622395,"sensors":[{"comp":"temp","value":24.46312713623047},{"comp":"humid","value":48.82443618774414},{"comp":"co2","value":828.9682210286459},{"comp":"voc","value":639.4237467447916},{"comp":"dust","value":16.29268169403076}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0555555423100789}]},{"timestamp":"2020-04-09T00:45:00.000Z","score":84.15555826822917,"sensors":[{"comp":"temp","value":24.50599988301595},{"comp":"humid","value":49.095333099365234},{"comp":"co2","value":852.2444458007812},{"comp":"voc","value":658.6777750651041},{"comp":"dust","value":17.733333269755047}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0666666428248088}]},{"timestamp":"2020-04-09T00:30:00.000Z","score":84.1999994913737,"sensors":[{"comp":"temp","value":24.518667221069336},{"comp":"humid","value":49.05566533406576},{"comp":"co2","value":828.8222249348959},{"comp":"voc","value":669.6777750651041},{"comp":"dust","value":17.80111090342204}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.1111111243565877}]},{"timestamp":"2020-04-09T00:15:00.000Z","score":81.46666463216145,"sensors":[{"comp":"temp","value":24.55722173055013},{"comp":"humid","value":49.375222524007164},{"comp":"co2","value":846.7666625976562},{"comp":"voc","value":682.7555541992188},{"comp":"dust","value":24.378889083862305}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.6333333651224773}]},{"timestamp":"2020-04-09T00:00:00.000Z","score":79.6999994913737,"sensors":[{"comp":"temp","value":24.60099983215332},{"comp":"humid","value":49.323778788248696},{"comp":"co2","value":847.6444295247396},{"comp":"voc","value":697.8555501302084},{"comp":"dust","value":30.191110610961914}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.9777777989705403}]},{"timestamp":"2020-04-08T23:45:00.000Z","score":77.47777811686198,"sensors":[{"comp":"temp","value":24.708999633789062},{"comp":"humid","value":49.764776865641274},{"comp":"co2","value":871.522216796875},{"comp":"voc","value":707.4555460611979},{"comp":"dust","value":34.1299991607666}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.07777778059244156},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":2.2888888915379844}]},{"timestamp":"2020-04-08T23:30:00.000Z","score":84.23333485921223,"sensors":[{"comp":"temp","value":24.658110936482746},{"comp":"humid","value":49.124444325764976},{"comp":"co2","value":864.2555338541666},{"comp":"voc","value":713.8444417317709},{"comp":"dust","value":15.271111170450846}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T23:15:00.000Z","score":84.46666463216145,"sensors":[{"comp":"temp","value":24.715999603271484},{"comp":"humid","value":48.1781120300293},{"comp":"co2","value":891.6666463216146},{"comp":"voc","value":731.4888916015625},{"comp":"dust","value":14.804444313049316}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T23:00:00.000Z","score":84.70613352457683,"sensors":[{"comp":"temp","value":24.64880434672038},{"comp":"humid","value":47.90374628702799},{"comp":"co2","value":914.7881266276041},{"comp":"voc","value":744.3593953450521},{"comp":"dust","value":14.155670483907064}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T22:45:00.000Z","score":83.85555775960286,"sensors":[{"comp":"temp","value":24.7022221883138},{"comp":"humid","value":47.978223164876304},{"comp":"co2","value":967.0777791341146},{"comp":"voc","value":770.2333374023438},{"comp":"dust","value":14.507777531941732}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.26666667064030963},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T22:30:00.000Z","score":83.76666768391927,"sensors":[{"comp":"temp","value":24.660666783650715},{"comp":"humid","value":47.95288848876953},{"comp":"co2","value":994.4444376627604},{"comp":"voc","value":789.0666707356771},{"comp":"dust","value":14.067777633666992}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.3111111174027125},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T22:15:00.000Z","score":82.85555521647136,"sensors":[{"comp":"temp","value":24.559555689493816},{"comp":"humid","value":48.505889892578125},{"comp":"co2","value":1019.5555623372396},{"comp":"voc","value":810.6999918619791},{"comp":"dust","value":14.506666819254557}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.7555555601914724},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T22:00:00.000Z","score":84.10000101725261,"sensors":[{"comp":"temp","value":24.276110967000324},{"comp":"humid","value":48.4576670328776},{"comp":"co2","value":999.5111083984375},{"comp":"voc","value":762.1333211263021},{"comp":"dust","value":14.118888854980469}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.611111119389534},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T21:45:00.000Z","score":84.73333231608073,"sensors":[{"comp":"temp","value":24.127999623616535},{"comp":"humid","value":48.53344472249349},{"comp":"co2","value":976.4111124674479},{"comp":"voc","value":712.022216796875},{"comp":"dust","value":14.305555661519369}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.3444444537162781},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T21:30:00.000Z","score":87.81111145019531,"sensors":[{"comp":"temp","value":23.859999974568684},{"comp":"humid","value":46.668111165364586},{"comp":"co2","value":803.2999877929688},{"comp":"voc","value":633.6777750651041},{"comp":"dust","value":13.328888893127441}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T21:15:00.000Z","score":87.1999994913737,"sensors":[{"comp":"temp","value":23.689889272054035},{"comp":"humid","value":46.84811019897461},{"comp":"co2","value":768.6555786132812},{"comp":"voc","value":599.1444295247396},{"comp":"dust","value":16.2599999109904}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.144444425900777}]},{"timestamp":"2020-04-08T21:00:00.000Z","score":90.34444427490234,"sensors":[{"comp":"temp","value":23.27119509379069},{"comp":"humid","value":45.88224538167318},{"comp":"co2","value":529.5574747721354},{"comp":"voc","value":498.0295003255208},{"comp":"dust","value":12.84279696146647}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T20:45:00.000Z","score":91.65555826822917,"sensors":[{"comp":"temp","value":23.212444305419922},{"comp":"humid","value":44.66400146484375},{"comp":"co2","value":402.59999593098956},{"comp":"voc","value":360.74444580078125},{"comp":"dust","value":13.767777760823568}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.6222222248713175},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T20:30:00.000Z","score":91.85555521647136,"sensors":[{"comp":"temp","value":23.016000111897785},{"comp":"humid","value":44.53855514526367},{"comp":"co2","value":400.0},{"comp":"voc","value":327.24444580078125},{"comp":"dust","value":13.34777800242106}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T20:15:00.000Z","score":91.14444478352864,"sensors":[{"comp":"temp","value":22.751888910929363},{"comp":"humid","value":44.10933303833008},{"comp":"co2","value":400.0},{"comp":"voc","value":287.2888895670573},{"comp":"dust","value":15.678889274597168}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0333333412806194}]},{"timestamp":"2020-04-08T20:00:00.000Z","score":91.67777760823567,"sensors":[{"comp":"temp","value":22.521000544230144},{"comp":"humid","value":42.57855478922526},{"comp":"co2","value":400.0},{"comp":"voc","value":246.6888885498047},{"comp":"dust","value":13.236666679382324}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T19:45:00.000Z","score":91.98888905843098,"sensors":[{"comp":"temp","value":22.96988868713379},{"comp":"humid","value":42.995110829671226},{"comp":"co2","value":400.0},{"comp":"voc","value":257.1666666666667},{"comp":"dust","value":13.006666501363119}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T19:30:00.000Z","score":92.0,"sensors":[{"comp":"temp","value":22.85300064086914},{"comp":"humid","value":42.3652229309082},{"comp":"co2","value":400.0},{"comp":"voc","value":250.63333638509116},{"comp":"dust","value":12.83222230275472}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T19:15:00.000Z","score":92.46666717529297,"sensors":[{"comp":"temp","value":23.25522232055664},{"comp":"humid","value":43.01722081502279},{"comp":"co2","value":400.0},{"comp":"voc","value":267.2111104329427},{"comp":"dust","value":12.90666675567627}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T19:00:00.000Z","score":92.16858164469402,"sensors":[{"comp":"temp","value":23.102245330810547},{"comp":"humid","value":43.48123423258463},{"comp":"co2","value":400.0},{"comp":"voc","value":276.3295084635417},{"comp":"dust","value":13.02597681681315}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T18:45:00.000Z","score":92.4111099243164,"sensors":[{"comp":"temp","value":23.13799985249837},{"comp":"humid","value":43.9934450785319},{"comp":"co2","value":400.0},{"comp":"voc","value":282.98888142903644},{"comp":"dust","value":13.292222340901693}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T18:30:00.000Z","score":91.8000005086263,"sensors":[{"comp":"temp","value":22.931999842325848},{"comp":"humid","value":43.68600082397461},{"comp":"co2","value":400.0},{"comp":"voc","value":279.0888977050781},{"comp":"dust","value":13.762221972147623}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T18:15:00.000Z","score":92.34444427490234,"sensors":[{"comp":"temp","value":23.049222310384113},{"comp":"humid","value":44.283555348714195},{"comp":"co2","value":400.0},{"comp":"voc","value":283.9111022949219},{"comp":"dust","value":13.382222175598145}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T18:00:00.000Z","score":92.01111094156902,"sensors":[{"comp":"temp","value":23.203333536783855},{"comp":"humid","value":44.06822204589844},{"comp":"co2","value":400.0},{"comp":"voc","value":293.8888854980469},{"comp":"dust","value":13.963333129882812}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T17:45:00.000Z","score":92.68888600667317,"sensors":[{"comp":"temp","value":23.492777506510418},{"comp":"humid","value":45.20622126261393},{"comp":"co2","value":400.0},{"comp":"voc","value":315.56666056315106},{"comp":"dust","value":13.915555318196615}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T17:30:00.000Z","score":91.7888895670573,"sensors":[{"comp":"temp","value":23.360111236572266},{"comp":"humid","value":46.40299987792969},{"comp":"co2","value":402.3444417317708},{"comp":"voc","value":324.8777770996094},{"comp":"dust","value":13.646666844685873}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T17:15:00.000Z","score":90.83333333333333,"sensors":[{"comp":"temp","value":23.257666269938152},{"comp":"humid","value":47.05744552612305},{"comp":"co2","value":400.76666259765625},{"comp":"voc","value":326.6222229003906},{"comp":"dust","value":14.781111399332682}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0555555423100789}]},{"timestamp":"2020-04-08T17:00:00.000Z","score":90.97701263427734,"sensors":[{"comp":"temp","value":23.026011149088543},{"comp":"humid","value":47.09585444132487},{"comp":"co2","value":400.0},{"comp":"voc","value":322.762451171875},{"comp":"dust","value":14.056896527608236}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T16:45:00.000Z","score":90.88888804117839,"sensors":[{"comp":"temp","value":23.273221969604492},{"comp":"humid","value":47.47677739461263},{"comp":"co2","value":400.6888936360677},{"comp":"voc","value":346.6555480957031},{"comp":"dust","value":13.838888804117838}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.7444444398085276},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T16:30:00.000Z","score":90.51111348470052,"sensors":[{"comp":"temp","value":23.12066713968913},{"comp":"humid","value":47.52522277832031},{"comp":"co2","value":400.0},{"comp":"voc","value":348.7888895670573},{"comp":"dust","value":13.926666577657064}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.5666666626930237},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T16:15:00.000Z","score":90.16666666666667,"sensors":[{"comp":"temp","value":23.239777247111004},{"comp":"humid","value":47.861443837483726},{"comp":"co2","value":408.1111145019531},{"comp":"voc","value":359.06667073567706},{"comp":"dust","value":14.021111170450846}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.8333333333333334},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T16:00:00.000Z","score":90.31111145019531,"sensors":[{"comp":"temp","value":23.159888585408527},{"comp":"humid","value":47.449110666910805},{"comp":"co2","value":403.3666687011719},{"comp":"voc","value":356.7444356282552},{"comp":"dust","value":14.296666781107584}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.7666666706403097},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T15:45:00.000Z","score":89.86666615804036,"sensors":[{"comp":"temp","value":23.3255672454834},{"comp":"humid","value":47.94555918375651},{"comp":"co2","value":427.8325703938802},{"comp":"voc","value":403.7114969889323},{"comp":"dust","value":14.435325622558594}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T15:30:00.000Z","score":89.42222340901692,"sensors":[{"comp":"temp","value":23.38977813720703},{"comp":"humid","value":48.32444381713867},{"comp":"co2","value":490.8333333333333},{"comp":"voc","value":448.1666666666667},{"comp":"dust","value":13.968888918558756}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T15:15:00.000Z","score":88.9111099243164,"sensors":[{"comp":"temp","value":23.422000249226887},{"comp":"humid","value":48.687889099121094},{"comp":"co2","value":508.3444519042969},{"comp":"voc","value":477.94443766276044},{"comp":"dust","value":14.056666692097982}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T15:00:00.000Z","score":87.40459950764973,"sensors":[{"comp":"temp","value":23.42321523030599},{"comp":"humid","value":50.38453674316406},{"comp":"co2","value":601.6532592773438},{"comp":"voc","value":543.7578735351562},{"comp":"dust","value":13.82459799448649}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.7195402284463247},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T14:45:00.000Z","score":87.23333231608073,"sensors":[{"comp":"temp","value":23.413888295491535},{"comp":"humid","value":50.230333964029946},{"comp":"co2","value":608.4888916015625},{"comp":"voc","value":547.6999918619791},{"comp":"dust","value":14.192222277323404}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.5333333412806193},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T14:30:00.000Z","score":84.03333282470703,"sensors":[{"comp":"temp","value":23.3989995320638},{"comp":"humid","value":51.91777801513672},{"comp":"co2","value":714.3222249348959},{"comp":"voc","value":576.5777791341146},{"comp":"dust","value":18.424444516499836}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":1.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.255555550257365}]},{"timestamp":"2020-04-08T14:15:00.000Z","score":88.66666666666667,"sensors":[{"comp":"temp","value":23.30044428507487},{"comp":"humid","value":49.405111948649086},{"comp":"co2","value":574.5999755859375},{"comp":"voc","value":479.27777099609375},{"comp":"dust","value":13.538889249165853}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.06666666766007741},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T14:00:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":23.115444819132488},{"comp":"humid","value":49.08011118570963},{"comp":"co2","value":543.1666666666666},{"comp":"voc","value":442.06667073567706},{"comp":"dust","value":13.034444491068522}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T13:45:00.000Z","score":89.05555470784505,"sensors":[{"comp":"temp","value":23.165777842203777},{"comp":"humid","value":48.936333974202476},{"comp":"co2","value":547.9999796549479},{"comp":"voc","value":439.6222229003906},{"comp":"dust","value":13.248888969421387}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T13:30:00.000Z","score":88.85555521647136,"sensors":[{"comp":"temp","value":22.88433329264323},{"comp":"humid","value":49.399889628092446},{"comp":"co2","value":547.9333292643229},{"comp":"voc","value":438.3333435058594},{"comp":"dust","value":13.26888910929362}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T13:15:00.000Z","score":88.8000005086263,"sensors":[{"comp":"temp","value":22.870333353678387},{"comp":"humid","value":49.38977940877279},{"comp":"co2","value":560.4111124674479},{"comp":"voc","value":437.1555480957031},{"comp":"dust","value":13.284444491068522}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T13:00:00.000Z","score":88.49042256673177,"sensors":[{"comp":"temp","value":22.79239845275879},{"comp":"humid","value":49.53519821166992},{"comp":"co2","value":556.5068766276041},{"comp":"voc","value":438.55286661783856},{"comp":"dust","value":13.165057500203451}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T12:45:00.000Z","score":88.5,"sensors":[{"comp":"temp","value":22.842222213745117},{"comp":"humid","value":49.511889139811196},{"comp":"co2","value":568.0555623372396},{"comp":"voc","value":437.07777913411456},{"comp":"dust","value":13.331111272176107}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T12:30:00.000Z","score":88.12222290039062,"sensors":[{"comp":"temp","value":22.772444407145183},{"comp":"humid","value":49.58622360229492},{"comp":"co2","value":547.7555541992188},{"comp":"voc","value":434.977783203125},{"comp":"dust","value":13.258888880411783}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T12:15:00.000Z","score":88.60000101725261,"sensors":[{"comp":"temp","value":22.883222579956055},{"comp":"humid","value":49.529666900634766},{"comp":"co2","value":579.7666625976562},{"comp":"voc","value":439.0},{"comp":"dust","value":13.178888638814291}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T12:00:00.000Z","score":88.56666564941406,"sensors":[{"comp":"temp","value":22.866221745808918},{"comp":"humid","value":49.52166620890299},{"comp":"co2","value":552.3110961914062},{"comp":"voc","value":435.3888854980469},{"comp":"dust","value":13.368888854980469}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T11:45:00.000Z","score":88.86398569742839,"sensors":[{"comp":"temp","value":22.991636276245117},{"comp":"humid","value":49.317736307779946},{"comp":"co2","value":571.5800984700521},{"comp":"voc","value":437.45824178059894},{"comp":"dust","value":13.217011451721191}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T11:30:00.000Z","score":88.84444427490234,"sensors":[{"comp":"temp","value":22.959444681803387},{"comp":"humid","value":49.37711079915365},{"comp":"co2","value":546.2555541992188},{"comp":"voc","value":435.1333312988281},{"comp":"dust","value":13.348888715108236}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T11:15:00.000Z","score":88.94444529215495,"sensors":[{"comp":"temp","value":23.04977798461914},{"comp":"humid","value":49.3131103515625},{"comp":"co2","value":581.6888834635416},{"comp":"voc","value":440.75555419921875},{"comp":"dust","value":13.274444580078125}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T11:00:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":23.004233678181965},{"comp":"humid","value":49.437540690104164},{"comp":"co2","value":555.2118937174479},{"comp":"voc","value":440.04942830403644},{"comp":"dust","value":13.130000114440918}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T10:45:00.000Z","score":88.95402272542317,"sensors":[{"comp":"temp","value":23.085877736409504},{"comp":"humid","value":49.39930979410807},{"comp":"co2","value":596.0656127929688},{"comp":"voc","value":447.46875},{"comp":"dust","value":13.264906883239746}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T10:30:00.000Z","score":88.86666615804036,"sensors":[{"comp":"temp","value":23.0667781829834},{"comp":"humid","value":49.50511042277018},{"comp":"co2","value":587.6444498697916},{"comp":"voc","value":447.6555480957031},{"comp":"dust","value":13.35777759552002}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T10:15:00.000Z","score":88.96666717529297,"sensors":[{"comp":"temp","value":23.165000279744465},{"comp":"humid","value":49.412000020345054},{"comp":"co2","value":620.5889078776041},{"comp":"voc","value":454.7000020345052},{"comp":"dust","value":13.182222366333008}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T10:00:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":23.201555252075195},{"comp":"humid","value":49.33877817789713},{"comp":"co2","value":603.0444539388021},{"comp":"voc","value":455.08888753255206},{"comp":"dust","value":13.264444669087728}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T09:45:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":23.317333221435547},{"comp":"humid","value":49.159889221191406},{"comp":"co2","value":617.6777954101562},{"comp":"voc","value":460.6555582682292},{"comp":"dust","value":13.183333079020182}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T09:30:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":23.30733299255371},{"comp":"humid","value":49.17855707804362},{"comp":"co2","value":576.7666829427084},{"comp":"voc","value":460.022216796875},{"comp":"dust","value":13.24666659037272}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T09:15:00.000Z","score":90.17777760823567,"sensors":[{"comp":"temp","value":24.016555150349934},{"comp":"humid","value":47.26599884033203},{"comp":"co2","value":620.4666748046875},{"comp":"voc","value":469.0},{"comp":"dust","value":13.177777926127115}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T09:00:00.000Z","score":89.16666666666667,"sensors":[{"comp":"temp","value":25.544666926066082},{"comp":"humid","value":43.13433329264323},{"comp":"co2","value":581.9666951497396},{"comp":"voc","value":453.8333435058594},{"comp":"dust","value":13.316666920979818}],"indices":[{"comp":"temp","value":0.15555555621782938},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.9222222169240316},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T08:45:00.000Z","score":89.04222361246745,"sensors":[{"comp":"temp","value":23.616400400797527},{"comp":"humid","value":48.708733876546226},{"comp":"co2","value":631.8355712890625},{"comp":"voc","value":459.9044494628906},{"comp":"dust","value":13.330000241597494}],"indices":[{"comp":"temp","value":0.05333333214124044},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.9466666579246521},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T08:30:00.000Z","score":88.93333435058594,"sensors":[{"comp":"temp","value":23.474999745686848},{"comp":"humid","value":49.16188939412435},{"comp":"co2","value":637.2555541992188},{"comp":"voc","value":478.1444498697917},{"comp":"dust","value":13.509999910990397}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T08:15:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":23.6026668548584},{"comp":"humid","value":48.99744415283203},{"comp":"co2","value":659.6111246744791},{"comp":"voc","value":486.90000406901044},{"comp":"dust","value":13.393333117167154}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T08:00:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":23.657889048258465},{"comp":"humid","value":48.94488779703776},{"comp":"co2","value":645.4555460611979},{"comp":"voc","value":488.94444783528644},{"comp":"dust","value":13.534444808959961}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T07:45:00.000Z","score":88.98888905843098,"sensors":[{"comp":"temp","value":23.780444463094074},{"comp":"humid","value":48.76177851359049},{"comp":"co2","value":672.0666707356771},{"comp":"voc","value":495.96666463216144},{"comp":"dust","value":13.59666665395101}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T07:30:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":23.863091786702473},{"comp":"humid","value":48.766900380452476},{"comp":"co2","value":657.9425252278646},{"comp":"voc","value":500.1620788574219},{"comp":"dust","value":13.540574709574381}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T07:15:00.000Z","score":88.92222340901692,"sensors":[{"comp":"temp","value":23.891666412353516},{"comp":"humid","value":48.779221852620445},{"comp":"co2","value":687.6222127278646},{"comp":"voc","value":507.28887939453125},{"comp":"dust","value":13.673333485921225}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T07:00:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":23.967110951741535},{"comp":"humid","value":48.81500116984049},{"comp":"co2","value":687.1555582682291},{"comp":"voc","value":512.9777628580729},{"comp":"dust","value":13.622221946716309}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T06:45:00.000Z","score":88.63333384195964,"sensors":[{"comp":"temp","value":24.053111394246418},{"comp":"humid","value":48.69088872273763},{"comp":"co2","value":713.5777994791666},{"comp":"voc","value":520.7000122070312},{"comp":"dust","value":13.495555559794107}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T06:30:00.000Z","score":88.2888895670573,"sensors":[{"comp":"temp","value":24.162221908569336},{"comp":"humid","value":48.72111129760742},{"comp":"co2","value":711.5555623372396},{"comp":"voc","value":523.6888834635416},{"comp":"dust","value":13.80222225189209}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T06:15:00.000Z","score":88.04444376627605,"sensors":[{"comp":"temp","value":24.3048890431722},{"comp":"humid","value":48.55155563354492},{"comp":"co2","value":739.1666666666666},{"comp":"voc","value":531.9333292643229},{"comp":"dust","value":13.801111221313477}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T06:00:00.000Z","score":87.96666717529297,"sensors":[{"comp":"temp","value":24.408777236938477},{"comp":"humid","value":48.60699971516927},{"comp":"co2","value":727.1111246744791},{"comp":"voc","value":536.0222371419271},{"comp":"dust","value":13.872222582499186}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T05:45:00.000Z","score":87.82222493489583,"sensors":[{"comp":"temp","value":24.430889129638672},{"comp":"humid","value":48.65788777669271},{"comp":"co2","value":741.2555541992188},{"comp":"voc","value":541.8888753255209},{"comp":"dust","value":13.970000267028809}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T05:30:00.000Z","score":87.2888895670573,"sensors":[{"comp":"temp","value":24.507198969523113},{"comp":"humid","value":48.75835291544596},{"comp":"co2","value":746.1333414713541},{"comp":"voc","value":545.6375528971354},{"comp":"dust","value":14.051685651143393}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T05:15:00.000Z","score":87.0888900756836,"sensors":[{"comp":"temp","value":24.528222401936848},{"comp":"humid","value":48.830221811930336},{"comp":"co2","value":760.3000081380209},{"comp":"voc","value":548.7555541992188},{"comp":"dust","value":14.227777481079102}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T05:00:00.000Z","score":86.87777964274089,"sensors":[{"comp":"temp","value":24.650889078776043},{"comp":"humid","value":48.95600128173828},{"comp":"co2","value":788.5555419921875},{"comp":"voc","value":545.4666748046875},{"comp":"dust","value":14.316666603088379}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T04:45:00.000Z","score":86.3000005086263,"sensors":[{"comp":"temp","value":24.76377805074056},{"comp":"humid","value":48.9184455871582},{"comp":"co2","value":823.022216796875},{"comp":"voc","value":549.4444376627604},{"comp":"dust","value":14.568888982137045}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T04:30:00.000Z","score":86.16666666666667,"sensors":[{"comp":"temp","value":24.87144406636556},{"comp":"humid","value":48.87977854410807},{"comp":"co2","value":824.5777791341146},{"comp":"voc","value":555.9222208658854},{"comp":"dust","value":14.399999936421713}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T04:15:00.000Z","score":85.97777811686198,"sensors":[{"comp":"temp","value":24.968777974446613},{"comp":"humid","value":48.80877685546875},{"comp":"co2","value":843.7222290039062},{"comp":"voc","value":567.2999877929688},{"comp":"dust","value":14.036666552225748}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T04:00:00.000Z","score":85.95555623372395,"sensors":[{"comp":"temp","value":25.079888661702473},{"comp":"humid","value":48.697333017985024},{"comp":"co2","value":844.5999959309896},{"comp":"voc","value":577.477783203125},{"comp":"dust","value":14.174444516499838}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T03:45:00.000Z","score":85.8000005086263,"sensors":[{"comp":"temp","value":25.108666102091473},{"comp":"humid","value":48.729000091552734},{"comp":"co2","value":852.9000040690104},{"comp":"voc","value":584.477783203125},{"comp":"dust","value":14.023333231608072}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T03:30:00.000Z","score":85.05555470784505,"sensors":[{"comp":"temp","value":25.21506182352702},{"comp":"humid","value":48.76323699951172},{"comp":"co2","value":881.8896484375},{"comp":"voc","value":596.1360270182291},{"comp":"dust","value":14.310957590738932}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T03:15:00.000Z","score":84.9111099243164,"sensors":[{"comp":"temp","value":25.2054443359375},{"comp":"humid","value":48.78466669718424},{"comp":"co2","value":882.066650390625},{"comp":"voc","value":605.9888916015625},{"comp":"dust","value":14.108888626098633}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T03:00:00.000Z","score":84.15833473205566,"sensors":[{"comp":"temp","value":25.21988868713379},{"comp":"humid","value":49.18222173055013},{"comp":"co2","value":906.7555541992188},{"comp":"voc","value":623.2444254557291},{"comp":"dust","value":15.172222137451172}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T02:45:00.000Z","score":84.75555419921875,"sensors":[{"comp":"temp","value":25.240111033121746},{"comp":"humid","value":48.79055531819662},{"comp":"co2","value":866.9222412109375},{"comp":"voc","value":610.2111206054688},{"comp":"dust","value":14.872222264607748}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T02:30:00.000Z","score":85.0,"sensors":[{"comp":"temp","value":25.309666951497395},{"comp":"humid","value":48.46344502766927},{"comp":"co2","value":830.1333211263021},{"comp":"voc","value":610.3555501302084},{"comp":"dust","value":14.956666946411133}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T02:15:00.000Z","score":85.0888900756836,"sensors":[{"comp":"temp","value":25.362110773722332},{"comp":"humid","value":48.4606679280599},{"comp":"co2","value":811.3666788736979},{"comp":"voc","value":614.5333251953125},{"comp":"dust","value":15.017777760823568}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T02:00:00.000Z","score":84.62222290039062,"sensors":[{"comp":"temp","value":25.428555806477863},{"comp":"humid","value":48.75133260091146},{"comp":"co2","value":814.6222127278646},{"comp":"voc","value":618.5999959309896},{"comp":"dust","value":15.617777824401855}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T01:45:00.000Z","score":84.37777709960938,"sensors":[{"comp":"temp","value":25.434221903483074},{"comp":"humid","value":48.95177714029948},{"comp":"co2","value":801.8888956705729},{"comp":"voc","value":607.8444213867188},{"comp":"dust","value":16.451111157735188}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0333333412806194}]},{"timestamp":"2020-04-08T01:30:00.000Z","score":83.32222239176433,"sensors":[{"comp":"temp","value":25.495057423909504},{"comp":"humid","value":49.4526735941569},{"comp":"co2","value":803.5862019856771},{"comp":"voc","value":619.2222086588541},{"comp":"dust","value":17.939923604329426}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.011111111690600714},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T01:15:00.000Z","score":83.74444325764973,"sensors":[{"comp":"temp","value":25.519110997517902},{"comp":"humid","value":49.67433293660482},{"comp":"co2","value":758.2666625976562},{"comp":"voc","value":623.1333211263021},{"comp":"dust","value":16.972222646077473}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0222222407658894}]},{"timestamp":"2020-04-08T01:00:00.000Z","score":81.8111089070638,"sensors":[{"comp":"temp","value":25.594221750895183},{"comp":"humid","value":50.15600077311198},{"comp":"co2","value":749.2888997395834},{"comp":"voc","value":636.0777791341146},{"comp":"dust","value":21.371110916137695}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.6777777870496114},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.3777778148651123}]},{"timestamp":"2020-04-08T00:45:00.000Z","score":86.36666870117188,"sensors":[{"comp":"temp","value":25.57288932800293},{"comp":"humid","value":48.40011088053385},{"comp":"co2","value":611.9222005208334},{"comp":"voc","value":495.7222188313802},{"comp":"dust","value":17.491110801696777}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.200000007947286}]},{"timestamp":"2020-04-08T00:30:00.000Z","score":88.31111145019531,"sensors":[{"comp":"temp","value":25.65311113993327},{"comp":"humid","value":48.19077682495117},{"comp":"co2","value":522.522216796875},{"comp":"voc","value":430.5888977050781},{"comp":"dust","value":14.468888918558756}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0555555423100789}]},{"timestamp":"2020-04-08T00:15:00.000Z","score":88.94444529215495,"sensors":[{"comp":"temp","value":25.708444595336914},{"comp":"humid","value":48.08644485473633},{"comp":"co2","value":458.8777669270833},{"comp":"voc","value":422.2222188313802},{"comp":"dust","value":13.121110916137695}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-08T00:00:00.000Z","score":88.15555572509766,"sensors":[{"comp":"temp","value":25.88855489095052},{"comp":"humid","value":47.93422190348307},{"comp":"co2","value":441.57776896158856},{"comp":"voc","value":423.93333943684894},{"comp":"dust","value":13.95111083984375}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T23:45:00.000Z","score":88.06666564941406,"sensors":[{"comp":"temp","value":25.973666508992512},{"comp":"humid","value":48.20511118570963},{"comp":"co2","value":413.6111145019531},{"comp":"voc","value":410.7222188313802},{"comp":"dust","value":14.09333324432373}],"indices":[{"comp":"temp","value":0.3333333246409893},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T23:30:00.000Z","score":87.87317911783855,"sensors":[{"comp":"temp","value":26.26325225830078},{"comp":"humid","value":48.041805267333984},{"comp":"co2","value":422.21303304036456},{"comp":"voc","value":346.15057373046875},{"comp":"dust","value":14.705057462056478}],"indices":[{"comp":"temp","value":1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.48888889451821643},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T23:15:00.000Z","score":88.24444325764973,"sensors":[{"comp":"temp","value":26.268332799275715},{"comp":"humid","value":47.625222524007164},{"comp":"co2","value":450.6222229003906},{"comp":"voc","value":351.7666727701823},{"comp":"dust","value":13.858888943990072}],"indices":[{"comp":"temp","value":1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.9111111164093018},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T23:00:00.000Z","score":87.88889058430989,"sensors":[{"comp":"temp","value":26.34155527750651},{"comp":"humid","value":47.998111724853516},{"comp":"co2","value":440.6000061035156},{"comp":"voc","value":343.61110432942706},{"comp":"dust","value":14.347500085830688}],"indices":[{"comp":"temp","value":1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.31111111243565875},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T22:45:00.000Z","score":88.72222391764323,"sensors":[{"comp":"temp","value":25.99755605061849},{"comp":"humid","value":48.823221842447914},{"comp":"co2","value":446.58887736002606},{"comp":"voc","value":347.3111165364583},{"comp":"dust","value":13.533333460489908}],"indices":[{"comp":"temp","value":0.444444448997577},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.9111111164093018},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T22:30:00.000Z","score":88.62222290039062,"sensors":[{"comp":"temp","value":25.928889592488606},{"comp":"humid","value":48.480889638264976},{"comp":"co2","value":457.6333312988281},{"comp":"voc","value":351.3555501302083},{"comp":"dust","value":14.475555419921875}],"indices":[{"comp":"temp","value":0.42222222685813904},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T22:15:00.000Z","score":88.68888854980469,"sensors":[{"comp":"temp","value":25.62677764892578},{"comp":"humid","value":49.08488972981771},{"comp":"co2","value":448.91111246744794},{"comp":"voc","value":346.3999938964844},{"comp":"dust","value":14.653333028157553}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.7777777711550394},{"comp":"dust","value":1.0333333611488342}]},{"timestamp":"2020-04-07T22:00:00.000Z","score":88.7111104329427,"sensors":[{"comp":"temp","value":25.627110799153645},{"comp":"humid","value":48.72666676839193},{"comp":"co2","value":476.42222086588544},{"comp":"voc","value":345.91111246744794},{"comp":"dust","value":15.054444630940756}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.6777777696649233},{"comp":"dust","value":1.0333333412806194}]},{"timestamp":"2020-04-07T21:45:00.000Z","score":88.74444325764973,"sensors":[{"comp":"temp","value":25.40744463602702},{"comp":"humid","value":48.78433354695638},{"comp":"co2","value":503.6888732910156},{"comp":"voc","value":357.522216796875},{"comp":"dust","value":14.921111106872559}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T21:30:00.000Z","score":88.80881245930989,"sensors":[{"comp":"temp","value":25.45209566752116},{"comp":"humid","value":48.77677790323893},{"comp":"co2","value":524.3912048339844},{"comp":"voc","value":353.17893473307294},{"comp":"dust","value":14.949310302734375}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T21:15:00.000Z","score":88.93333435058594,"sensors":[{"comp":"temp","value":25.165666580200195},{"comp":"humid","value":49.02299880981445},{"comp":"co2","value":588.8888956705729},{"comp":"voc","value":370.2222188313802},{"comp":"dust","value":14.783333460489908}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T21:00:00.000Z","score":88.8000005086263,"sensors":[{"comp":"temp","value":25.039666493733723},{"comp":"humid","value":48.65399932861328},{"comp":"co2","value":629.7000122070312},{"comp":"voc","value":379.6333312988281},{"comp":"dust","value":14.957777659098307}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T20:45:00.000Z","score":88.93333435058594,"sensors":[{"comp":"temp","value":24.663888931274414},{"comp":"humid","value":49.224554697672524},{"comp":"co2","value":676.1222127278646},{"comp":"voc","value":394.2666727701823},{"comp":"dust","value":14.333333333333334}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T20:30:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":24.57022221883138},{"comp":"humid","value":48.98888905843099},{"comp":"co2","value":681.1777750651041},{"comp":"voc","value":399.8333333333333},{"comp":"dust","value":14.23111089070638}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.022222223381201427},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T20:15:00.000Z","score":88.96666717529297,"sensors":[{"comp":"temp","value":24.234111150105793},{"comp":"humid","value":49.36544418334961},{"comp":"co2","value":727.5},{"comp":"voc","value":418.6000061035156},{"comp":"dust","value":14.04444408416748}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T20:00:00.000Z","score":88.5,"sensors":[{"comp":"temp","value":24.117333730061848},{"comp":"humid","value":48.62144470214844},{"comp":"co2","value":806.5555623372396},{"comp":"voc","value":442.88889567057294},{"comp":"dust","value":14.18999989827474}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T19:45:00.000Z","score":87.81111145019531,"sensors":[{"comp":"temp","value":23.750555674235027},{"comp":"humid","value":47.60211054484049},{"comp":"co2","value":918.1333414713541},{"comp":"voc","value":477.1777750651042},{"comp":"dust","value":14.347777366638184}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0555555423100789}]},{"timestamp":"2020-04-07T19:30:00.000Z","score":88.73563130696614,"sensors":[{"comp":"temp","value":23.72843297322591},{"comp":"humid","value":46.81335194905599},{"comp":"co2","value":900.5697224934896},{"comp":"voc","value":481.34405517578125},{"comp":"dust","value":13.293333371480307}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T19:15:00.000Z","score":87.94444529215495,"sensors":[{"comp":"temp","value":23.603000005086262},{"comp":"humid","value":47.36666742960612},{"comp":"co2","value":925.9888916015625},{"comp":"voc","value":489.8444519042969},{"comp":"dust","value":13.331111272176107}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T19:00:00.000Z","score":87.8160909016927,"sensors":[{"comp":"temp","value":23.51780382792155},{"comp":"humid","value":47.45318349202474},{"comp":"co2","value":921.6220703125},{"comp":"voc","value":491.9130147298177},{"comp":"dust","value":13.191603024800619}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T18:45:00.000Z","score":87.06666564941406,"sensors":[{"comp":"temp","value":23.349999745686848},{"comp":"humid","value":48.233777364095054},{"comp":"co2","value":946.7444458007812},{"comp":"voc","value":499.23333740234375},{"comp":"dust","value":13.018888791402182}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T18:30:00.000Z","score":87.47777811686198,"sensors":[{"comp":"temp","value":23.383333206176758},{"comp":"humid","value":47.871222178141274},{"comp":"co2","value":908.3666585286459},{"comp":"voc","value":498.43332926432294},{"comp":"dust","value":13.30555534362793}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T18:15:00.000Z","score":86.89655049641927,"sensors":[{"comp":"temp","value":23.210870107014973},{"comp":"humid","value":48.78157043457031},{"comp":"co2","value":926.0344848632812},{"comp":"voc","value":504.8490397135417},{"comp":"dust","value":13.024597803751627}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T18:00:00.000Z","score":87.22222137451172,"sensors":[{"comp":"temp","value":23.245332717895508},{"comp":"humid","value":48.12255605061849},{"comp":"co2","value":881.8111165364584},{"comp":"voc","value":506.8777669270833},{"comp":"dust","value":13.266666730244955}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T17:45:00.000Z","score":86.52222188313802,"sensors":[{"comp":"temp","value":23.05400021870931},{"comp":"humid","value":48.89588928222656},{"comp":"co2","value":896.8888753255209},{"comp":"voc","value":512.6000061035156},{"comp":"dust","value":13.064444541931152}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T17:30:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":23.077498118082683},{"comp":"humid","value":48.446512858072914},{"comp":"co2","value":855.8268432617188},{"comp":"voc","value":517.9122721354166},{"comp":"dust","value":13.323831558227539}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T17:15:00.000Z","score":86.61111195882161,"sensors":[{"comp":"temp","value":22.92455546061198},{"comp":"humid","value":48.97888946533203},{"comp":"co2","value":823.2888997395834},{"comp":"voc","value":527.9666544596354},{"comp":"dust","value":13.342222531636557}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T17:00:00.000Z","score":87.17777760823567,"sensors":[{"comp":"temp","value":22.97011121114095},{"comp":"humid","value":48.44066619873047},{"comp":"co2","value":750.6555582682291},{"comp":"voc","value":533.4000040690104},{"comp":"dust","value":13.306666692097982}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T16:45:00.000Z","score":86.66666666666667,"sensors":[{"comp":"temp","value":22.814556121826172},{"comp":"humid","value":48.98022206624349},{"comp":"co2","value":744.2999877929688},{"comp":"voc","value":556.522216796875},{"comp":"dust","value":13.306666692097982}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T16:30:00.000Z","score":87.57777913411458,"sensors":[{"comp":"temp","value":22.887888590494793},{"comp":"humid","value":48.48622258504232},{"comp":"co2","value":717.1777750651041},{"comp":"voc","value":507.85557047526044},{"comp":"dust","value":13.390000025431315}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T16:15:00.000Z","score":86.96666717529297,"sensors":[{"comp":"temp","value":22.766443888346355},{"comp":"humid","value":49.32366689046224},{"comp":"co2","value":731.6999918619791},{"comp":"voc","value":491.6999918619792},{"comp":"dust","value":13.80555534362793}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T16:00:00.000Z","score":86.76666768391927,"sensors":[{"comp":"temp","value":22.830222447713215},{"comp":"humid","value":49.43100102742513},{"comp":"co2","value":746.6444498697916},{"comp":"voc","value":496.77777099609375},{"comp":"dust","value":14.1011110941569}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.033333333830038704},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T15:45:00.000Z","score":85.02222188313802,"sensors":[{"comp":"temp","value":22.666777928670246},{"comp":"humid","value":50.93777720133463},{"comp":"co2","value":805.5222371419271},{"comp":"voc","value":505.7000020345052},{"comp":"dust","value":14.911110877990723}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":1.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0555555423100789}]},{"timestamp":"2020-04-07T15:30:00.000Z","score":85.10574849446614,"sensors":[{"comp":"temp","value":22.609651565551758},{"comp":"humid","value":50.73439407348633},{"comp":"co2","value":786.7199300130209},{"comp":"voc","value":511.3275960286458},{"comp":"dust","value":15.11896546681722}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":1.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0222222407658894}]},{"timestamp":"2020-04-07T15:15:00.000Z","score":84.73333485921223,"sensors":[{"comp":"temp","value":22.39144452412923},{"comp":"humid","value":50.72200012207031},{"comp":"co2","value":784.2111002604166},{"comp":"voc","value":523.2999877929688},{"comp":"dust","value":14.765555699666342}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.8666666746139526},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T15:00:00.000Z","score":86.64444478352864,"sensors":[{"comp":"temp","value":22.2994441986084},{"comp":"humid","value":48.943223317464195},{"comp":"co2","value":730.5777791341146},{"comp":"voc","value":500.8555603027344},{"comp":"dust","value":13.410000165303549}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T14:45:00.000Z","score":87.37777709960938,"sensors":[{"comp":"temp","value":22.14355532328288},{"comp":"humid","value":48.6522216796875},{"comp":"co2","value":700.5222371419271},{"comp":"voc","value":447.37778727213544},{"comp":"dust","value":13.49666659037272}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T14:30:00.000Z","score":88.22222137451172,"sensors":[{"comp":"temp","value":22.06000010172526},{"comp":"humid","value":47.74866739908854},{"comp":"co2","value":686.2333577473959},{"comp":"voc","value":420.6444396972656},{"comp":"dust","value":12.868888854980469}],"indices":[{"comp":"temp","value":-0.22222222884496054},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T14:15:00.000Z","score":87.95555623372395,"sensors":[{"comp":"temp","value":21.90944480895996},{"comp":"humid","value":47.91411209106445},{"comp":"co2","value":707.54443359375},{"comp":"voc","value":418.08887736002606},{"comp":"dust","value":12.921111106872559}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T14:00:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":22.004444758097332},{"comp":"humid","value":47.554443359375},{"comp":"co2","value":682.7888997395834},{"comp":"voc","value":414.3555603027344},{"comp":"dust","value":13.057777722676596}],"indices":[{"comp":"temp","value":-0.42222222685813904},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T13:45:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.896467208862305},{"comp":"humid","value":47.666314442952476},{"comp":"co2","value":673.1835123697916},{"comp":"voc","value":414.4099527994792},{"comp":"dust","value":12.878007888793945}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T13:30:00.000Z","score":88.66666666666667,"sensors":[{"comp":"temp","value":22.025222142537434},{"comp":"humid","value":47.426666259765625},{"comp":"co2","value":665.4333292643229},{"comp":"voc","value":411.2000020345052},{"comp":"dust","value":12.675555547078451}],"indices":[{"comp":"temp","value":-0.36666666840513545},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T13:15:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.888911565144856},{"comp":"humid","value":47.78881708780924},{"comp":"co2","value":672.7080485026041},{"comp":"voc","value":413.5049743652344},{"comp":"dust","value":12.87176259358724}],"indices":[{"comp":"temp","value":-0.977011501789093},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T13:00:00.000Z","score":88.27777862548828,"sensors":[{"comp":"temp","value":21.950111389160156},{"comp":"humid","value":47.627888997395836},{"comp":"co2","value":663.4555460611979},{"comp":"voc","value":409.40000406901044},{"comp":"dust","value":12.78333314259847}],"indices":[{"comp":"temp","value":-0.6777777870496114},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T12:45:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.815889358520508},{"comp":"humid","value":47.86333338419596},{"comp":"co2","value":643.1777750651041},{"comp":"voc","value":403.6888834635417},{"comp":"dust","value":12.770000139872232}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T12:30:00.000Z","score":88.88888804117839,"sensors":[{"comp":"temp","value":22.038777669270832},{"comp":"humid","value":47.31877772013346},{"comp":"co2","value":662.8888753255209},{"comp":"voc","value":402.93333943684894},{"comp":"dust","value":12.611111323038736}],"indices":[{"comp":"temp","value":-0.36666666716337204},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T12:15:00.000Z","score":88.62222290039062,"sensors":[{"comp":"temp","value":21.94955571492513},{"comp":"humid","value":47.44333267211914},{"comp":"co2","value":653.8111165364584},{"comp":"voc","value":401.6777750651042},{"comp":"dust","value":12.926666577657064}],"indices":[{"comp":"temp","value":-0.8000000019868215},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T12:00:00.000Z","score":88.14444478352864,"sensors":[{"comp":"temp","value":21.915333429972332},{"comp":"humid","value":47.67088826497396},{"comp":"co2","value":664.54443359375},{"comp":"voc","value":403.3444519042969},{"comp":"dust","value":12.945555686950684}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T11:45:00.000Z","score":87.17777760823567,"sensors":[{"comp":"temp","value":21.532222112019856},{"comp":"humid","value":48.1673329671224},{"comp":"co2","value":662.4888916015625},{"comp":"voc","value":401.48888142903644},{"comp":"dust","value":13.248888969421387}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T11:30:00.000Z","score":86.82222239176433,"sensors":[{"comp":"temp","value":21.35455576578776},{"comp":"humid","value":48.49599965413412},{"comp":"co2","value":665.8333129882812},{"comp":"voc","value":401.7999979654948},{"comp":"dust","value":13.226666768391928}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T11:15:00.000Z","score":86.25593821207683,"sensors":[{"comp":"temp","value":21.098299026489258},{"comp":"humid","value":48.51597340901693},{"comp":"co2","value":675.0674235026041},{"comp":"voc","value":400.1360168457031},{"comp":"dust","value":13.191187858581543}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T11:00:00.000Z","score":86.0,"sensors":[{"comp":"temp","value":20.78088887532552},{"comp":"humid","value":48.72366587320963},{"comp":"co2","value":665.1555379231771},{"comp":"voc","value":394.58888753255206},{"comp":"dust","value":13.073333422342936}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T10:45:00.000Z","score":86.0,"sensors":[{"comp":"temp","value":20.640888214111328},{"comp":"humid","value":48.41566594441732},{"comp":"co2","value":656.6777954101562},{"comp":"voc","value":390.3333333333333},{"comp":"dust","value":13.130000114440918}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T10:30:00.000Z","score":86.03333282470703,"sensors":[{"comp":"temp","value":20.75800069173177},{"comp":"humid","value":48.225223541259766},{"comp":"co2","value":656.6777750651041},{"comp":"voc","value":388.6777648925781},{"comp":"dust","value":13.084444363911947}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T10:15:00.000Z","score":86.0,"sensors":[{"comp":"temp","value":20.7276668548584},{"comp":"humid","value":48.362998962402344},{"comp":"co2","value":658.8999837239584},{"comp":"voc","value":389.2888895670573},{"comp":"dust","value":13.162221908569336}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T10:00:00.000Z","score":86.25555419921875,"sensors":[{"comp":"temp","value":20.83066685994466},{"comp":"humid","value":48.1488889058431},{"comp":"co2","value":660.6999918619791},{"comp":"voc","value":390.2888895670573},{"comp":"dust","value":12.986666997273764}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T09:45:00.000Z","score":86.0,"sensors":[{"comp":"temp","value":20.719552357991535},{"comp":"humid","value":48.410597483317055},{"comp":"co2","value":667.1467488606771},{"comp":"voc","value":392.9961751302083},{"comp":"dust","value":13.154253005981445}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T09:30:00.000Z","score":86.0,"sensors":[{"comp":"temp","value":20.750445048014324},{"comp":"humid","value":48.31544494628906},{"comp":"co2","value":666.1444498697916},{"comp":"voc","value":393.2777811686198},{"comp":"dust","value":13.10777759552002}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T09:15:00.000Z","score":87.90651194254558,"sensors":[{"comp":"temp","value":21.41315269470215},{"comp":"humid","value":46.44745127360026},{"comp":"co2","value":660.1946411132812},{"comp":"voc","value":396.2501932779948},{"comp":"dust","value":13.40222199757894}],"indices":[{"comp":"temp","value":-0.9111111164093018},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T09:00:00.000Z","score":89.68888854980469,"sensors":[{"comp":"temp","value":22.93511136372884},{"comp":"humid","value":42.367444356282554},{"comp":"co2","value":657.4333292643229},{"comp":"voc","value":391.42222086588544},{"comp":"dust","value":13.196666717529297}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.9333333373069763},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T08:45:00.000Z","score":86.44871775309245,"sensors":[{"comp":"temp","value":20.958154042561848},{"comp":"humid","value":47.964317321777344},{"comp":"co2","value":642.1264851888021},{"comp":"voc","value":383.1794840494792},{"comp":"dust","value":13.370598157246908}],"indices":[{"comp":"temp","value":-0.935897429784139},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.935897429784139},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T08:30:00.000Z","score":86.06666564941406,"sensors":[{"comp":"temp","value":20.844555536905926},{"comp":"humid","value":48.31755574544271},{"comp":"co2","value":664.0333455403646},{"comp":"voc","value":399.7000020345052},{"comp":"dust","value":13.129999796549479}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T08:15:00.000Z","score":86.0,"sensors":[{"comp":"temp","value":20.875110626220703},{"comp":"humid","value":48.44311014811198},{"comp":"co2","value":650.2555541992188},{"comp":"voc","value":398.74444580078125},{"comp":"dust","value":13.278889020284018}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T08:00:00.000Z","score":86.27777862548828,"sensors":[{"comp":"temp","value":20.97966702779134},{"comp":"humid","value":48.22799936930338},{"comp":"co2","value":654.9444580078125},{"comp":"voc","value":401.3555603027344},{"comp":"dust","value":13.297777811686197}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T07:45:00.000Z","score":86.23333231608073,"sensors":[{"comp":"temp","value":21.008578618367512},{"comp":"humid","value":48.37407557169596},{"comp":"co2","value":648.6317952473959},{"comp":"voc","value":403.50767008463544},{"comp":"dust","value":13.293716748555502}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T07:30:00.000Z","score":86.18888854980469,"sensors":[{"comp":"temp","value":21.03244463602702},{"comp":"humid","value":48.36388905843099},{"comp":"co2","value":654.1111043294271},{"comp":"voc","value":403.97777303059894},{"comp":"dust","value":13.39222240447998}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T07:15:00.000Z","score":86.18888854980469,"sensors":[{"comp":"temp","value":21.03700002034505},{"comp":"humid","value":48.60322189331055},{"comp":"co2","value":636.4111124674479},{"comp":"voc","value":400.1111145019531},{"comp":"dust","value":13.622221946716309}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T07:00:00.000Z","score":86.39999898274739,"sensors":[{"comp":"temp","value":21.098000208536785},{"comp":"humid","value":48.5857785542806},{"comp":"co2","value":641.7000122070312},{"comp":"voc","value":403.43333943684894},{"comp":"dust","value":13.41444460550944}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T06:45:00.000Z","score":86.56666819254558,"sensors":[{"comp":"temp","value":21.19522221883138},{"comp":"humid","value":48.81922149658203},{"comp":"co2","value":635.3000081380209},{"comp":"voc","value":407.42223103841144},{"comp":"dust","value":13.33222230275472}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T06:30:00.000Z","score":86.48888905843098,"sensors":[{"comp":"temp","value":21.29266611735026},{"comp":"humid","value":48.765665690104164},{"comp":"co2","value":649.2333170572916},{"comp":"voc","value":413.7999979654948},{"comp":"dust","value":13.559999783833822}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T06:15:00.000Z","score":86.05555725097656,"sensors":[{"comp":"temp","value":21.337444305419922},{"comp":"humid","value":49.082777659098305},{"comp":"co2","value":655.9555460611979},{"comp":"voc","value":420.03333536783856},{"comp":"dust","value":13.814444224039713}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T06:00:00.000Z","score":86.33333333333333,"sensors":[{"comp":"temp","value":21.31311098734538},{"comp":"humid","value":48.45300038655599},{"comp":"co2","value":665.1333211263021},{"comp":"voc","value":422.91111246744794},{"comp":"dust","value":13.763333320617676}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T05:45:00.000Z","score":87.15555572509766,"sensors":[{"comp":"temp","value":21.410666783650715},{"comp":"humid","value":47.3815549214681},{"comp":"co2","value":663.7000122070312},{"comp":"voc","value":420.58888753255206},{"comp":"dust","value":13.94777806599935}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T05:30:00.000Z","score":87.86206817626953,"sensors":[{"comp":"temp","value":21.495827356974285},{"comp":"humid","value":46.20967483520508},{"comp":"co2","value":667.1731770833334},{"comp":"voc","value":418.73602294921875},{"comp":"dust","value":13.708658854166666}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T05:15:00.000Z","score":87.94444529215495,"sensors":[{"comp":"temp","value":21.642222086588543},{"comp":"humid","value":46.04755528767904},{"comp":"co2","value":696.2999877929688},{"comp":"voc","value":418.1888936360677},{"comp":"dust","value":13.767778078715006}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T05:00:00.000Z","score":87.96666717529297,"sensors":[{"comp":"temp","value":21.73455556233724},{"comp":"humid","value":45.9587771097819},{"comp":"co2","value":745.0555419921875},{"comp":"voc","value":423.8777770996094},{"comp":"dust","value":12.88777764638265}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T04:45:00.000Z","score":87.7000020345052,"sensors":[{"comp":"temp","value":21.842665990193684},{"comp":"humid","value":46.09399922688802},{"comp":"co2","value":796.0555623372396},{"comp":"voc","value":423.8222147623698},{"comp":"dust","value":13.90999984741211}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T04:30:00.000Z","score":88.04444630940755,"sensors":[{"comp":"temp","value":21.817333221435547},{"comp":"humid","value":46.02688852945963},{"comp":"co2","value":780.7666625976562},{"comp":"voc","value":408.8444417317708},{"comp":"dust","value":13.193333307902018}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T04:15:00.000Z","score":87.98888905843098,"sensors":[{"comp":"temp","value":21.78522237141927},{"comp":"humid","value":46.07277806599935},{"comp":"co2","value":768.5444539388021},{"comp":"voc","value":401.2999979654948},{"comp":"dust","value":13.076666831970215}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T04:00:00.000Z","score":88.25555419921875,"sensors":[{"comp":"temp","value":21.770999908447266},{"comp":"humid","value":46.07277806599935},{"comp":"co2","value":762.6444295247396},{"comp":"voc","value":390.55555216471356},{"comp":"dust","value":12.793333371480307}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T03:45:00.000Z","score":88.10000101725261,"sensors":[{"comp":"temp","value":21.862555821736652},{"comp":"humid","value":46.14588928222656},{"comp":"co2","value":789.1444498697916},{"comp":"voc","value":393.58888753255206},{"comp":"dust","value":13.031111081441244}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T03:30:00.000Z","score":88.62145487467448,"sensors":[{"comp":"temp","value":21.897916158040363},{"comp":"humid","value":45.97350947062174},{"comp":"co2","value":774.0226033528646},{"comp":"voc","value":390.42222086588544},{"comp":"dust","value":13.005133946736654}],"indices":[{"comp":"temp","value":-0.8275862038135529},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T03:15:00.000Z","score":88.37777964274089,"sensors":[{"comp":"temp","value":22.041667302449543},{"comp":"humid","value":45.95677693684896},{"comp":"co2","value":807.8666585286459},{"comp":"voc","value":397.2222188313802},{"comp":"dust","value":13.304444313049316}],"indices":[{"comp":"temp","value":-0.35555555671453476},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T03:00:00.000Z","score":88.32222239176433,"sensors":[{"comp":"temp","value":22.06588872273763},{"comp":"humid","value":45.98055648803711},{"comp":"co2","value":802.5999959309896},{"comp":"voc","value":399.04444376627606},{"comp":"dust","value":13.254444440205893}],"indices":[{"comp":"temp","value":-0.23333332935969034},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T02:45:00.000Z","score":88.03333282470703,"sensors":[{"comp":"temp","value":22.151333491007488},{"comp":"humid","value":46.125222524007164},{"comp":"co2","value":822.9666748046875},{"comp":"voc","value":404.6222229003906},{"comp":"dust","value":13.383333206176758}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T02:30:00.000Z","score":88.14444224039714,"sensors":[{"comp":"temp","value":22.139222462972004},{"comp":"humid","value":46.18388748168945},{"comp":"co2","value":806.0},{"comp":"voc","value":406.6888936360677},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T02:15:00.000Z","score":88.10000101725261,"sensors":[{"comp":"temp","value":22.13166681925456},{"comp":"humid","value":46.4022216796875},{"comp":"co2","value":787.6666463216146},{"comp":"voc","value":408.96666463216144},{"comp":"dust","value":13.575555483500162}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T02:00:00.000Z","score":88.07777659098308,"sensors":[{"comp":"temp","value":22.175222396850586},{"comp":"humid","value":46.20600128173828},{"comp":"co2","value":781.5999959309896},{"comp":"voc","value":415.73333740234375},{"comp":"dust","value":13.785555521647135}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T01:45:00.000Z","score":87.83333333333333,"sensors":[{"comp":"temp","value":22.1814448038737},{"comp":"humid","value":46.42388916015625},{"comp":"co2","value":801.4111328125},{"comp":"voc","value":424.1111145019531},{"comp":"dust","value":14.00777784983317}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T01:30:00.000Z","score":88.04444376627605,"sensors":[{"comp":"temp","value":22.200666427612305},{"comp":"humid","value":46.32966613769531},{"comp":"co2","value":798.2888997395834},{"comp":"voc","value":413.8444417317708},{"comp":"dust","value":13.928888956705729}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T01:15:00.000Z","score":88.06168619791667,"sensors":[{"comp":"temp","value":22.254969278971355},{"comp":"humid","value":46.186153411865234},{"comp":"co2","value":781.2451985677084},{"comp":"voc","value":397.09617106119794},{"comp":"dust","value":14.777624130249023}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.045976996421814}]},{"timestamp":"2020-04-07T01:00:00.000Z","score":88.36666615804036,"sensors":[{"comp":"temp","value":22.1336669921875},{"comp":"humid","value":46.202222188313804},{"comp":"co2","value":750.6555379231771},{"comp":"voc","value":392.42223103841144},{"comp":"dust","value":14.230000178019205}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T00:45:00.000Z","score":88.55555470784505,"sensors":[{"comp":"temp","value":22.31155522664388},{"comp":"humid","value":46.18411127726237},{"comp":"co2","value":766.0889078776041},{"comp":"voc","value":393.97777303059894},{"comp":"dust","value":14.342222213745117}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T00:30:00.000Z","score":88.56666564941406,"sensors":[{"comp":"temp","value":22.2381108601888},{"comp":"humid","value":45.95066706339518},{"comp":"co2","value":736.6222330729166},{"comp":"voc","value":394.8444417317708},{"comp":"dust","value":14.847777684529623}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T00:15:00.000Z","score":88.18888854980469,"sensors":[{"comp":"temp","value":22.346111297607422},{"comp":"humid","value":46.11388905843099},{"comp":"co2","value":761.3666788736979},{"comp":"voc","value":400.96666463216144},{"comp":"dust","value":15.078888893127441}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-07T00:00:00.000Z","score":88.34444427490234,"sensors":[{"comp":"temp","value":22.246999740600586},{"comp":"humid","value":45.75077819824219},{"comp":"co2","value":732.6999918619791},{"comp":"voc","value":403.2333272298177},{"comp":"dust","value":15.325555483500162}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T23:45:00.000Z","score":88.24444580078125,"sensors":[{"comp":"temp","value":22.20911153157552},{"comp":"humid","value":45.761000315348305},{"comp":"co2","value":725.3111165364584},{"comp":"voc","value":404.06667073567706},{"comp":"dust","value":15.441110928853353}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T23:30:00.000Z","score":88.55325571695964,"sensors":[{"comp":"temp","value":22.052632013956707},{"comp":"humid","value":44.75218709309896},{"comp":"co2","value":686.8141886393229},{"comp":"voc","value":402.6567077636719},{"comp":"dust","value":16.007624944051106}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T23:15:00.000Z","score":87.98888905843098,"sensors":[{"comp":"temp","value":22.0255552927653},{"comp":"humid","value":44.514888763427734},{"comp":"co2","value":655.5888875325521},{"comp":"voc","value":399.91111246744794},{"comp":"dust","value":17.762221972147625}],"indices":[{"comp":"temp","value":-0.21111110846201578},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.144444425900777}]},{"timestamp":"2020-04-06T23:00:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":22.048444747924805},{"comp":"humid","value":44.325888315836586},{"comp":"co2","value":665.6555582682291},{"comp":"voc","value":405.92222086588544},{"comp":"dust","value":14.508888880411783}],"indices":[{"comp":"temp","value":-0.2444444497426351},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T22:45:00.000Z","score":88.93333435058594,"sensors":[{"comp":"temp","value":22.212666829427082},{"comp":"humid","value":44.22311147054037},{"comp":"co2","value":698.3111165364584},{"comp":"voc","value":414.2222188313802},{"comp":"dust","value":14.371110916137695}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T22:30:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":22.208778381347656},{"comp":"humid","value":44.39088821411133},{"comp":"co2","value":727.2333374023438},{"comp":"voc","value":421.42222086588544},{"comp":"dust","value":12.831110954284668}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T22:15:00.000Z","score":88.91111246744792,"sensors":[{"comp":"temp","value":22.31422233581543},{"comp":"humid","value":44.414110819498696},{"comp":"co2","value":752.6555582682291},{"comp":"voc","value":429.3222249348958},{"comp":"dust","value":13.339999834696451}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T22:00:00.000Z","score":88.87777964274089,"sensors":[{"comp":"temp","value":22.286555608113606},{"comp":"humid","value":44.48822275797526},{"comp":"co2","value":727.4444376627604},{"comp":"voc","value":432.8222147623698},{"comp":"dust","value":13.407777786254883}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T21:45:00.000Z","score":87.92222340901692,"sensors":[{"comp":"temp","value":22.497777938842773},{"comp":"humid","value":44.345444997151695},{"comp":"co2","value":776.7222290039062},{"comp":"voc","value":450.4888916015625},{"comp":"dust","value":16.07111104329427}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.1777777671813965}]},{"timestamp":"2020-04-06T21:30:00.000Z","score":88.65555572509766,"sensors":[{"comp":"temp","value":22.45332972208659},{"comp":"humid","value":44.18480428059896},{"comp":"co2","value":775.2187703450521},{"comp":"voc","value":447.82989501953125},{"comp":"dust","value":13.655287424723307}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T21:15:00.000Z","score":88.7111104329427,"sensors":[{"comp":"temp","value":22.472666422526043},{"comp":"humid","value":43.908555348714195},{"comp":"co2","value":770.8333536783854},{"comp":"voc","value":453.1777750651042},{"comp":"dust","value":13.33222230275472}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T21:00:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":22.35099983215332},{"comp":"humid","value":44.026999155680336},{"comp":"co2","value":740.2666625976562},{"comp":"voc","value":444.06666056315106},{"comp":"dust","value":12.976666450500488}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T20:45:00.000Z","score":88.26666514078777,"sensors":[{"comp":"temp","value":22.51822280883789},{"comp":"humid","value":43.960000356038414},{"comp":"co2","value":776.5888875325521},{"comp":"voc","value":455.5},{"comp":"dust","value":14.676666577657064}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T20:30:00.000Z","score":88.1999994913737,"sensors":[{"comp":"temp","value":22.361222585042317},{"comp":"humid","value":43.936333974202476},{"comp":"co2","value":748.45556640625},{"comp":"voc","value":461.1888936360677},{"comp":"dust","value":14.071111361185709}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T20:15:00.000Z","score":88.32222239176433,"sensors":[{"comp":"temp","value":22.393333435058594},{"comp":"humid","value":43.85244369506836},{"comp":"co2","value":730.9000040690104},{"comp":"voc","value":434.6333312988281},{"comp":"dust","value":14.830000241597494}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.1111111243565877}]},{"timestamp":"2020-04-06T20:00:00.000Z","score":89.1888910929362,"sensors":[{"comp":"temp","value":22.444777806599934},{"comp":"humid","value":44.03333409627279},{"comp":"co2","value":731.8110961914062},{"comp":"voc","value":403.1222229003906},{"comp":"dust","value":12.885555267333984}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T19:45:00.000Z","score":89.52490234375,"sensors":[{"comp":"temp","value":22.666636149088543},{"comp":"humid","value":43.807501475016274},{"comp":"co2","value":741.6927083333334},{"comp":"voc","value":397.4743347167969},{"comp":"dust","value":13.232107162475586}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T19:30:00.000Z","score":89.95555623372395,"sensors":[{"comp":"temp","value":22.67122968037923},{"comp":"humid","value":43.908800760904946},{"comp":"co2","value":720.5750935872396},{"comp":"voc","value":397.91033935546875},{"comp":"dust","value":13.002298990885416}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T19:15:00.000Z","score":90.0,"sensors":[{"comp":"temp","value":22.867888768513996},{"comp":"humid","value":43.685221354166664},{"comp":"co2","value":732.2555541992188},{"comp":"voc","value":399.7555643717448},{"comp":"dust","value":12.883333206176758}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T19:00:00.000Z","score":89.82222239176433,"sensors":[{"comp":"temp","value":22.699222564697266},{"comp":"humid","value":44.22522226969401},{"comp":"co2","value":755.1555582682291},{"comp":"voc","value":410.5},{"comp":"dust","value":13.036666870117188}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T18:45:00.000Z","score":89.87777709960938,"sensors":[{"comp":"temp","value":22.740222295125324},{"comp":"humid","value":44.09166717529297},{"comp":"co2","value":736.5333455403646},{"comp":"voc","value":412.26666259765625},{"comp":"dust","value":13.121111234029135}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T18:30:00.000Z","score":89.98888905843098,"sensors":[{"comp":"temp","value":22.586889266967773},{"comp":"humid","value":44.521443684895836},{"comp":"co2","value":732.1444498697916},{"comp":"voc","value":419.24444580078125},{"comp":"dust","value":12.981111208597818}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T18:15:00.000Z","score":89.96666717529297,"sensors":[{"comp":"temp","value":22.657111485799152},{"comp":"humid","value":44.332444508870445},{"comp":"co2","value":724.8333536783854},{"comp":"voc","value":421.12221272786456},{"comp":"dust","value":12.90222199757894}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T18:00:00.000Z","score":89.52222188313802,"sensors":[{"comp":"temp","value":22.46066665649414},{"comp":"humid","value":44.8129997253418},{"comp":"co2","value":730.4888916015625},{"comp":"voc","value":431.03333536783856},{"comp":"dust","value":13.038888931274414}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T17:45:00.000Z","score":89.73333231608073,"sensors":[{"comp":"temp","value":22.591888427734375},{"comp":"humid","value":44.702999114990234},{"comp":"co2","value":737.6777750651041},{"comp":"voc","value":437.5},{"comp":"dust","value":12.895555178324381}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T17:30:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":22.55167071024577},{"comp":"humid","value":45.16427230834961},{"comp":"co2","value":772.9180094401041},{"comp":"voc","value":452.5325622558594},{"comp":"dust","value":13.069233576456705}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T17:15:00.000Z","score":89.18888854980469,"sensors":[{"comp":"temp","value":22.69499969482422},{"comp":"humid","value":44.981666564941406},{"comp":"co2","value":756.6888631184896},{"comp":"voc","value":456.73333740234375},{"comp":"dust","value":13.534444491068522}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T17:00:00.000Z","score":88.23333485921223,"sensors":[{"comp":"temp","value":22.426111221313477},{"comp":"humid","value":45.777000427246094},{"comp":"co2","value":768.1555379231771},{"comp":"voc","value":472.8222249348958},{"comp":"dust","value":13.938888867696127}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0444444417953491}]},{"timestamp":"2020-04-06T16:45:00.000Z","score":88.52222188313802,"sensors":[{"comp":"temp","value":22.396889368693035},{"comp":"humid","value":45.58144505818685},{"comp":"co2","value":713.3444620768229},{"comp":"voc","value":470.0888977050781},{"comp":"dust","value":14.45888868967692}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0555555423100789}]},{"timestamp":"2020-04-06T16:30:00.000Z","score":88.77777862548828,"sensors":[{"comp":"temp","value":22.189110438028973},{"comp":"humid","value":46.030999501546226},{"comp":"co2","value":671.4000040690104},{"comp":"voc","value":465.92222086588544},{"comp":"dust","value":13.50333340962728}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T16:15:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":22.281667073567707},{"comp":"humid","value":45.54622141520182},{"comp":"co2","value":664.6555582682291},{"comp":"voc","value":469.3888854980469},{"comp":"dust","value":13.070000330607096}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T16:00:00.000Z","score":88.5,"sensors":[{"comp":"temp","value":22.13244374593099},{"comp":"humid","value":46.16266759236654},{"comp":"co2","value":662.6333414713541},{"comp":"voc","value":482.48888142903644},{"comp":"dust","value":13.074444452921549}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T15:45:00.000Z","score":88.7888895670573,"sensors":[{"comp":"temp","value":22.11555544535319},{"comp":"humid","value":45.734999338785805},{"comp":"co2","value":604.8666788736979},{"comp":"voc","value":482.6777852376302},{"comp":"dust","value":13.73111089070638}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T15:30:00.000Z","score":87.79271952311198,"sensors":[{"comp":"temp","value":21.86602719624837},{"comp":"humid","value":46.348428090413414},{"comp":"co2","value":583.4122517903646},{"comp":"voc","value":493.2310282389323},{"comp":"dust","value":14.482221921284994}],"indices":[{"comp":"temp","value":-0.899999996026357},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0229885180791218}]},{"timestamp":"2020-04-06T15:15:00.000Z","score":86.93333435058594,"sensors":[{"comp":"temp","value":21.715333302815754},{"comp":"humid","value":46.31111145019531},{"comp":"co2","value":583.9111124674479},{"comp":"voc","value":483.4888916015625},{"comp":"dust","value":16.55888907114665}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0888888835906982}]},{"timestamp":"2020-04-06T15:00:00.000Z","score":87.54444376627605,"sensors":[{"comp":"temp","value":21.508555094401043},{"comp":"humid","value":46.236334482828774},{"comp":"co2","value":542.6111246744791},{"comp":"voc","value":457.6000061035156},{"comp":"dust","value":14.773333231608072}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0444444417953491}]},{"timestamp":"2020-04-06T14:45:00.000Z","score":88.73333485921223,"sensors":[{"comp":"temp","value":21.48555564880371},{"comp":"humid","value":45.15266672770182},{"comp":"co2","value":481.6888936360677},{"comp":"voc","value":398.73333740234375},{"comp":"dust","value":13.698889096577963}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T14:30:00.000Z","score":88.95555623372395,"sensors":[{"comp":"temp","value":21.447333017985027},{"comp":"humid","value":44.842889149983726},{"comp":"co2","value":489.7888895670573},{"comp":"voc","value":391.56667073567706},{"comp":"dust","value":13.324444452921549}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T14:15:00.000Z","score":89.06666564941406,"sensors":[{"comp":"temp","value":21.480667114257812},{"comp":"humid","value":44.640333811442055},{"comp":"co2","value":468.1888936360677},{"comp":"voc","value":371.3444417317708},{"comp":"dust","value":13.352222442626953}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T14:00:00.000Z","score":89.03333282470703,"sensors":[{"comp":"temp","value":21.41344451904297},{"comp":"humid","value":44.79199981689453},{"comp":"co2","value":469.3555501302083},{"comp":"voc","value":370.44444783528644},{"comp":"dust","value":13.172222137451172}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T13:45:00.000Z","score":89.33333333333333,"sensors":[{"comp":"temp","value":21.515778223673504},{"comp":"humid","value":44.482444763183594},{"comp":"co2","value":471.2000020345052},{"comp":"voc","value":369.41111246744794},{"comp":"dust","value":13.107777913411459}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T13:30:00.000Z","score":89.01111094156902,"sensors":[{"comp":"temp","value":21.387781778971355},{"comp":"humid","value":44.778970082600914},{"comp":"co2","value":470.22069295247394},{"comp":"voc","value":372.61570231119794},{"comp":"dust","value":13.076130231221518}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T13:15:00.000Z","score":89.23333231608073,"sensors":[{"comp":"temp","value":21.471333185831707},{"comp":"humid","value":44.72400029500326},{"comp":"co2","value":463.7000020345052},{"comp":"voc","value":370.3666687011719},{"comp":"dust","value":13.046666781107584}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T13:00:00.000Z","score":89.02222188313802,"sensors":[{"comp":"temp","value":21.40588887532552},{"comp":"humid","value":44.775778452555336},{"comp":"co2","value":473.1777852376302},{"comp":"voc","value":375.07777913411456},{"comp":"dust","value":13.158889134724935}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T12:45:00.000Z","score":89.11110941569011,"sensors":[{"comp":"temp","value":21.52633285522461},{"comp":"humid","value":44.482000986735024},{"comp":"co2","value":461.43332926432294},{"comp":"voc","value":369.47777303059894},{"comp":"dust","value":13.142222086588541}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T12:30:00.000Z","score":88.93333435058594,"sensors":[{"comp":"temp","value":21.271556218465168},{"comp":"humid","value":44.97999954223633},{"comp":"co2","value":469.6777750651042},{"comp":"voc","value":369.1999918619792},{"comp":"dust","value":13.376666704813639}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T12:15:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":21.274222056070965},{"comp":"humid","value":45.19111124674479},{"comp":"co2","value":464.96666463216144},{"comp":"voc","value":367.6888936360677},{"comp":"dust","value":13.106666882832846}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T12:00:00.000Z","score":89.03333282470703,"sensors":[{"comp":"temp","value":21.262555440266926},{"comp":"humid","value":44.968666076660156},{"comp":"co2","value":462.522216796875},{"comp":"voc","value":362.91111246744794},{"comp":"dust","value":13.108888943990072}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T11:45:00.000Z","score":89.09195454915364,"sensors":[{"comp":"temp","value":21.235655466715496},{"comp":"humid","value":45.080918629964195},{"comp":"co2","value":461.10230509440106},{"comp":"voc","value":357.8252766927083},{"comp":"dust","value":13.062605539957682}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T11:30:00.000Z","score":88.97777811686198,"sensors":[{"comp":"temp","value":21.11687723795573},{"comp":"humid","value":45.154441833496094},{"comp":"co2","value":462.70574951171875},{"comp":"voc","value":358.39195760091144},{"comp":"dust","value":12.939157168070475}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T11:15:00.000Z","score":88.47777811686198,"sensors":[{"comp":"temp","value":20.81077829996745},{"comp":"humid","value":45.31344350179037},{"comp":"co2","value":466.7222188313802},{"comp":"voc","value":360.6777750651042},{"comp":"dust","value":12.846666971842447}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T11:00:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.523444493611652},{"comp":"humid","value":45.60711161295573},{"comp":"co2","value":479.1111145019531},{"comp":"voc","value":362.6555582682292},{"comp":"dust","value":12.945555686950684}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T10:45:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.533222198486328},{"comp":"humid","value":44.95711135864258},{"comp":"co2","value":478.52222696940106},{"comp":"voc","value":365.21112060546875},{"comp":"dust","value":12.808889071146647}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T10:30:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.458555857340496},{"comp":"humid","value":45.29177729288737},{"comp":"co2","value":490.0},{"comp":"voc","value":369.03333536783856},{"comp":"dust","value":12.84416675567627}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T10:15:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.55566660563151},{"comp":"humid","value":45.221221923828125},{"comp":"co2","value":488.56667073567706},{"comp":"voc","value":365.6444498697917},{"comp":"dust","value":13.016666730244955}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T10:00:00.000Z","score":87.89999898274739,"sensors":[{"comp":"temp","value":20.42533302307129},{"comp":"humid","value":45.37533315022787},{"comp":"co2","value":521.1111145019531},{"comp":"voc","value":369.51111857096356},{"comp":"dust","value":12.853333155314127}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T09:45:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.437889099121094},{"comp":"humid","value":45.39655558268229},{"comp":"co2","value":505.1999918619792},{"comp":"voc","value":360.3666763305664},{"comp":"dust","value":12.954444567362467}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T09:30:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.405445098876953},{"comp":"humid","value":45.34433364868164},{"comp":"co2","value":505.05555216471356},{"comp":"voc","value":355.3666687011719},{"comp":"dust","value":12.833333333333334}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T09:15:00.000Z","score":88.18888854980469,"sensors":[{"comp":"temp","value":21.139110565185547},{"comp":"humid","value":43.19259770711263},{"comp":"co2","value":498.5237630208333},{"comp":"voc","value":358.32183837890625},{"comp":"dust","value":12.999540328979492}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T09:00:00.000Z","score":88.7111104329427,"sensors":[{"comp":"temp","value":22.680333455403645},{"comp":"humid","value":39.699666341145836},{"comp":"co2","value":511.96666463216144},{"comp":"voc","value":362.04445393880206},{"comp":"dust","value":12.871666669845581}],"indices":[{"comp":"temp","value":-0.10000000397364299},{"comp":"humid","value":-0.4583333283662796},{"comp":"co2","value":0.0},{"comp":"voc","value":0.9333333373069763},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T08:45:00.000Z","score":88.12820434570312,"sensors":[{"comp":"temp","value":20.87224769592285},{"comp":"humid","value":44.361846923828125},{"comp":"co2","value":514.0905965169271},{"comp":"voc","value":357.1350402832031},{"comp":"dust","value":12.943486976623536}],"indices":[{"comp":"temp","value":-0.935897429784139},{"comp":"humid","value":-0.06410256524880727},{"comp":"co2","value":0.0},{"comp":"voc","value":0.935897429784139},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T08:30:00.000Z","score":88.05555470784505,"sensors":[{"comp":"temp","value":21.731555938720703},{"comp":"humid","value":41.9456672668457},{"comp":"co2","value":545.1666666666666},{"comp":"voc","value":388.58888753255206},{"comp":"dust","value":12.960000038146973}],"indices":[{"comp":"temp","value":-0.7333333343267441},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T08:15:00.000Z","score":87.96969604492188,"sensors":[{"comp":"temp","value":22.025773366292317},{"comp":"humid","value":41.17419179280599},{"comp":"co2","value":512.5391031901041},{"comp":"voc","value":394.3180440266927},{"comp":"dust","value":12.996776262919107}],"indices":[{"comp":"temp","value":-0.3333333333333333},{"comp":"humid","value":-0.6444444457689921},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T08:00:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.554314295450848},{"comp":"humid","value":45.32339859008789},{"comp":"co2","value":531.0865885416666},{"comp":"voc","value":388.8352559407552},{"comp":"dust","value":12.91383139292399}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T07:45:00.000Z","score":87.9111099243164,"sensors":[{"comp":"temp","value":20.617778142293293},{"comp":"humid","value":45.105333964029946},{"comp":"co2","value":540.3555501302084},{"comp":"voc","value":393.61110432942706},{"comp":"dust","value":12.982222239176432}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T07:30:00.000Z","score":87.93333435058594,"sensors":[{"comp":"temp","value":20.74077796936035},{"comp":"humid","value":45.0445556640625},{"comp":"co2","value":535.1333211263021},{"comp":"voc","value":403.6111145019531},{"comp":"dust","value":13.172222137451172}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T07:15:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.83311144510905},{"comp":"humid","value":45.03155517578125},{"comp":"co2","value":557.9888712565104},{"comp":"voc","value":416.45555623372394},{"comp":"dust","value":12.974444389343262}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T07:00:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.935333251953125},{"comp":"humid","value":45.17355600992838},{"comp":"co2","value":567.5111287434896},{"comp":"voc","value":429.3222147623698},{"comp":"dust","value":12.962222417195639}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T06:45:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.026777903238933},{"comp":"humid","value":45.10811106363932},{"comp":"co2","value":581.8666585286459},{"comp":"voc","value":440.2888997395833},{"comp":"dust","value":13.203333536783854}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T06:30:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.203888575236004},{"comp":"humid","value":45.23177719116211},{"comp":"co2","value":600.3888956705729},{"comp":"voc","value":451.4888916015625},{"comp":"dust","value":13.177777926127115}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T06:15:00.000Z","score":88.24444580078125,"sensors":[{"comp":"temp","value":21.334129969278973},{"comp":"humid","value":44.99629465738932},{"comp":"co2","value":591.5279541015625},{"comp":"voc","value":449.1003824869792},{"comp":"dust","value":13.290038426717123}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T06:00:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":21.545000076293945},{"comp":"humid","value":45.04577763875326},{"comp":"co2","value":616.4888712565104},{"comp":"voc","value":447.6333414713542},{"comp":"dust","value":13.081110954284668}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T05:45:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":21.656888326009113},{"comp":"humid","value":45.16211191813151},{"comp":"co2","value":646.7222086588541},{"comp":"voc","value":452.2333272298177},{"comp":"dust","value":12.687777837117514}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T05:30:00.000Z","score":88.52222188313802,"sensors":[{"comp":"temp","value":21.85800043741862},{"comp":"humid","value":45.42388916015625},{"comp":"co2","value":722.2666829427084},{"comp":"voc","value":469.8555501302083},{"comp":"dust","value":12.732222239176432}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T05:15:00.000Z","score":88.31111145019531,"sensors":[{"comp":"temp","value":21.854333241780598},{"comp":"humid","value":45.724554697672524},{"comp":"co2","value":725.2999877929688},{"comp":"voc","value":463.6444498697917},{"comp":"dust","value":12.678888956705729}],"indices":[{"comp":"temp","value":-0.8555555542310079},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T05:00:00.000Z","score":88.51111094156902,"sensors":[{"comp":"temp","value":22.044111251831055},{"comp":"humid","value":45.54533386230469},{"comp":"co2","value":736.6999918619791},{"comp":"voc","value":459.1111145019531},{"comp":"dust","value":13.024444580078125}],"indices":[{"comp":"temp","value":-0.2555555502573649},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T04:45:00.000Z","score":88.37777709960938,"sensors":[{"comp":"temp","value":22.08500035603841},{"comp":"humid","value":45.79711023966471},{"comp":"co2","value":753.6666666666666},{"comp":"voc","value":449.93332926432294},{"comp":"dust","value":13.059999783833822}],"indices":[{"comp":"temp","value":-0.011111111690600714},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T04:30:00.000Z","score":88.45555623372395,"sensors":[{"comp":"temp","value":22.202111562093098},{"comp":"humid","value":45.800000508626304},{"comp":"co2","value":752.8555704752604},{"comp":"voc","value":450.8777770996094},{"comp":"dust","value":13.619999885559082}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T04:15:00.000Z","score":88.2111104329427,"sensors":[{"comp":"temp","value":22.21078872680664},{"comp":"humid","value":46.096885681152344},{"comp":"co2","value":758.9651489257812},{"comp":"voc","value":461.0210774739583},{"comp":"dust","value":12.918812115987143}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T04:00:00.000Z","score":88.0888900756836,"sensors":[{"comp":"temp","value":22.300111134847004},{"comp":"humid","value":46.32944361368815},{"comp":"co2","value":769.4666544596354},{"comp":"voc","value":468.0333251953125},{"comp":"dust","value":13.304444313049316}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T03:45:00.000Z","score":87.9000015258789,"sensors":[{"comp":"temp","value":22.3631108601888},{"comp":"humid","value":46.761444091796875},{"comp":"co2","value":780.3777872721354},{"comp":"voc","value":476.41111246744794},{"comp":"dust","value":13.292222340901693}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T03:30:00.000Z","score":87.27777862548828,"sensors":[{"comp":"temp","value":22.58222198486328},{"comp":"humid","value":46.78199895222982},{"comp":"co2","value":825.4777628580729},{"comp":"voc","value":502.1999918619792},{"comp":"dust","value":13.931111017862955}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T03:15:00.000Z","score":86.95555623372395,"sensors":[{"comp":"temp","value":22.62911097208659},{"comp":"humid","value":47.24311065673828},{"comp":"co2","value":848.0},{"comp":"voc","value":522.4444376627604},{"comp":"dust","value":13.432222048441568}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T03:00:00.000Z","score":85.05555470784505,"sensors":[{"comp":"temp","value":22.9038880666097},{"comp":"humid","value":47.59599939982096},{"comp":"co2","value":883.1666463216146},{"comp":"voc","value":550.0666707356771},{"comp":"dust","value":18.938888867696125}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.2666666507720947}]},{"timestamp":"2020-04-06T02:45:00.000Z","score":85.92222340901692,"sensors":[{"comp":"temp","value":22.97533353169759},{"comp":"humid","value":48.133889516194664},{"comp":"co2","value":927.0777994791666},{"comp":"voc","value":574.9000040690104},{"comp":"dust","value":13.45444424947103}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T02:30:00.000Z","score":85.01111094156902,"sensors":[{"comp":"temp","value":23.038111368815105},{"comp":"humid","value":48.580666859944664},{"comp":"co2","value":960.022216796875},{"comp":"voc","value":597.6000162760416},{"comp":"dust","value":14.40666643778483}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0333333412806194}]},{"timestamp":"2020-04-06T02:15:00.000Z","score":83.50689697265625,"sensors":[{"comp":"temp","value":22.980295181274414},{"comp":"humid","value":50.05017344156901},{"comp":"co2","value":996.0065104166666},{"comp":"voc","value":634.5057373046875},{"comp":"dust","value":14.723601659138998}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.47777777910232544},{"comp":"co2","value":0.5222222208976746},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T02:00:00.000Z","score":80.07777659098308,"sensors":[{"comp":"temp","value":22.91344451904297},{"comp":"humid","value":52.16400019327799},{"comp":"co2","value":1087.8111165364583},{"comp":"voc","value":690.7888793945312},{"comp":"dust","value":16.912222226460774}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":1.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.099999984105428}]},{"timestamp":"2020-04-06T01:45:00.000Z","score":78.5,"sensors":[{"comp":"temp","value":22.88344446818034},{"comp":"humid","value":53.09644444783529},{"comp":"co2","value":1183.1888834635417},{"comp":"voc","value":727.022216796875},{"comp":"dust","value":16.086666742960613}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":1.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T01:30:00.000Z","score":77.44444529215495,"sensors":[{"comp":"temp","value":23.015555063883465},{"comp":"humid","value":52.98655573527018},{"comp":"co2","value":1216.13330078125},{"comp":"voc","value":734.9666544596354},{"comp":"dust","value":18.63777732849121}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":1.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0222222407658894}]},{"timestamp":"2020-04-06T01:15:00.000Z","score":78.27777608235677,"sensors":[{"comp":"temp","value":22.893444697062176},{"comp":"humid","value":50.995443979899086},{"comp":"co2","value":1215.95556640625},{"comp":"voc","value":713.6444498697916},{"comp":"dust","value":19.2277774810791}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.8444444537162781},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.2222222089767456}]},{"timestamp":"2020-04-06T01:00:00.000Z","score":82.01111094156902,"sensors":[{"comp":"temp","value":22.86033312479655},{"comp":"humid","value":48.446221669514976},{"comp":"co2","value":1015.3333536783854},{"comp":"voc","value":626.1999918619791},{"comp":"dust","value":20.21666653951009}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.06666666766007741},{"comp":"co2","value":0.5666666626930237},{"comp":"voc","value":1.0},{"comp":"dust","value":1.255555550257365}]},{"timestamp":"2020-04-06T00:45:00.000Z","score":85.08888753255208,"sensors":[{"comp":"temp","value":22.691555658976238},{"comp":"humid","value":46.0151112874349},{"comp":"co2","value":892.3111165364584},{"comp":"voc","value":521.9222208658854},{"comp":"dust","value":19.71666653951009}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.1555555661519368}]},{"timestamp":"2020-04-06T00:30:00.000Z","score":88.73333485921223,"sensors":[{"comp":"temp","value":22.50088882446289},{"comp":"humid","value":44.216444651285805},{"comp":"co2","value":717.2777913411459},{"comp":"voc","value":400.1888834635417},{"comp":"dust","value":16.03999964396159}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-06T00:15:00.000Z","score":88.1712646484375,"sensors":[{"comp":"temp","value":22.569329579671223},{"comp":"humid","value":43.45059331258138},{"comp":"co2","value":666.1348673502604},{"comp":"voc","value":380.82874552408856},{"comp":"dust","value":17.967164675394695}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.1333333253860474}]},{"timestamp":"2020-04-06T00:00:00.000Z","score":89.63333384195964,"sensors":[{"comp":"temp","value":22.931222279866535},{"comp":"humid","value":42.66566721598307},{"comp":"co2","value":649.7777709960938},{"comp":"voc","value":376.3555603027344},{"comp":"dust","value":14.546666781107584}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0333333412806194}]},{"timestamp":"2020-04-05T23:45:00.000Z","score":89.98888905843098,"sensors":[{"comp":"temp","value":23.25800069173177},{"comp":"humid","value":42.25522232055664},{"comp":"co2","value":663.0999959309896},{"comp":"voc","value":379.8777770996094},{"comp":"dust","value":13.315555572509766}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T23:30:00.000Z","score":90.0888900756836,"sensors":[{"comp":"temp","value":23.572333653767902},{"comp":"humid","value":41.67699940999349},{"comp":"co2","value":641.4333292643229},{"comp":"voc","value":383.54445393880206},{"comp":"dust","value":13.329999923706055}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T23:15:00.000Z","score":90.03333282470703,"sensors":[{"comp":"temp","value":23.874888737996418},{"comp":"humid","value":41.22499974568685},{"comp":"co2","value":637.6777750651041},{"comp":"voc","value":389.1666666666667},{"comp":"dust","value":13.844444592793783}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0444444417953491}]},{"timestamp":"2020-04-05T23:00:00.000Z","score":89.45555623372395,"sensors":[{"comp":"temp","value":24.233333587646484},{"comp":"humid","value":40.479111989339195},{"comp":"co2","value":643.2111206054688},{"comp":"voc","value":399.8888854980469},{"comp":"dust","value":13.179999669392904}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":-0.3444444388151169},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T22:45:00.000Z","score":89.93333435058594,"sensors":[{"comp":"temp","value":23.26855532328288},{"comp":"humid","value":42.758888244628906},{"comp":"co2","value":673.5222371419271},{"comp":"voc","value":427.7000020345052},{"comp":"dust","value":13.20555559794108}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T22:30:00.000Z","score":90.0,"sensors":[{"comp":"temp","value":23.273889541625977},{"comp":"humid","value":43.059000651041664},{"comp":"co2","value":687.0666707356771},{"comp":"voc","value":423.3222147623698},{"comp":"dust","value":12.788888931274414}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T22:15:00.000Z","score":89.96551767985027,"sensors":[{"comp":"temp","value":23.161616643269856},{"comp":"humid","value":43.516510009765625},{"comp":"co2","value":711.5364176432291},{"comp":"voc","value":442.49961344401044},{"comp":"dust","value":12.903793017069498}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T22:00:00.000Z","score":89.84444427490234,"sensors":[{"comp":"temp","value":23.060222625732422},{"comp":"humid","value":43.87577819824219},{"comp":"co2","value":711.1333211263021},{"comp":"voc","value":447.477783203125},{"comp":"dust","value":13.105555534362793}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T21:45:00.000Z","score":89.83333587646484,"sensors":[{"comp":"temp","value":22.918555577596027},{"comp":"humid","value":44.56677754720052},{"comp":"co2","value":717.9111124674479},{"comp":"voc","value":459.6888936360677},{"comp":"dust","value":13.228888829549154}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T21:30:00.000Z","score":89.92222340901692,"sensors":[{"comp":"temp","value":22.777889251708984},{"comp":"humid","value":44.82711283365885},{"comp":"co2","value":705.0},{"comp":"voc","value":469.1666666666667},{"comp":"dust","value":13.061111132303873}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T21:15:00.000Z","score":88.13333384195964,"sensors":[{"comp":"temp","value":22.606666564941406},{"comp":"humid","value":45.08233388264974},{"comp":"co2","value":685.8110961914062},{"comp":"voc","value":477.7222188313802},{"comp":"dust","value":16.636666615804035}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.1777778069178264}]},{"timestamp":"2020-04-05T21:00:00.000Z","score":89.14444478352864,"sensors":[{"comp":"temp","value":22.579333623250324},{"comp":"humid","value":44.37255605061849},{"comp":"co2","value":652.6666463216146},{"comp":"voc","value":484.91112263997394},{"comp":"dust","value":13.158889134724935}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0111111005147297}]},{"timestamp":"2020-04-05T20:45:00.000Z","score":88.76666768391927,"sensors":[{"comp":"temp","value":22.473555246988933},{"comp":"humid","value":43.388223012288414},{"comp":"co2","value":649.5555419921875},{"comp":"voc","value":495.6666564941406},{"comp":"dust","value":13.058888753255209}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T20:30:00.000Z","score":88.37777709960938,"sensors":[{"comp":"temp","value":22.34233283996582},{"comp":"humid","value":43.327555338541664},{"comp":"co2","value":661.2555745442709},{"comp":"voc","value":504.07777913411456},{"comp":"dust","value":12.740000089009603}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T20:15:00.000Z","score":88.12222290039062,"sensors":[{"comp":"temp","value":22.260026931762695},{"comp":"humid","value":43.57783508300781},{"comp":"co2","value":689.45556640625},{"comp":"voc","value":518.1494344075521},{"comp":"dust","value":12.783754666646322}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T20:00:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":22.14643669128418},{"comp":"humid","value":43.79592641194662},{"comp":"co2","value":707.0371704101562},{"comp":"voc","value":521.4402262369791},{"comp":"dust","value":12.749042193094889}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T19:45:00.000Z","score":87.92222340901692,"sensors":[{"comp":"temp","value":22.15333366394043},{"comp":"humid","value":43.972110748291016},{"comp":"co2","value":723.1111043294271},{"comp":"voc","value":504.3000081380208},{"comp":"dust","value":13.0377779006958}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T19:30:00.000Z","score":88.43333435058594,"sensors":[{"comp":"temp","value":22.059221903483074},{"comp":"humid","value":44.23422114054362},{"comp":"co2","value":727.9111124674479},{"comp":"voc","value":481.52222696940106},{"comp":"dust","value":12.526666959126791}],"indices":[{"comp":"temp","value":-0.022222223381201427},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T19:15:00.000Z","score":88.82222493489583,"sensors":[{"comp":"temp","value":22.050444920857746},{"comp":"humid","value":44.70788828531901},{"comp":"co2","value":758.1555582682291},{"comp":"voc","value":443.3888854980469},{"comp":"dust","value":12.888888994852701}],"indices":[{"comp":"temp","value":-0.40000000099341076},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T19:00:00.000Z","score":88.84444427490234,"sensors":[{"comp":"temp","value":21.864444732666016},{"comp":"humid","value":45.24099985758463},{"comp":"co2","value":739.8444417317709},{"comp":"voc","value":427.5},{"comp":"dust","value":13.062222480773926}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T18:45:00.000Z","score":88.87777709960938,"sensors":[{"comp":"temp","value":21.90044403076172},{"comp":"humid","value":45.2175547281901},{"comp":"co2","value":736.8555704752604},{"comp":"voc","value":417.97777303059894},{"comp":"dust","value":13.181111017862955}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T18:30:00.000Z","score":88.97777811686198,"sensors":[{"comp":"temp","value":22.076222101847332},{"comp":"humid","value":45.15266545613607},{"comp":"co2","value":775.6555582682291},{"comp":"voc","value":433.3888854980469},{"comp":"dust","value":12.706666628519693}],"indices":[{"comp":"temp","value":-0.4333333373069763},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T18:15:00.000Z","score":88.76666768391927,"sensors":[{"comp":"temp","value":22.511885325113933},{"comp":"humid","value":45.1170654296875},{"comp":"co2","value":825.3245239257812},{"comp":"voc","value":453.15439860026044},{"comp":"dust","value":12.995670318603516}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T18:00:00.000Z","score":88.2111104329427,"sensors":[{"comp":"temp","value":22.584999720255535},{"comp":"humid","value":45.470444997151695},{"comp":"co2","value":857.6666870117188},{"comp":"voc","value":471.3111165364583},{"comp":"dust","value":12.982222239176432}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T17:45:00.000Z","score":87.2999979654948,"sensors":[{"comp":"temp","value":22.670555114746094},{"comp":"humid","value":45.700889587402344},{"comp":"co2","value":869.8000081380209},{"comp":"voc","value":489.477783203125},{"comp":"dust","value":14.899999936421713}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0555555423100789}]},{"timestamp":"2020-04-05T17:30:00.000Z","score":87.07777659098308,"sensors":[{"comp":"temp","value":22.639333724975586},{"comp":"humid","value":46.282222747802734},{"comp":"co2","value":911.2888793945312},{"comp":"voc","value":511.92222086588544},{"comp":"dust","value":13.04888884226481}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T17:15:00.000Z","score":86.60000101725261,"sensors":[{"comp":"temp","value":22.68000030517578},{"comp":"humid","value":46.684444427490234},{"comp":"co2","value":952.9444376627604},{"comp":"voc","value":528.7777913411459},{"comp":"dust","value":13.25444475809733}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T17:00:00.000Z","score":85.11340840657552,"sensors":[{"comp":"temp","value":22.532647450764973},{"comp":"humid","value":47.78732935587565},{"comp":"co2","value":1016.0459798177084},{"comp":"voc","value":558.1233723958334},{"comp":"dust","value":13.243103663126627}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.4444444477558136},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T16:45:00.000Z","score":83.69999694824219,"sensors":[{"comp":"temp","value":22.36222203572591},{"comp":"humid","value":48.47111129760742},{"comp":"co2","value":1048.6222330729167},{"comp":"voc","value":579.1666666666666},{"comp":"dust","value":14.321111043294271}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T16:30:00.000Z","score":85.98888905843098,"sensors":[{"comp":"temp","value":22.10444450378418},{"comp":"humid","value":47.90000025431315},{"comp":"co2","value":818.3888956705729},{"comp":"voc","value":534.0333353678385},{"comp":"dust","value":13.418889045715332}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.20000000794728598},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T16:15:00.000Z","score":88.94444529215495,"sensors":[{"comp":"temp","value":22.229249318440754},{"comp":"humid","value":46.160475413004555},{"comp":"co2","value":569.9697469075521},{"comp":"voc","value":435.71494547526044},{"comp":"dust","value":14.836551348368326}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T16:00:00.000Z","score":90.02222188313802,"sensors":[{"comp":"temp","value":22.139333724975586},{"comp":"humid","value":45.04588826497396},{"comp":"co2","value":547.6111246744791},{"comp":"voc","value":410.5111083984375},{"comp":"dust","value":12.584444363911947}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T15:45:00.000Z","score":90.01111094156902,"sensors":[{"comp":"temp","value":22.159444173177082},{"comp":"humid","value":44.60300064086914},{"comp":"co2","value":547.0111287434896},{"comp":"voc","value":398.91111246744794},{"comp":"dust","value":12.76111125946045}],"indices":[{"comp":"temp","value":-0.2555555502573649},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T15:30:00.000Z","score":89.93333435058594,"sensors":[{"comp":"temp","value":21.91111119588216},{"comp":"humid","value":45.13711166381836},{"comp":"co2","value":545.544443766276},{"comp":"voc","value":400.5},{"comp":"dust","value":12.991111437479654}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T15:15:00.000Z","score":89.7000020345052,"sensors":[{"comp":"temp","value":21.678444544474285},{"comp":"humid","value":45.03433354695638},{"comp":"co2","value":490.42223103841144},{"comp":"voc","value":397.0111083984375},{"comp":"dust","value":13.24222215016683}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T15:00:00.000Z","score":89.22222391764323,"sensors":[{"comp":"temp","value":21.24822235107422},{"comp":"humid","value":44.721333821614586},{"comp":"co2","value":454.8222249348958},{"comp":"voc","value":336.2888895670573},{"comp":"dust","value":13.369999885559082}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.34444444502393406},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T14:45:00.000Z","score":90.0,"sensors":[{"comp":"temp","value":21.23988914489746},{"comp":"humid","value":44.76422246297201},{"comp":"co2","value":450.477783203125},{"comp":"voc","value":317.5},{"comp":"dust","value":12.989999771118164}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T14:30:00.000Z","score":89.97777811686198,"sensors":[{"comp":"temp","value":21.250110626220703},{"comp":"humid","value":45.078444163004555},{"comp":"co2","value":463.90000406901044},{"comp":"voc","value":322.3888854980469},{"comp":"dust","value":13.01111094156901}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T14:15:00.000Z","score":89.66053517659505,"sensors":[{"comp":"temp","value":21.201286951700848},{"comp":"humid","value":45.08785502115885},{"comp":"co2","value":465.0172424316406},{"comp":"voc","value":328.93946329752606},{"comp":"dust","value":13.061379432678223}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T14:00:00.000Z","score":89.5888900756836,"sensors":[{"comp":"temp","value":21.220666885375977},{"comp":"humid","value":45.27211125691732},{"comp":"co2","value":465.1777750651042},{"comp":"voc","value":332.1333414713542},{"comp":"dust","value":12.845555623372396}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T13:45:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":21.00344467163086},{"comp":"humid","value":45.34999974568685},{"comp":"co2","value":470.08888753255206},{"comp":"voc","value":338.45555623372394},{"comp":"dust","value":12.83555539449056}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T13:30:00.000Z","score":88.47777811686198,"sensors":[{"comp":"temp","value":20.7364444732666},{"comp":"humid","value":45.45499928792318},{"comp":"co2","value":471.3000081380208},{"comp":"voc","value":341.1666666666667},{"comp":"dust","value":12.95111083984375}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T13:15:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.524778366088867},{"comp":"humid","value":45.45466613769531},{"comp":"co2","value":475.45555623372394},{"comp":"voc","value":347.2777811686198},{"comp":"dust","value":12.76111125946045}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.6999999930461248},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T13:00:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.361443837483723},{"comp":"humid","value":45.208333333333336},{"comp":"co2","value":479.5111083984375},{"comp":"voc","value":353.07776896158856},{"comp":"dust","value":12.743333180745443}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T12:45:00.000Z","score":88.01111094156902,"sensors":[{"comp":"temp","value":20.471333185831707},{"comp":"humid","value":45.07177734375},{"comp":"co2","value":488.3333333333333},{"comp":"voc","value":355.13332112630206},{"comp":"dust","value":12.681111017862955}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T12:30:00.000Z","score":88.08888753255208,"sensors":[{"comp":"temp","value":20.55033302307129},{"comp":"humid","value":45.07744471232096},{"comp":"co2","value":484.93333943684894},{"comp":"voc","value":346.1999918619792},{"comp":"dust","value":12.672222137451172}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.5777777830759684},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T12:15:00.000Z","score":88.01149495442708,"sensors":[{"comp":"temp","value":20.557639439900715},{"comp":"humid","value":44.77464040120443},{"comp":"co2","value":485.76551310221356},{"comp":"voc","value":345.7383219401042},{"comp":"dust","value":12.77563222249349}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.5444444417953491},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T12:00:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.460221608479817},{"comp":"humid","value":45.090555826822914},{"comp":"co2","value":493.8444519042969},{"comp":"voc","value":352.45554606119794},{"comp":"dust","value":12.75777784983317}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T11:45:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.52644411722819},{"comp":"humid","value":45.19822311401367},{"comp":"co2","value":496.8555603027344},{"comp":"voc","value":356.3222249348958},{"comp":"dust","value":12.712222417195639}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T11:30:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.449777603149414},{"comp":"humid","value":44.94811121622721},{"comp":"co2","value":498.24444580078125},{"comp":"voc","value":358.45555623372394},{"comp":"dust","value":12.872222264607748}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T11:15:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.5462220509847},{"comp":"humid","value":45.020111083984375},{"comp":"co2","value":510.8555603027344},{"comp":"voc","value":365.6555582682292},{"comp":"dust","value":12.807777722676596}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T11:00:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.54688898722331},{"comp":"humid","value":45.34388860066732},{"comp":"co2","value":526.6666666666666},{"comp":"voc","value":368.1555582682292},{"comp":"dust","value":12.867777824401855}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T10:45:00.000Z","score":87.94444529215495,"sensors":[{"comp":"temp","value":20.493445078531902},{"comp":"humid","value":45.18211110432943},{"comp":"co2","value":522.9888712565104},{"comp":"voc","value":360.02222696940106},{"comp":"dust","value":12.871111234029135}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T10:30:00.000Z","score":87.76666768391927,"sensors":[{"comp":"temp","value":20.318222045898438},{"comp":"humid","value":45.431111653645836},{"comp":"co2","value":523.0000203450521},{"comp":"voc","value":362.93332926432294},{"comp":"dust","value":12.79444440205892}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T10:15:00.000Z","score":87.97777811686198,"sensors":[{"comp":"temp","value":20.3772029876709},{"comp":"humid","value":45.36202621459961},{"comp":"co2","value":540.9283447265625},{"comp":"voc","value":361.5118713378906},{"comp":"dust","value":12.84831428527832}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T10:00:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.437111536661785},{"comp":"humid","value":45.032222747802734},{"comp":"co2","value":539.7555541992188},{"comp":"voc","value":357.6444498697917},{"comp":"dust","value":12.842222213745117}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T09:45:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.537999471028645},{"comp":"humid","value":45.298666636149086},{"comp":"co2","value":573.6111043294271},{"comp":"voc","value":365.03333536783856},{"comp":"dust","value":12.871110916137695}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T09:30:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.438221613566082},{"comp":"humid","value":45.19611104329427},{"comp":"co2","value":575.8111165364584},{"comp":"voc","value":370.1111145019531},{"comp":"dust","value":12.896666526794434}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T09:15:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.236443837483723},{"comp":"humid","value":42.97455596923828},{"comp":"co2","value":575.4999796549479},{"comp":"voc","value":376.7555440266927},{"comp":"dust","value":12.883333206176758}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T09:00:00.000Z","score":88.08444468180339,"sensors":[{"comp":"temp","value":22.72966702779134},{"comp":"humid","value":39.29355494181315},{"comp":"co2","value":576.4066569010416},{"comp":"voc","value":363.7244466145833},{"comp":"dust","value":13.131555557250977}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":-0.6666666666666666},{"comp":"co2","value":0.0},{"comp":"voc","value":0.8533333341280619},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T08:45:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.59422238667806},{"comp":"humid","value":44.83822123209635},{"comp":"co2","value":601.3222249348959},{"comp":"voc","value":392.41111246744794},{"comp":"dust","value":12.870000203450521}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T08:30:00.000Z","score":87.2999979654948,"sensors":[{"comp":"temp","value":20.455555597941082},{"comp":"humid","value":45.243333180745445},{"comp":"co2","value":614.9000040690104},{"comp":"voc","value":406.06667073567706},{"comp":"dust","value":12.863333702087402}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T08:15:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.48377736409505},{"comp":"humid","value":45.45811080932617},{"comp":"co2","value":642.1666666666666},{"comp":"voc","value":415.44444783528644},{"comp":"dust","value":13.053333600362143}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T08:00:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.36977767944336},{"comp":"humid","value":45.1284434000651},{"comp":"co2","value":619.7888997395834},{"comp":"voc","value":419.6444396972656},{"comp":"dust","value":12.84000015258789}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T07:45:00.000Z","score":86.83333333333333,"sensors":[{"comp":"temp","value":20.482332865397137},{"comp":"humid","value":45.369110107421875},{"comp":"co2","value":662.2444458007812},{"comp":"voc","value":433.45555623372394},{"comp":"dust","value":13.125555674235025}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T07:30:00.000Z","score":86.1999994913737,"sensors":[{"comp":"temp","value":20.49977747599284},{"comp":"humid","value":45.573778788248696},{"comp":"co2","value":698.9444580078125},{"comp":"voc","value":450.43332926432294},{"comp":"dust","value":13.102222442626953}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T07:15:00.000Z","score":86.08888753255208,"sensors":[{"comp":"temp","value":20.62577756245931},{"comp":"humid","value":45.398555755615234},{"comp":"co2","value":726.9111124674479},{"comp":"voc","value":453.7111104329427},{"comp":"dust","value":13.241111119588217}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T07:00:00.000Z","score":86.93103535970052,"sensors":[{"comp":"temp","value":20.608862559000652},{"comp":"humid","value":45.217997233072914},{"comp":"co2","value":691.8061319986979},{"comp":"voc","value":438.6337178548177},{"comp":"dust","value":13.149693489074707}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T06:45:00.000Z","score":86.03333282470703,"sensors":[{"comp":"temp","value":20.85855547587077},{"comp":"humid","value":45.31522115071615},{"comp":"co2","value":781.0333251953125},{"comp":"voc","value":461.1666564941406},{"comp":"dust","value":13.278889020284018}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T06:30:00.000Z","score":86.65555572509766,"sensors":[{"comp":"temp","value":20.86655553181966},{"comp":"humid","value":45.24300003051758},{"comp":"co2","value":756.477783203125},{"comp":"voc","value":449.8555501302083},{"comp":"dust","value":13.366666793823242}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T06:15:00.000Z","score":86.01111094156902,"sensors":[{"comp":"temp","value":21.10555585225423},{"comp":"humid","value":45.3858896891276},{"comp":"co2","value":847.1666666666666},{"comp":"voc","value":475.2888895670573},{"comp":"dust","value":13.803333600362143}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T06:00:00.000Z","score":85.7636006673177,"sensors":[{"comp":"temp","value":21.133804321289062},{"comp":"humid","value":45.27078501383463},{"comp":"co2","value":850.0429077148438},{"comp":"voc","value":470.00343831380206},{"comp":"dust","value":14.431723912556967}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T05:45:00.000Z","score":84.62222290039062,"sensors":[{"comp":"temp","value":21.403888702392578},{"comp":"humid","value":45.666221618652344},{"comp":"co2","value":978.8777872721354},{"comp":"voc","value":509.3333282470703},{"comp":"dust","value":15.362222035725912}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.23333333432674408},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0111111005147297}]},{"timestamp":"2020-04-05T05:30:00.000Z","score":83.07777659098308,"sensors":[{"comp":"temp","value":21.50933313369751},{"comp":"humid","value":46.169331868489586},{"comp":"co2","value":1067.3666585286458},{"comp":"voc","value":521.6333312988281},{"comp":"dust","value":16.65888849894206}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T05:15:00.000Z","score":83.45555369059245,"sensors":[{"comp":"temp","value":21.719000498453777},{"comp":"humid","value":45.900778452555336},{"comp":"co2","value":1072.5888671875},{"comp":"voc","value":492.3111063639323},{"comp":"dust","value":17.774444580078125}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.2666666507720947}]},{"timestamp":"2020-04-05T05:00:00.000Z","score":85.33946482340495,"sensors":[{"comp":"temp","value":21.644807815551758},{"comp":"humid","value":45.9468739827474},{"comp":"co2","value":1039.1842854817708},{"comp":"voc","value":481.6333312988281},{"comp":"dust","value":13.265095710754395}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T04:45:00.000Z","score":85.40957895914714,"sensors":[{"comp":"temp","value":21.825172424316406},{"comp":"humid","value":45.68411636352539},{"comp":"co2","value":1062.3670247395833},{"comp":"voc","value":485.9954020182292},{"comp":"dust","value":13.412911732991537}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T04:30:00.000Z","score":85.51111094156902,"sensors":[{"comp":"temp","value":21.774555842081707},{"comp":"humid","value":45.75133387247721},{"comp":"co2","value":1032.888916015625},{"comp":"voc","value":480.2333272298177},{"comp":"dust","value":13.94444465637207}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T04:15:00.000Z","score":85.47777811686198,"sensors":[{"comp":"temp","value":21.96366596221924},{"comp":"humid","value":45.54199981689453},{"comp":"co2","value":1061.7777913411458},{"comp":"voc","value":491.8111063639323},{"comp":"dust","value":14.450833320617676}],"indices":[{"comp":"temp","value":-0.42222222685813904},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T04:00:00.000Z","score":85.6999994913737,"sensors":[{"comp":"temp","value":21.9418888092041},{"comp":"humid","value":45.725111643473305},{"comp":"co2","value":1035.8110961914062},{"comp":"voc","value":492.7777811686198},{"comp":"dust","value":13.941111246744791}],"indices":[{"comp":"temp","value":-0.9111111164093018},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T03:45:00.000Z","score":85.92222340901692,"sensors":[{"comp":"temp","value":22.20888900756836},{"comp":"humid","value":45.46177673339844},{"comp":"co2","value":1074.9444580078125},{"comp":"voc","value":507.7888997395833},{"comp":"dust","value":13.235555648803711}],"indices":[{"comp":"temp","value":-0.06666666766007741},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T03:30:00.000Z","score":85.94444529215495,"sensors":[{"comp":"temp","value":22.39377784729004},{"comp":"humid","value":45.5380007425944},{"comp":"co2","value":1083.3222249348958},{"comp":"voc","value":504.9888916015625},{"comp":"dust","value":13.390000343322754}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T03:15:00.000Z","score":85.4111099243164,"sensors":[{"comp":"temp","value":22.580333073933918},{"comp":"humid","value":45.260111490885414},{"comp":"co2","value":1111.4889322916667},{"comp":"voc","value":509.6555582682292},{"comp":"dust","value":14.65333366394043}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0777777830759685}]},{"timestamp":"2020-04-05T03:00:00.000Z","score":85.67777760823567,"sensors":[{"comp":"temp","value":22.556777954101562},{"comp":"humid","value":45.52888870239258},{"comp":"co2","value":1109.2333170572917},{"comp":"voc","value":515.7000122070312},{"comp":"dust","value":13.95111083984375}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0333333412806194}]},{"timestamp":"2020-04-05T02:45:00.000Z","score":85.72222137451172,"sensors":[{"comp":"temp","value":22.576215108235676},{"comp":"humid","value":45.533433278401695},{"comp":"co2","value":1102.6363932291667},{"comp":"voc","value":516.7620544433594},{"comp":"dust","value":13.507815996805826}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T02:30:00.000Z","score":85.02222188313802,"sensors":[{"comp":"temp","value":22.468332926432293},{"comp":"humid","value":46.115221659342446},{"comp":"co2","value":1110.3222249348958},{"comp":"voc","value":525.7888793945312},{"comp":"dust","value":13.506666819254557}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T02:15:00.000Z","score":84.88889058430989,"sensors":[{"comp":"temp","value":22.322333653767902},{"comp":"humid","value":46.37766647338867},{"comp":"co2","value":1090.7888997395833},{"comp":"voc","value":529.5888875325521},{"comp":"dust","value":13.819999694824219}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T02:00:00.000Z","score":83.86666870117188,"sensors":[{"comp":"temp","value":22.115332921346027},{"comp":"humid","value":47.212999979654946},{"comp":"co2","value":1100.3444417317708},{"comp":"voc","value":540.8222045898438},{"comp":"dust","value":14.352222442626953}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T01:45:00.000Z","score":83.18888854980469,"sensors":[{"comp":"temp","value":22.016000747680664},{"comp":"humid","value":48.248111724853516},{"comp":"co2","value":1092.6999918619792},{"comp":"voc","value":556.1666666666666},{"comp":"dust","value":14.018888791402182}],"indices":[{"comp":"temp","value":-0.24444445595145226},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T01:30:00.000Z","score":82.12222290039062,"sensors":[{"comp":"temp","value":22.05088933308919},{"comp":"humid","value":47.8684450785319},{"comp":"co2","value":1157.155517578125},{"comp":"voc","value":576.0333455403646},{"comp":"dust","value":15.111111005147299}],"indices":[{"comp":"temp","value":-0.2222222201526165},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T01:15:00.000Z","score":83.9000015258789,"sensors":[{"comp":"temp","value":22.306333541870117},{"comp":"humid","value":46.81788889567057},{"comp":"co2","value":1090.1555582682292},{"comp":"voc","value":563.7777709960938},{"comp":"dust","value":15.047777811686197}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T01:00:00.000Z","score":83.98888905843098,"sensors":[{"comp":"temp","value":22.357248942057293},{"comp":"humid","value":47.61972173055013},{"comp":"co2","value":1084.8463134765625},{"comp":"voc","value":576.1953938802084},{"comp":"dust","value":13.617586135864258}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T00:45:00.000Z","score":83.58620707194011,"sensors":[{"comp":"temp","value":22.261361440022785},{"comp":"humid","value":48.14874521891276},{"comp":"co2","value":1074.9918619791667},{"comp":"voc","value":577.8213094075521},{"comp":"dust","value":14.00327173868815}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-05T00:30:00.000Z","score":82.74444325764973,"sensors":[{"comp":"temp","value":22.290110905965168},{"comp":"humid","value":48.088443756103516},{"comp":"co2","value":1071.3110758463542},{"comp":"voc","value":567.7444458007812},{"comp":"dust","value":16.869999885559082}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.1333333253860474}]},{"timestamp":"2020-04-05T00:15:00.000Z","score":85.32222239176433,"sensors":[{"comp":"temp","value":22.681222279866535},{"comp":"humid","value":46.403333028157554},{"comp":"co2","value":1033.95556640625},{"comp":"voc","value":538.477783203125},{"comp":"dust","value":15.516667048136393}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0555555423100789}]},{"timestamp":"2020-04-05T00:00:00.000Z","score":86.24444325764973,"sensors":[{"comp":"temp","value":23.102555592854817},{"comp":"humid","value":46.01355489095052},{"comp":"co2","value":1010.6111246744791},{"comp":"voc","value":523.6555582682291},{"comp":"dust","value":15.48888874053955}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.5888888984918594},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0444444417953491}]},{"timestamp":"2020-04-04T23:45:00.000Z","score":88.02222188313802,"sensors":[{"comp":"temp","value":23.411333084106445},{"comp":"humid","value":45.25711186726888},{"comp":"co2","value":971.9222005208334},{"comp":"voc","value":509.1666666666667},{"comp":"dust","value":13.875555674235025}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T23:30:00.000Z","score":88.26666514078777,"sensors":[{"comp":"temp","value":23.67099952697754},{"comp":"humid","value":44.541666666666664},{"comp":"co2","value":949.6888834635416},{"comp":"voc","value":507.3555501302083},{"comp":"dust","value":13.923333168029785}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T23:15:00.000Z","score":88.47777811686198,"sensors":[{"comp":"temp","value":24.16866683959961},{"comp":"humid","value":43.501111348470054},{"comp":"co2","value":923.6888834635416},{"comp":"voc","value":480.25555419921875},{"comp":"dust","value":14.307777722676596}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T23:00:00.000Z","score":87.06628163655598,"sensors":[{"comp":"temp","value":24.855639775594074},{"comp":"humid","value":42.72998174031576},{"comp":"co2","value":955.7750854492188},{"comp":"voc","value":457.4521077473958},{"comp":"dust","value":14.49195416768392}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T22:45:00.000Z","score":88.52222188313802,"sensors":[{"comp":"temp","value":23.361666361490887},{"comp":"humid","value":45.62877655029297},{"comp":"co2","value":913.4555460611979},{"comp":"voc","value":424.522216796875},{"comp":"dust","value":15.173333168029785}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0333333412806194}]},{"timestamp":"2020-04-04T22:30:00.000Z","score":88.31111399332683,"sensors":[{"comp":"temp","value":23.109333674112957},{"comp":"humid","value":46.153333028157554},{"comp":"co2","value":917.7666625976562},{"comp":"voc","value":395.76666259765625},{"comp":"dust","value":14.931111017862955}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T22:15:00.000Z","score":88.33333333333333,"sensors":[{"comp":"temp","value":22.913333257039387},{"comp":"humid","value":46.35733413696289},{"comp":"co2","value":884.6666666666666},{"comp":"voc","value":384.3444417317708},{"comp":"dust","value":15.062222162882486}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T22:00:00.000Z","score":87.47777811686198,"sensors":[{"comp":"temp","value":22.584999720255535},{"comp":"humid","value":46.78066635131836},{"comp":"co2","value":877.7444458007812},{"comp":"voc","value":385.1000061035156},{"comp":"dust","value":15.651110967000326}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T21:45:00.000Z","score":88.05555470784505,"sensors":[{"comp":"temp","value":22.312000274658203},{"comp":"humid","value":45.918111165364586},{"comp":"co2","value":782.6444295247396},{"comp":"voc","value":376.8555603027344},{"comp":"dust","value":15.99999968210856}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T21:30:00.000Z","score":88.2111104329427,"sensors":[{"comp":"temp","value":22.050111134847004},{"comp":"humid","value":44.53522237141927},{"comp":"co2","value":743.0777791341146},{"comp":"voc","value":376.40000406901044},{"comp":"dust","value":15.948889096577963}],"indices":[{"comp":"temp","value":-0.5555555621782938},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0333333412806194}]},{"timestamp":"2020-04-04T21:15:00.000Z","score":88.16666666666667,"sensors":[{"comp":"temp","value":21.928444544474285},{"comp":"humid","value":42.779555002848305},{"comp":"co2","value":593.9222412109375},{"comp":"voc","value":376.42222086588544},{"comp":"dust","value":15.652222633361816}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T21:00:00.000Z","score":87.96666717529297,"sensors":[{"comp":"temp","value":21.334444681803387},{"comp":"humid","value":42.26422246297201},{"comp":"co2","value":534.6333312988281},{"comp":"voc","value":320.48888142903644},{"comp":"dust","value":14.817777951558432}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.42222222685813904},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T20:45:00.000Z","score":86.70919545491536,"sensors":[{"comp":"temp","value":20.86462465922038},{"comp":"humid","value":40.218126932779946},{"comp":"co2","value":448.29310099283856},{"comp":"voc","value":273.78467814127606},{"comp":"dust","value":14.97026793162028}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":-0.472030649582545},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T20:30:00.000Z","score":87.46666717529297,"sensors":[{"comp":"temp","value":21.32444445292155},{"comp":"humid","value":42.24655532836914},{"comp":"co2","value":599.0000203450521},{"comp":"voc","value":341.24444580078125},{"comp":"dust","value":15.271111170450846}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.4333333373069763},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T20:15:00.000Z","score":87.03333282470703,"sensors":[{"comp":"temp","value":21.415555318196613},{"comp":"humid","value":44.13444391886393},{"comp":"co2","value":745.5222371419271},{"comp":"voc","value":414.8111165364583},{"comp":"dust","value":14.686666488647461}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T20:00:00.000Z","score":85.4111099243164,"sensors":[{"comp":"temp","value":21.363444646199543},{"comp":"humid","value":45.09822209676107},{"comp":"co2","value":837.2888997395834},{"comp":"voc","value":460.0888977050781},{"comp":"dust","value":16.748888969421387}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0444444417953491}]},{"timestamp":"2020-04-04T19:45:00.000Z","score":87.93333435058594,"sensors":[{"comp":"temp","value":21.532222112019856},{"comp":"humid","value":44.38222122192383},{"comp":"co2","value":679.8444620768229},{"comp":"voc","value":426.8083267211914},{"comp":"dust","value":14.043999862670898}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.7666666706403097},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T19:30:00.000Z","score":89.26666514078777,"sensors":[{"comp":"temp","value":21.759888966878254},{"comp":"humid","value":46.947888692220054},{"comp":"co2","value":598.0888875325521},{"comp":"voc","value":323.6555684407552},{"comp":"dust","value":15.00200023651123}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T19:15:00.000Z","score":90.0,"sensors":[{"comp":"temp","value":21.875417232513428},{"comp":"humid","value":46.928000132242836},{"comp":"co2","value":606.8444417317709},{"comp":"voc","value":323.76666259765625},{"comp":"dust","value":12.571666955947876}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T19:00:00.000Z","score":90.0,"sensors":[{"comp":"temp","value":21.95139923095703},{"comp":"humid","value":46.864444732666016},{"comp":"co2","value":608.1777750651041},{"comp":"voc","value":329.85332641601565},{"comp":"dust","value":12.860000228881836}],"indices":[{"comp":"temp","value":-0.9666666587193807},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T18:45:00.000Z","score":90.0,"sensors":[{"comp":"temp","value":21.87167501449585},{"comp":"humid","value":46.511670430501304},{"comp":"co2","value":600.9141845703125},{"comp":"voc","value":331.2080485026042},{"comp":"dust","value":12.73540210723877}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T18:30:00.000Z","score":89.86666615804036,"sensors":[{"comp":"temp","value":21.872600173950197},{"comp":"humid","value":46.530999501546226},{"comp":"co2","value":622.1444498697916},{"comp":"voc","value":339.15834045410156},{"comp":"dust","value":12.998888969421387}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.011111111690600714},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T18:15:00.000Z","score":89.7888895670573,"sensors":[{"comp":"temp","value":21.823111216227215},{"comp":"humid","value":46.7261110941569},{"comp":"co2","value":626.2222290039062},{"comp":"voc","value":346.45555623372394},{"comp":"dust","value":12.408888816833496}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.799999992052714},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T18:00:00.000Z","score":89.26666768391927,"sensors":[{"comp":"temp","value":21.884667078653973},{"comp":"humid","value":46.93655522664388},{"comp":"co2","value":672.3222249348959},{"comp":"voc","value":359.2222188313802},{"comp":"dust","value":12.513333320617676}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T17:45:00.000Z","score":88.93333435058594,"sensors":[{"comp":"temp","value":21.85533332824707},{"comp":"humid","value":47.0087776184082},{"comp":"co2","value":664.6444498697916},{"comp":"voc","value":365.8444417317708},{"comp":"dust","value":12.994444211324057}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0111111005147297}]},{"timestamp":"2020-04-04T17:30:00.000Z","score":88.82222239176433,"sensors":[{"comp":"temp","value":21.901222229003906},{"comp":"humid","value":46.89911142985026},{"comp":"co2","value":673.9333292643229},{"comp":"voc","value":381.2111104329427},{"comp":"dust","value":13.143333435058594}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0333333412806194}]},{"timestamp":"2020-04-04T17:15:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":21.862777709960938},{"comp":"humid","value":46.91822179158529},{"comp":"co2","value":660.3777669270834},{"comp":"voc","value":390.7777811686198},{"comp":"dust","value":12.572222073872885}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T17:00:00.000Z","score":88.11839040120442,"sensors":[{"comp":"temp","value":21.876184463500977},{"comp":"humid","value":46.98110707600912},{"comp":"co2","value":666.5478922526041},{"comp":"voc","value":411.4708760579427},{"comp":"dust","value":13.479770024617514}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T16:45:00.000Z","score":88.76666768391927,"sensors":[{"comp":"temp","value":21.843777974446613},{"comp":"humid","value":47.019999186197914},{"comp":"co2","value":633.1111246744791},{"comp":"voc","value":409.98888142903644},{"comp":"dust","value":12.886666297912598}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T16:30:00.000Z","score":88.2111104329427,"sensors":[{"comp":"temp","value":21.782555262247723},{"comp":"humid","value":47.260223388671875},{"comp":"co2","value":590.0999959309896},{"comp":"voc","value":383.3111063639323},{"comp":"dust","value":14.990000089009603}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.1111111243565877}]},{"timestamp":"2020-04-04T16:15:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":21.73355547587077},{"comp":"humid","value":47.41511154174805},{"comp":"co2","value":561.4444376627604},{"comp":"voc","value":379.6000061035156},{"comp":"dust","value":12.934444427490234}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T16:00:00.000Z","score":88.55555725097656,"sensors":[{"comp":"temp","value":21.80122248331706},{"comp":"humid","value":47.23222223917643},{"comp":"co2","value":559.5222371419271},{"comp":"voc","value":386.53333536783856},{"comp":"dust","value":14.126667022705078}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T15:45:00.000Z","score":89.57777913411458,"sensors":[{"comp":"temp","value":21.80411148071289},{"comp":"humid","value":46.13677851359049},{"comp":"co2","value":524.5888875325521},{"comp":"voc","value":381.04444376627606},{"comp":"dust","value":12.953333218892416}],"indices":[{"comp":"temp","value":-0.9222222169240316},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T15:30:00.000Z","score":89.56666564941406,"sensors":[{"comp":"temp","value":21.93055534362793},{"comp":"humid","value":46.179222106933594},{"comp":"co2","value":545.477783203125},{"comp":"voc","value":398.58888753255206},{"comp":"dust","value":12.695555369059244}],"indices":[{"comp":"temp","value":-0.6555555574595928},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T15:15:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":21.856555302937824},{"comp":"humid","value":46.56055450439453},{"comp":"co2","value":544.7111002604166},{"comp":"voc","value":416.98888142903644},{"comp":"dust","value":12.59333324432373}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T15:00:00.000Z","score":88.45555369059245,"sensors":[{"comp":"temp","value":21.694011052449543},{"comp":"humid","value":46.778700510660805},{"comp":"co2","value":554.5842895507812},{"comp":"voc","value":434.897705078125},{"comp":"dust","value":12.945019086201986}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T14:45:00.000Z","score":87.98850504557292,"sensors":[{"comp":"temp","value":21.617441177368164},{"comp":"humid","value":46.91370519002279},{"comp":"co2","value":548.516845703125},{"comp":"voc","value":448.1712646484375},{"comp":"dust","value":12.85996150970459}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T14:30:00.000Z","score":87.44444274902344,"sensors":[{"comp":"temp","value":21.58388837178548},{"comp":"humid","value":46.998888651529946},{"comp":"co2","value":535.2444254557291},{"comp":"voc","value":422.40000406901044},{"comp":"dust","value":14.745555559794107}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.1111111243565877}]},{"timestamp":"2020-04-04T14:15:00.000Z","score":88.01111094156902,"sensors":[{"comp":"temp","value":21.459555943806965},{"comp":"humid","value":46.90688832600912},{"comp":"co2","value":536.3111165364584},{"comp":"voc","value":403.45555623372394},{"comp":"dust","value":12.975555419921875}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T14:00:00.000Z","score":87.73333231608073,"sensors":[{"comp":"temp","value":21.369778315226238},{"comp":"humid","value":47.40144348144531},{"comp":"co2","value":545.2111206054688},{"comp":"voc","value":411.5111083984375},{"comp":"dust","value":13.032222112019857}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T13:45:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":21.0685551961263},{"comp":"humid","value":47.72144317626953},{"comp":"co2","value":560.2222290039062},{"comp":"voc","value":423.46666463216144},{"comp":"dust","value":12.98888905843099}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T13:30:00.000Z","score":86.10000101725261,"sensors":[{"comp":"temp","value":20.704999923706055},{"comp":"humid","value":48.09088897705078},{"comp":"co2","value":559.6111043294271},{"comp":"voc","value":429.6333312988281},{"comp":"dust","value":12.945555369059244}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T13:15:00.000Z","score":86.0,"sensors":[{"comp":"temp","value":20.505332946777344},{"comp":"humid","value":47.85499954223633},{"comp":"co2","value":540.522216796875},{"comp":"voc","value":430.57777913411456},{"comp":"dust","value":12.881111145019531}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T13:00:00.000Z","score":86.0,"sensors":[{"comp":"temp","value":20.724555333455402},{"comp":"humid","value":47.96322250366211},{"comp":"co2","value":572.1888834635416},{"comp":"voc","value":452.8555603027344},{"comp":"dust","value":12.713333447774252}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T12:45:00.000Z","score":86.0,"sensors":[{"comp":"temp","value":20.71218427022298},{"comp":"humid","value":47.770076751708984},{"comp":"co2","value":555.7762451171875},{"comp":"voc","value":456.8547871907552},{"comp":"dust","value":12.901609102884928}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T12:30:00.000Z","score":85.98888905843098,"sensors":[{"comp":"temp","value":20.90155537923177},{"comp":"humid","value":47.9814453125},{"comp":"co2","value":595.7333170572916},{"comp":"voc","value":489.4666748046875},{"comp":"dust","value":13.012222290039062}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T12:15:00.000Z","score":85.96666717529297,"sensors":[{"comp":"temp","value":20.83400026957194},{"comp":"humid","value":48.10377883911133},{"comp":"co2","value":599.1333211263021},{"comp":"voc","value":503.46666463216144},{"comp":"dust","value":12.938889185587565}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T12:00:00.000Z","score":85.82222239176433,"sensors":[{"comp":"temp","value":20.95199966430664},{"comp":"humid","value":48.230332692464195},{"comp":"co2","value":611.9666748046875},{"comp":"voc","value":512.5999959309896},{"comp":"dust","value":13.00777784983317}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T11:45:00.000Z","score":85.74444325764973,"sensors":[{"comp":"temp","value":20.945444107055664},{"comp":"humid","value":48.03766632080078},{"comp":"co2","value":598.1888834635416},{"comp":"voc","value":517.6888732910156},{"comp":"dust","value":13.126666704813639}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T11:30:00.000Z","score":85.36666615804036,"sensors":[{"comp":"temp","value":21.157889048258465},{"comp":"humid","value":48.15455627441406},{"comp":"co2","value":634.5555419921875},{"comp":"voc","value":545.0888875325521},{"comp":"dust","value":13.117777824401855}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T11:15:00.000Z","score":85.57777659098308,"sensors":[{"comp":"temp","value":21.17366663614909},{"comp":"humid","value":47.97744496663412},{"comp":"co2","value":623.2999877929688},{"comp":"voc","value":557.2333374023438},{"comp":"dust","value":13.065555254618326}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T11:00:00.000Z","score":85.03333282470703,"sensors":[{"comp":"temp","value":21.34111150105794},{"comp":"humid","value":48.12133280436198},{"comp":"co2","value":658.9888712565104},{"comp":"voc","value":583.9555460611979},{"comp":"dust","value":13.274444580078125}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T10:45:00.000Z","score":84.94444529215495,"sensors":[{"comp":"temp","value":21.28944460550944},{"comp":"humid","value":48.348000844319664},{"comp":"co2","value":675.3333536783854},{"comp":"voc","value":603.8666585286459},{"comp":"dust","value":13.36222235361735}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T10:30:00.000Z","score":85.0,"sensors":[{"comp":"temp","value":21.415969212849934},{"comp":"humid","value":48.32278569539388},{"comp":"co2","value":688.6294962565104},{"comp":"voc","value":615.4885050455729},{"comp":"dust","value":13.210766156514486}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T10:15:00.000Z","score":84.81111145019531,"sensors":[{"comp":"temp","value":21.37844467163086},{"comp":"humid","value":48.28155517578125},{"comp":"co2","value":680.2222290039062},{"comp":"voc","value":624.3555501302084},{"comp":"dust","value":13.168889045715332}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T10:00:00.000Z","score":84.27777608235677,"sensors":[{"comp":"temp","value":21.593111038208008},{"comp":"humid","value":48.39055506388346},{"comp":"co2","value":722.7333374023438},{"comp":"voc","value":657.3333333333334},{"comp":"dust","value":13.131110827128092}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T09:45:00.000Z","score":84.17777760823567,"sensors":[{"comp":"temp","value":21.575222651163738},{"comp":"humid","value":48.50611114501953},{"comp":"co2","value":724.04443359375},{"comp":"voc","value":675.9111124674479},{"comp":"dust","value":12.801111221313477}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T09:30:00.000Z","score":84.0,"sensors":[{"comp":"temp","value":21.711999893188477},{"comp":"humid","value":48.559888203938804},{"comp":"co2","value":751.8333536783854},{"comp":"voc","value":694.2777709960938},{"comp":"dust","value":12.883333206176758}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T09:15:00.000Z","score":85.74444580078125,"sensors":[{"comp":"temp","value":22.46755536397298},{"comp":"humid","value":46.49700037638346},{"comp":"co2","value":775.7555541992188},{"comp":"voc","value":715.8333333333334},{"comp":"dust","value":13.025555610656738}],"indices":[{"comp":"temp","value":-0.20000000794728598},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T09:00:00.000Z","score":87.20889027913411,"sensors":[{"comp":"temp","value":24.109999974568684},{"comp":"humid","value":42.43684387207031},{"comp":"co2","value":763.1444498697916},{"comp":"voc","value":657.564453125},{"comp":"dust","value":13.292222023010254}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.8533333341280619},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T08:45:00.000Z","score":83.5888900756836,"sensors":[{"comp":"temp","value":21.81166712443034},{"comp":"humid","value":48.749000549316406},{"comp":"co2","value":779.7444458007812},{"comp":"voc","value":737.9555460611979},{"comp":"dust","value":13.074444135030111}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T08:30:00.000Z","score":83.0,"sensors":[{"comp":"temp","value":22.035888671875},{"comp":"humid","value":48.88499959309896},{"comp":"co2","value":827.8000081380209},{"comp":"voc","value":764.4000040690104},{"comp":"dust","value":13.3133331934611}],"indices":[{"comp":"temp","value":-0.2444444497426351},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T08:15:00.000Z","score":82.63333384195964,"sensors":[{"comp":"temp","value":22.02566655476888},{"comp":"humid","value":49.25900014241537},{"comp":"co2","value":858.2777709960938},{"comp":"voc","value":787.7777709960938},{"comp":"dust","value":13.371111234029135}],"indices":[{"comp":"temp","value":-0.1444444457689921},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T08:00:00.000Z","score":81.96666463216145,"sensors":[{"comp":"temp","value":22.08455530802409},{"comp":"humid","value":49.567667643229164},{"comp":"co2","value":881.1555582682291},{"comp":"voc","value":808.5333251953125},{"comp":"dust","value":13.428888956705729}],"indices":[{"comp":"temp","value":-0.011111111690600714},{"comp":"humid","value":0.08888889352480571},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T07:45:00.000Z","score":80.94444529215495,"sensors":[{"comp":"temp","value":21.980777740478516},{"comp":"humid","value":50.34411112467448},{"comp":"co2","value":907.7555541992188},{"comp":"voc","value":833.7111206054688},{"comp":"dust","value":14.038888931274414}],"indices":[{"comp":"temp","value":-0.6666666716337204},{"comp":"humid","value":1.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T07:30:00.000Z","score":80.74444580078125,"sensors":[{"comp":"temp","value":22.184999465942383},{"comp":"humid","value":50.39500045776367},{"comp":"co2","value":922.7888997395834},{"comp":"voc","value":852.3444417317709},{"comp":"dust","value":14.358888626098633}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":1.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.6222222248713176},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T07:15:00.000Z","score":80.02222188313802,"sensors":[{"comp":"temp","value":22.224111557006836},{"comp":"humid","value":50.821556091308594},{"comp":"co2","value":944.2777709960938},{"comp":"voc","value":881.7666625976562},{"comp":"dust","value":13.952222188313803}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":1.0},{"comp":"co2","value":0.0},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T07:00:00.000Z","score":79.77164713541667,"sensors":[{"comp":"temp","value":22.363187789916992},{"comp":"humid","value":50.97544733683268},{"comp":"co2","value":965.3723958333334},{"comp":"voc","value":897.6042073567709},{"comp":"dust","value":14.242911656697592}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":1.0},{"comp":"co2","value":0.0},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T06:45:00.000Z","score":79.51111094156902,"sensors":[{"comp":"temp","value":22.32811101277669},{"comp":"humid","value":49.69233194986979},{"comp":"co2","value":992.54443359375},{"comp":"voc","value":920.0111083984375},{"comp":"dust","value":15.126666704813639}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.4444444477558136},{"comp":"co2","value":0.17777778208255768},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T06:30:00.000Z","score":80.0999984741211,"sensors":[{"comp":"temp","value":22.39900016784668},{"comp":"humid","value":48.66166559855143},{"comp":"co2","value":990.1000162760416},{"comp":"voc","value":928.066650390625},{"comp":"dust","value":15.058889071146647}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.13333333656191826},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T06:15:00.000Z","score":79.9000015258789,"sensors":[{"comp":"temp","value":22.352333068847656},{"comp":"humid","value":48.52811177571615},{"comp":"co2","value":1000.0777791341146},{"comp":"voc","value":944.9888916015625},{"comp":"dust","value":14.443333307902018}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.6222222248713175},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T06:00:00.000Z","score":79.7999979654948,"sensors":[{"comp":"temp","value":22.458445231119793},{"comp":"humid","value":48.32977803548177},{"comp":"co2","value":1017.1222330729166},{"comp":"voc","value":957.4000040690104},{"comp":"dust","value":14.912221908569336}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T05:45:00.000Z","score":79.57777913411458,"sensors":[{"comp":"temp","value":22.43255615234375},{"comp":"humid","value":48.14488983154297},{"comp":"co2","value":1024.977783203125},{"comp":"voc","value":973.6777750651041},{"comp":"dust","value":14.625555674235025}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T05:30:00.000Z","score":79.60000101725261,"sensors":[{"comp":"temp","value":22.57455571492513},{"comp":"humid","value":47.92377853393555},{"comp":"co2","value":1045.1000162760417},{"comp":"voc","value":982.5},{"comp":"dust","value":14.274444897969564}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T05:15:00.000Z","score":79.0,"sensors":[{"comp":"temp","value":22.577444712320965},{"comp":"humid","value":48.04133224487305},{"comp":"co2","value":1085.3888753255208},{"comp":"voc","value":1003.3444620768229},{"comp":"dust","value":13.598889032999674}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T05:00:00.000Z","score":78.82222239176433,"sensors":[{"comp":"temp","value":22.72150166829427},{"comp":"humid","value":47.83349100748698},{"comp":"co2","value":1117.6586507161458},{"comp":"voc","value":1015.3536376953125},{"comp":"dust","value":14.015594164530436}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T04:45:00.000Z","score":78.0,"sensors":[{"comp":"temp","value":22.75866635640462},{"comp":"humid","value":48.33633295694987},{"comp":"co2","value":1160.7444254557292},{"comp":"voc","value":1033.1777750651042},{"comp":"dust","value":13.399999936421713}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T04:30:00.000Z","score":78.17777760823567,"sensors":[{"comp":"temp","value":22.74588902791341},{"comp":"humid","value":48.030110677083336},{"comp":"co2","value":1146.1888834635417},{"comp":"voc","value":1032.2888997395833},{"comp":"dust","value":13.858888943990072}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T04:15:00.000Z","score":78.0,"sensors":[{"comp":"temp","value":22.705111821492512},{"comp":"humid","value":48.01988855997721},{"comp":"co2","value":1170.522216796875},{"comp":"voc","value":1047.6999918619792},{"comp":"dust","value":13.428888956705729}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T04:00:00.000Z","score":78.27049763997395,"sensors":[{"comp":"temp","value":22.792559305826824},{"comp":"humid","value":47.67075856526693},{"comp":"co2","value":1140.7084147135417},{"comp":"voc","value":1049.2911783854167},{"comp":"dust","value":13.851839065551758}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T03:45:00.000Z","score":78.0,"sensors":[{"comp":"temp","value":22.795888900756836},{"comp":"humid","value":47.85366566975912},{"comp":"co2","value":1160.2222086588542},{"comp":"voc","value":1064.5111083984375},{"comp":"dust","value":13.691110928853353}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T03:30:00.000Z","score":77.74444580078125,"sensors":[{"comp":"temp","value":22.817333857218426},{"comp":"humid","value":47.832777659098305},{"comp":"co2","value":1156.7777913411458},{"comp":"voc","value":1069.0333658854167},{"comp":"dust","value":13.914444287618002}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T03:15:00.000Z","score":76.92222340901692,"sensors":[{"comp":"temp","value":22.78677813212077},{"comp":"humid","value":48.209554036458336},{"comp":"co2","value":1188.4333089192708},{"comp":"voc","value":1094.7222086588542},{"comp":"dust","value":13.950000127156576}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T03:00:00.000Z","score":76.82222239176433,"sensors":[{"comp":"temp","value":22.880877176920574},{"comp":"humid","value":48.17483901977539},{"comp":"co2","value":1198.4460042317708},{"comp":"voc","value":1107.4655354817708},{"comp":"dust","value":14.09781583150228}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T02:45:00.000Z","score":75.87777709960938,"sensors":[{"comp":"temp","value":22.901777903238933},{"comp":"humid","value":48.58811060587565},{"comp":"co2","value":1227.0333658854167},{"comp":"voc","value":1137.7222493489583},{"comp":"dust","value":14.155555407206217}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T02:30:00.000Z","score":75.72222391764323,"sensors":[{"comp":"temp","value":23.09499994913737},{"comp":"humid","value":48.42388916015625},{"comp":"co2","value":1239.6111246744792},{"comp":"voc","value":1146.7666829427083},{"comp":"dust","value":14.606666882832846}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T02:15:00.000Z","score":74.98888905843098,"sensors":[{"comp":"temp","value":23.16288884480794},{"comp":"humid","value":48.629110972086586},{"comp":"co2","value":1286.36669921875},{"comp":"voc","value":1173.0},{"comp":"dust","value":14.186666488647461}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T02:00:00.000Z","score":74.83333333333333,"sensors":[{"comp":"temp","value":23.314555486043293},{"comp":"humid","value":48.6597785949707},{"comp":"co2","value":1288.86669921875},{"comp":"voc","value":1184.2222086588542},{"comp":"dust","value":14.498888969421387}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T01:45:00.000Z","score":73.06666819254558,"sensors":[{"comp":"temp","value":23.380666732788086},{"comp":"humid","value":49.611778259277344},{"comp":"co2","value":1361.6221923828125},{"comp":"voc","value":1214.1222330729167},{"comp":"dust","value":15.074444770812988}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.29999999205271405},{"comp":"co2","value":1.0},{"comp":"voc","value":2.9111111164093018},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T01:30:00.000Z","score":72.07777913411458,"sensors":[{"comp":"temp","value":23.428999582926433},{"comp":"humid","value":50.192666371663414},{"comp":"co2","value":1384.1000162760417},{"comp":"voc","value":1227.8333333333333},{"comp":"dust","value":15.78000005086263}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.8777777751286825},{"comp":"co2","value":1.0},{"comp":"voc","value":3.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T01:15:00.000Z","score":67.87777964274089,"sensors":[{"comp":"temp","value":23.3135560353597},{"comp":"humid","value":52.900777180989586},{"comp":"co2","value":1566.7444254557292},{"comp":"voc","value":1268.5999755859375},{"comp":"dust","value":16.37000020345052}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":1.0},{"comp":"co2","value":1.7888888915379841},{"comp":"voc","value":3.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T01:00:00.000Z","score":65.56475067138672,"sensors":[{"comp":"temp","value":23.163808186848957},{"comp":"humid","value":54.20052846272787},{"comp":"co2","value":1626.9329833984375},{"comp":"voc","value":1285.8938802083333},{"comp":"dust","value":17.67275873819987}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":1.0},{"comp":"co2","value":2.0},{"comp":"voc","value":3.0},{"comp":"dust","value":1.0900382995605469}]},{"timestamp":"2020-04-04T00:45:00.000Z","score":68.3111089070638,"sensors":[{"comp":"temp","value":22.73977788289388},{"comp":"humid","value":51.44200007120768},{"comp":"co2","value":1470.9333089192708},{"comp":"voc","value":1297.3333333333333},{"comp":"dust","value":16.275555928548176}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.8111111124356588},{"comp":"co2","value":1.4555555582046509},{"comp":"voc","value":3.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T00:30:00.000Z","score":76.31111145019531,"sensors":[{"comp":"temp","value":22.665777842203777},{"comp":"humid","value":47.72699864705404},{"comp":"co2","value":993.9444376627604},{"comp":"voc","value":1267.655517578125},{"comp":"dust","value":13.241111119588217}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.6222222199042639},{"comp":"voc","value":2.866666634877523},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T00:15:00.000Z","score":79.84444427490234,"sensors":[{"comp":"temp","value":22.768667221069336},{"comp":"humid","value":46.21144358317057},{"comp":"co2","value":773.3444417317709},{"comp":"voc","value":1208.1222330729167},{"comp":"dust","value":13.274444580078125}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":2.955555518468221},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-04T00:00:00.000Z","score":79.95555623372395,"sensors":[{"comp":"temp","value":22.81566619873047},{"comp":"humid","value":46.160666147867836},{"comp":"co2","value":751.9111124674479},{"comp":"voc","value":1214.1666666666667},{"comp":"dust","value":13.55222225189209}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":3.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T23:45:00.000Z","score":79.05555470784505,"sensors":[{"comp":"temp","value":22.81266721089681},{"comp":"humid","value":46.47488911946615},{"comp":"co2","value":767.7555541992188},{"comp":"voc","value":1232.7000325520833},{"comp":"dust","value":13.460000038146973}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":3.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T23:30:00.000Z","score":79.32222239176433,"sensors":[{"comp":"temp","value":22.854111353556316},{"comp":"humid","value":46.43255488077799},{"comp":"co2","value":734.04443359375},{"comp":"voc","value":1234.04443359375},{"comp":"dust","value":13.841110865275065}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":3.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T23:15:00.000Z","score":78.82222239176433,"sensors":[{"comp":"temp","value":22.900333404541016},{"comp":"humid","value":46.58655548095703},{"comp":"co2","value":737.7888793945312},{"comp":"voc","value":1246.13330078125},{"comp":"dust","value":14.578888893127441}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":3.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T23:00:00.000Z","score":79.54444376627605,"sensors":[{"comp":"temp","value":23.09561602274577},{"comp":"humid","value":46.080291748046875},{"comp":"co2","value":705.8590291341146},{"comp":"voc","value":1245.1586507161458},{"comp":"dust","value":14.6331418355306}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":3.0},{"comp":"dust","value":1.0333333412806194}]},{"timestamp":"2020-04-03T22:45:00.000Z","score":79.8000005086263,"sensors":[{"comp":"temp","value":23.0396671295166},{"comp":"humid","value":45.809556325276695},{"comp":"co2","value":699.6333414713541},{"comp":"voc","value":1246.3333333333333},{"comp":"dust","value":14.188888867696127}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":3.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T22:30:00.000Z","score":79.6999994913737,"sensors":[{"comp":"temp","value":22.893333435058594},{"comp":"humid","value":45.41399892171224},{"comp":"co2","value":659.2999877929688},{"comp":"voc","value":1244.9111328125},{"comp":"dust","value":15.018888791402182}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":3.0},{"comp":"dust","value":1.0333333412806194}]},{"timestamp":"2020-04-03T22:15:00.000Z","score":80.02222442626953,"sensors":[{"comp":"temp","value":22.871999740600586},{"comp":"humid","value":44.75599924723307},{"comp":"co2","value":636.3111165364584},{"comp":"voc","value":1243.4222412109375},{"comp":"dust","value":14.674444516499838}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":3.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T22:00:00.000Z","score":80.02222188313802,"sensors":[{"comp":"temp","value":22.890222549438477},{"comp":"humid","value":44.66133371988932},{"comp":"co2","value":641.8666585286459},{"comp":"voc","value":1239.522216796875},{"comp":"dust","value":14.491111119588217}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":3.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T21:45:00.000Z","score":80.0,"sensors":[{"comp":"temp","value":22.87244415283203},{"comp":"humid","value":45.009778340657554},{"comp":"co2","value":680.0888875325521},{"comp":"voc","value":1237.5777587890625},{"comp":"dust","value":14.20555559794108}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":3.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T21:30:00.000Z","score":80.12222035725911,"sensors":[{"comp":"temp","value":22.81266721089681},{"comp":"humid","value":44.8184445699056},{"comp":"co2","value":662.2000122070312},{"comp":"voc","value":1231.4666341145833},{"comp":"dust","value":13.883333524068197}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":3.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T21:15:00.000Z","score":79.66666666666667,"sensors":[{"comp":"temp","value":22.720333099365234},{"comp":"humid","value":44.45255661010742},{"comp":"co2","value":631.5777587890625},{"comp":"voc","value":1238.1777750651042},{"comp":"dust","value":15.240000089009603}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":3.0},{"comp":"dust","value":1.0555555423100789}]},{"timestamp":"2020-04-03T21:00:00.000Z","score":80.0,"sensors":[{"comp":"temp","value":22.609371821085613},{"comp":"humid","value":43.87748591105143},{"comp":"co2","value":606.6616617838541},{"comp":"voc","value":1215.2379150390625},{"comp":"dust","value":14.429386774698893}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":3.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T20:45:00.000Z","score":79.85555521647136,"sensors":[{"comp":"temp","value":22.451889038085938},{"comp":"humid","value":44.238999684651695},{"comp":"co2","value":615.8777669270834},{"comp":"voc","value":1219.8333333333333},{"comp":"dust","value":14.703333218892416}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":3.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T20:30:00.000Z","score":79.56666819254558,"sensors":[{"comp":"temp","value":22.292888641357422},{"comp":"humid","value":44.538333892822266},{"comp":"co2","value":622.5},{"comp":"voc","value":1227.699951171875},{"comp":"dust","value":15.121110916137695}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":3.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T20:15:00.000Z","score":79.31111145019531,"sensors":[{"comp":"temp","value":22.174888610839844},{"comp":"humid","value":44.976889292399086},{"comp":"co2","value":636.4222412109375},{"comp":"voc","value":1210.3555094401042},{"comp":"dust","value":16.34333324432373}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":2.9777777989705405},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T20:00:00.000Z","score":80.1099624633789,"sensors":[{"comp":"temp","value":22.051586151123047},{"comp":"humid","value":45.29124450683594},{"comp":"co2","value":630.7689615885416},{"comp":"voc","value":1199.872802734375},{"comp":"dust","value":13.793409665425619}],"indices":[{"comp":"temp","value":-0.1789272055029869},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":2.4222222169240317},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T19:45:00.000Z","score":80.41111246744792,"sensors":[{"comp":"temp","value":22.10788917541504},{"comp":"humid","value":45.361443837483726},{"comp":"co2","value":630.8333333333334},{"comp":"voc","value":1181.4555257161458},{"comp":"dust","value":13.556666692097982}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":2.055555582046509},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T19:30:00.000Z","score":81.12222290039062,"sensors":[{"comp":"temp","value":22.070777893066406},{"comp":"humid","value":45.54755528767904},{"comp":"co2","value":644.8777872721354},{"comp":"voc","value":1128.022216796875},{"comp":"dust","value":13.542222023010254}],"indices":[{"comp":"temp","value":-0.08888888979951541},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T19:15:00.000Z","score":81.85555521647136,"sensors":[{"comp":"temp","value":22.133777618408203},{"comp":"humid","value":45.79088846842448},{"comp":"co2","value":671.0777791341146},{"comp":"voc","value":1051.888895670573},{"comp":"dust","value":14.113333384195963}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":2.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T19:00:00.000Z","score":83.54214477539062,"sensors":[{"comp":"temp","value":22.046599706013996},{"comp":"humid","value":45.9849739074707},{"comp":"co2","value":644.1563313802084},{"comp":"voc","value":897.5486653645834},{"comp":"dust","value":15.374061584472656}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.7931034564971924},{"comp":"dust","value":1.0574712753295898}]},{"timestamp":"2020-04-03T18:45:00.000Z","score":87.39999898274739,"sensors":[{"comp":"temp","value":22.111416816711426},{"comp":"humid","value":46.010667165120445},{"comp":"co2","value":666.5777994791666},{"comp":"voc","value":591.1555582682291},{"comp":"dust","value":13.372222264607748}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T18:30:00.000Z","score":88.60000101725261,"sensors":[{"comp":"temp","value":22.189110438028973},{"comp":"humid","value":46.417667388916016},{"comp":"co2","value":703.3333333333334},{"comp":"voc","value":430.5},{"comp":"dust","value":13.70888900756836}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T18:15:00.000Z","score":88.2111104329427,"sensors":[{"comp":"temp","value":22.351110458374023},{"comp":"humid","value":46.73655573527018},{"comp":"co2","value":699.3222045898438},{"comp":"voc","value":428.52222696940106},{"comp":"dust","value":14.874444007873535}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0555555423100789}]},{"timestamp":"2020-04-03T18:00:00.000Z","score":88.1999994913737,"sensors":[{"comp":"temp","value":22.294110616048176},{"comp":"humid","value":46.942222595214844},{"comp":"co2","value":685.7555541992188},{"comp":"voc","value":427.7111104329427},{"comp":"dust","value":14.723333358764648}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T17:45:00.000Z","score":87.96666717529297,"sensors":[{"comp":"temp","value":22.29599952697754},{"comp":"humid","value":47.54244486490885},{"comp":"co2","value":656.9000040690104},{"comp":"voc","value":435.55556233723956},{"comp":"dust","value":14.752222061157227}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T17:30:00.000Z","score":86.84444427490234,"sensors":[{"comp":"temp","value":22.188555399576824},{"comp":"humid","value":48.67499923706055},{"comp":"co2","value":681.1444295247396},{"comp":"voc","value":451.6666666666667},{"comp":"dust","value":14.837777773539225}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T17:15:00.000Z","score":86.53333282470703,"sensors":[{"comp":"temp","value":22.2309996287028},{"comp":"humid","value":48.94200007120768},{"comp":"co2","value":683.1666666666666},{"comp":"voc","value":470.6666666666667},{"comp":"dust","value":15.248888969421387}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.022222223381201427},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T17:00:00.000Z","score":88.49348704020183,"sensors":[{"comp":"temp","value":22.22024091084798},{"comp":"humid","value":46.62273915608724},{"comp":"co2","value":653.2229817708334},{"comp":"voc","value":443.89808146158856},{"comp":"dust","value":13.849004109700521}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T16:45:00.000Z","score":89.86666870117188,"sensors":[{"comp":"temp","value":22.35766665140788},{"comp":"humid","value":44.33344395955404},{"comp":"co2","value":653.6111246744791},{"comp":"voc","value":414.1555582682292},{"comp":"dust","value":13.218888918558756}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T16:30:00.000Z","score":90.0,"sensors":[{"comp":"temp","value":22.330333073933918},{"comp":"humid","value":44.55799992879232},{"comp":"co2","value":669.3666788736979},{"comp":"voc","value":420.56667073567706},{"comp":"dust","value":12.838888804117838}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T16:15:00.000Z","score":89.63333384195964,"sensors":[{"comp":"temp","value":22.408444086710613},{"comp":"humid","value":44.47344462076823},{"comp":"co2","value":682.7111002604166},{"comp":"voc","value":434.8111165364583},{"comp":"dust","value":12.977777481079102}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T16:00:00.000Z","score":89.28888702392578,"sensors":[{"comp":"temp","value":22.25611114501953},{"comp":"humid","value":45.23311106363932},{"comp":"co2","value":720.8444417317709},{"comp":"voc","value":441.8555501302083},{"comp":"dust","value":12.781111399332682}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-03T15:45:00.000Z","score":88.87777709960938,"sensors":[{"comp":"temp","value":22.342777887980144},{"comp":"humid","value":45.18388875325521},{"comp":"co2","value":692.3222249348959},{"comp":"voc","value":447.6666666666667},{"comp":"dust","value":14.561111132303873}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0333333412806194}]}]}' headers: Alt-Svc: clear Via: 1.1 google access-control-allow-credentials: 'true' access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Accept-Encoding, Accept-Language, Host, Referer, User-Agent access-control-allow-methods: GET, POST, PUT, PATCH, DELETE, OPTIONS access-control-allow-origin: '*' content-type: application/json date: Fri, 10 Apr 2020 15:38:31 GMT server: istio-envoy transfer-encoding: chunked x-envoy-decorator-operation: developer-apis-node-port.default.svc.cluster.local:3000/* x-envoy-upstream-service-time: '172' status: code: 200 message: OK url: https://developer-apis.awair.is/v1/users/self/devices/awair/24947/air-data/15-min-avg?from_date=2020-04-10+10:08:31.252873 version: 1 ahayworth-python_awair-683cb06/tests/fixtures/cassettes/five_minute.yaml000066400000000000000000003702611507173055200270040ustar00rootroot00000000000000interactions: - request: body: null headers: Content-Type: - application/json authorization: - fake_token method: GET uri: https://developer-apis.awair.is/v1/users/self/devices/awair/24947/air-data/5-min-avg?from_date=2020-04-10+10:08:31.002883 response: body: string: '{"data":[{"timestamp":"2020-04-10T15:35:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.777143478393555},{"comp":"humid","value":41.43999953497024},{"comp":"co2","value":647.8571428571429},{"comp":"voc","value":366.6666666666667},{"comp":"dust","value":12.86190482548305}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:30:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.802333450317384},{"comp":"humid","value":41.358333587646484},{"comp":"co2","value":635.5},{"comp":"voc","value":365.2},{"comp":"dust","value":12.943333307902018}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:25:00.000Z","score":88.06666666666666,"sensors":[{"comp":"temp","value":21.859000142415365},{"comp":"humid","value":41.27900009155273},{"comp":"co2","value":621.0},{"comp":"voc","value":364.06666666666666},{"comp":"dust","value":12.849999936421712}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:20:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.876000086466473},{"comp":"humid","value":41.26900011698405},{"comp":"co2","value":625.1},{"comp":"voc","value":363.46666666666664},{"comp":"dust","value":13.069999980926514}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:15:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.725666554768882},{"comp":"humid","value":41.51066665649414},{"comp":"co2","value":632.7},{"comp":"voc","value":362.53333333333336},{"comp":"dust","value":12.726666609446207}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:10:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.708999506632487},{"comp":"humid","value":41.39866650899251},{"comp":"co2","value":633.0666666666667},{"comp":"voc","value":363.56666666666666},{"comp":"dust","value":12.796666685740153}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:05:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.706333033243816},{"comp":"humid","value":41.57300008138021},{"comp":"co2","value":620.6333333333333},{"comp":"voc","value":365.6333333333333},{"comp":"dust","value":13.089999961853028}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:00:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.689666748046875},{"comp":"humid","value":41.65700022379557},{"comp":"co2","value":603.3},{"comp":"voc","value":366.93333333333334},{"comp":"dust","value":13.266666634877522}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:55:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.638333320617676},{"comp":"humid","value":41.62900021870931},{"comp":"co2","value":592.0666666666667},{"comp":"voc","value":367.56666666666666},{"comp":"dust","value":13.17333329518636}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:50:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.590000343322753},{"comp":"humid","value":41.61133371988932},{"comp":"co2","value":592.0666666666667},{"comp":"voc","value":369.9},{"comp":"dust","value":13.15999994277954}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:45:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.537586804093987},{"comp":"humid","value":41.72758615428004},{"comp":"co2","value":587.1379310344828},{"comp":"voc","value":371.7586206896552},{"comp":"dust","value":13.37241373390987}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:40:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.515333684285483},{"comp":"humid","value":41.725999704996745},{"comp":"co2","value":561.8},{"comp":"voc","value":368.03333333333336},{"comp":"dust","value":13.153333314259847}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:35:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.477666155497232},{"comp":"humid","value":41.701666514078774},{"comp":"co2","value":561.2},{"comp":"voc","value":365.06666666666666},{"comp":"dust","value":13.046666653951009}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:30:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.45433292388916},{"comp":"humid","value":41.63133354187012},{"comp":"co2","value":544.9},{"comp":"voc","value":360.7},{"comp":"dust","value":13.126666641235351}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:25:00.000Z","score":87.93333333333334,"sensors":[{"comp":"temp","value":21.455666224161785},{"comp":"humid","value":41.63933334350586},{"comp":"co2","value":526.7666666666667},{"comp":"voc","value":352.2},{"comp":"dust","value":13.453333314259847}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:20:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.44566682179769},{"comp":"humid","value":41.825333786010745},{"comp":"co2","value":529.9},{"comp":"voc","value":345.8333333333333},{"comp":"dust","value":13.263333288828532}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.6666666666666666},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:15:00.000Z","score":88.13333333333334,"sensors":[{"comp":"temp","value":21.446333122253417},{"comp":"humid","value":41.87999992370605},{"comp":"co2","value":520.1333333333333},{"comp":"voc","value":337.53333333333336},{"comp":"dust","value":13.18666664759318}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:10:00.000Z","score":88.26666666666667,"sensors":[{"comp":"temp","value":21.46333293914795},{"comp":"humid","value":42.002333323160805},{"comp":"co2","value":518.8333333333334},{"comp":"voc","value":335.8666666666667},{"comp":"dust","value":13.136666584014893}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:05:00.000Z","score":88.73333333333333,"sensors":[{"comp":"temp","value":21.51066691080729},{"comp":"humid","value":42.0983331044515},{"comp":"co2","value":521.2},{"comp":"voc","value":337.1666666666667},{"comp":"dust","value":13.100000031789143}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:00:00.000Z","score":88.86666666666666,"sensors":[{"comp":"temp","value":21.53366731007894},{"comp":"humid","value":42.1310001373291},{"comp":"co2","value":520.5666666666667},{"comp":"voc","value":337.1666666666667},{"comp":"dust","value":13.146666653951009}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T13:55:00.000Z","score":88.93333435058594,"sensors":[{"comp":"temp","value":21.572999954223633},{"comp":"humid","value":42.0976676940918},{"comp":"co2","value":521.0999755859375},{"comp":"voc","value":335.0666809082031},{"comp":"dust","value":12.953332901000977}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T13:50:00.000Z","score":88.76667022705078,"sensors":[{"comp":"temp","value":21.54599952697754},{"comp":"humid","value":42.10966491699219},{"comp":"co2","value":514.5999755859375},{"comp":"voc","value":334.3333435058594},{"comp":"dust","value":13.34666633605957}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T13:45:00.000Z","score":88.66666412353516,"sensors":[{"comp":"temp","value":21.485666275024414},{"comp":"humid","value":42.32099914550781},{"comp":"co2","value":520.5999755859375},{"comp":"voc","value":335.6333312988281},{"comp":"dust","value":13.350000381469727}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T13:40:00.000Z","score":88.80000305175781,"sensors":[{"comp":"temp","value":21.440332412719727},{"comp":"humid","value":42.61033248901367},{"comp":"co2","value":519.2000122070312},{"comp":"voc","value":338.0},{"comp":"dust","value":13.479999542236328}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T13:35:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":21.432666778564453},{"comp":"humid","value":42.66699981689453},{"comp":"co2","value":523.2999877929688},{"comp":"voc","value":337.1333312988281},{"comp":"dust","value":13.170000076293945}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T13:30:00.000Z","score":88.96666717529297,"sensors":[{"comp":"temp","value":21.437334060668945},{"comp":"humid","value":42.52899932861328},{"comp":"co2","value":511.3999938964844},{"comp":"voc","value":337.0},{"comp":"dust","value":13.183333396911621}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T13:25:00.000Z","score":88.56666564941406,"sensors":[{"comp":"temp","value":21.409666061401367},{"comp":"humid","value":42.58333206176758},{"comp":"co2","value":517.4666748046875},{"comp":"voc","value":337.9666748046875},{"comp":"dust","value":13.319999694824219}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T13:20:00.000Z","score":88.83333587646484,"sensors":[{"comp":"temp","value":21.39666748046875},{"comp":"humid","value":42.685001373291016},{"comp":"co2","value":517.9666748046875},{"comp":"voc","value":340.26666259765625},{"comp":"dust","value":13.213333129882812}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T13:15:00.000Z","score":88.5,"sensors":[{"comp":"temp","value":21.368667602539062},{"comp":"humid","value":42.729000091552734},{"comp":"co2","value":518.0},{"comp":"voc","value":342.0666809082031},{"comp":"dust","value":13.220000267028809}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T13:10:00.000Z","score":88.5999984741211,"sensors":[{"comp":"temp","value":21.363666534423828},{"comp":"humid","value":42.74733352661133},{"comp":"co2","value":515.0},{"comp":"voc","value":342.6333312988281},{"comp":"dust","value":13.149999618530273}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.03333333507180214},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T13:05:00.000Z","score":88.66666412353516,"sensors":[{"comp":"temp","value":21.385665893554688},{"comp":"humid","value":42.81666564941406},{"comp":"co2","value":515.5333251953125},{"comp":"voc","value":343.3999938964844},{"comp":"dust","value":13.239999771118164}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.13333334028720856},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T13:00:00.000Z","score":88.86666870117188,"sensors":[{"comp":"temp","value":21.40833282470703},{"comp":"humid","value":42.935665130615234},{"comp":"co2","value":531.7999877929688},{"comp":"voc","value":344.0666809082031},{"comp":"dust","value":13.223333358764648}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.30000001192092896},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T12:55:00.000Z","score":88.86666870117188,"sensors":[{"comp":"temp","value":21.431333541870117},{"comp":"humid","value":42.94933319091797},{"comp":"co2","value":529.566650390625},{"comp":"voc","value":343.0333251953125},{"comp":"dust","value":13.236666679382324}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.10000000149011612},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T12:50:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":21.380332946777344},{"comp":"humid","value":42.96933364868164},{"comp":"co2","value":522.933349609375},{"comp":"voc","value":341.6666564941406},{"comp":"dust","value":13.173333168029785}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T12:45:00.000Z","score":88.5,"sensors":[{"comp":"temp","value":21.297000885009766},{"comp":"humid","value":42.89833450317383},{"comp":"co2","value":516.8333129882812},{"comp":"voc","value":340.0666809082031},{"comp":"dust","value":13.15333366394043}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T12:40:00.000Z","score":88.4000015258789,"sensors":[{"comp":"temp","value":21.277999877929688},{"comp":"humid","value":42.819332122802734},{"comp":"co2","value":512.2666625976562},{"comp":"voc","value":337.9666748046875},{"comp":"dust","value":13.273333549499512}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T12:35:00.000Z","score":88.79310607910156,"sensors":[{"comp":"temp","value":21.324827194213867},{"comp":"humid","value":42.92586135864258},{"comp":"co2","value":515.3448486328125},{"comp":"voc","value":338.6896667480469},{"comp":"dust","value":13.203448295593262}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T12:30:00.000Z","score":88.83333587646484,"sensors":[{"comp":"temp","value":21.35333251953125},{"comp":"humid","value":42.88066482543945},{"comp":"co2","value":515.3666381835938},{"comp":"voc","value":340.26666259765625},{"comp":"dust","value":13.273333549499512}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T12:25:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":21.389999389648438},{"comp":"humid","value":42.926998138427734},{"comp":"co2","value":520.2666625976562},{"comp":"voc","value":342.73333740234375},{"comp":"dust","value":13.140000343322754}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.03333333507180214},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T12:20:00.000Z","score":88.80000305175781,"sensors":[{"comp":"temp","value":21.363666534423828},{"comp":"humid","value":43.040000915527344},{"comp":"co2","value":524.5333251953125},{"comp":"voc","value":343.8999938964844},{"comp":"dust","value":13.33666706085205}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.20000000298023224},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T12:15:00.000Z","score":88.30000305175781,"sensors":[{"comp":"temp","value":21.256999969482422},{"comp":"humid","value":42.9293327331543},{"comp":"co2","value":516.4000244140625},{"comp":"voc","value":341.1000061035156},{"comp":"dust","value":13.15666675567627}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.03333333507180214},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T12:10:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.196332931518555},{"comp":"humid","value":42.65733337402344},{"comp":"co2","value":509.0333251953125},{"comp":"voc","value":340.0333251953125},{"comp":"dust","value":13.029999732971191}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T12:05:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.194334030151367},{"comp":"humid","value":42.757667541503906},{"comp":"co2","value":512.4000244140625},{"comp":"voc","value":343.26666259765625},{"comp":"dust","value":13.233333587646484}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.1666666716337204},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T12:00:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.16699981689453},{"comp":"humid","value":43.11000061035156},{"comp":"co2","value":525.9666748046875},{"comp":"voc","value":348.4666748046875},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T11:55:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.100000381469727},{"comp":"humid","value":43.19766616821289},{"comp":"co2","value":524.0999755859375},{"comp":"voc","value":347.9666748046875},{"comp":"dust","value":13.25333309173584}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T11:50:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.98900032043457},{"comp":"humid","value":42.91166687011719},{"comp":"co2","value":514.9666748046875},{"comp":"voc","value":346.9666748046875},{"comp":"dust","value":13.083333015441895}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T11:45:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.9776668548584},{"comp":"humid","value":43.064334869384766},{"comp":"co2","value":520.6666870117188},{"comp":"voc","value":349.1666564941406},{"comp":"dust","value":13.133333206176758}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T11:40:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.999666213989258},{"comp":"humid","value":43.499332427978516},{"comp":"co2","value":533.066650390625},{"comp":"voc","value":350.26666259765625},{"comp":"dust","value":13.023333549499512}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T11:35:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.98466682434082},{"comp":"humid","value":43.46266555786133},{"comp":"co2","value":532.2999877929688},{"comp":"voc","value":349.8666687011719},{"comp":"dust","value":12.953332901000977}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.9666666388511658},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T11:30:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.846332550048828},{"comp":"humid","value":43.20033264160156},{"comp":"co2","value":525.5},{"comp":"voc","value":348.26666259765625},{"comp":"dust","value":13.09333324432373}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T11:25:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.770999908447266},{"comp":"humid","value":43.08000183105469},{"comp":"co2","value":522.9666748046875},{"comp":"voc","value":347.6666564941406},{"comp":"dust","value":13.006667137145996}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T11:20:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.785667419433594},{"comp":"humid","value":43.57033157348633},{"comp":"co2","value":535.6333618164062},{"comp":"voc","value":350.23333740234375},{"comp":"dust","value":13.103333473205566}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T11:15:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.79366683959961},{"comp":"humid","value":43.6619987487793},{"comp":"co2","value":540.8333129882812},{"comp":"voc","value":349.0666809082031},{"comp":"dust","value":13.123332977294922}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T11:10:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.601999282836914},{"comp":"humid","value":43.952999114990234},{"comp":"co2","value":545.3666381835938},{"comp":"voc","value":346.79998779296875},{"comp":"dust","value":12.829999923706055}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.9333333373069763},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T11:05:00.000Z","score":87.69999694824219,"sensors":[{"comp":"temp","value":20.400333404541016},{"comp":"humid","value":43.909000396728516},{"comp":"co2","value":538.9666748046875},{"comp":"voc","value":343.3666687011719},{"comp":"dust","value":12.883333206176758}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.1666666716337204},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T11:00:00.000Z","score":87.06666564941406,"sensors":[{"comp":"temp","value":20.30666732788086},{"comp":"humid","value":43.538333892822266},{"comp":"co2","value":532.6333618164062},{"comp":"voc","value":341.6333312988281},{"comp":"dust","value":12.883333206176758}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T10:55:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.270334243774414},{"comp":"humid","value":43.68633270263672},{"comp":"co2","value":540.3333129882812},{"comp":"voc","value":342.3333435058594},{"comp":"dust","value":13.213333129882812}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T10:50:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.25666618347168},{"comp":"humid","value":43.632999420166016},{"comp":"co2","value":536.3333129882812},{"comp":"voc","value":341.5333251953125},{"comp":"dust","value":12.936666488647461}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T10:45:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.239665985107422},{"comp":"humid","value":43.689998626708984},{"comp":"co2","value":542.2999877929688},{"comp":"voc","value":342.0666809082031},{"comp":"dust","value":12.943333625793457}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T10:40:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.213104248046875},{"comp":"humid","value":43.81413650512695},{"comp":"co2","value":543.586181640625},{"comp":"voc","value":338.4827575683594},{"comp":"dust","value":13.124137878417969}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T10:35:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.10700035095215},{"comp":"humid","value":43.3476676940918},{"comp":"co2","value":521.3666381835938},{"comp":"voc","value":327.6000061035156},{"comp":"dust","value":12.983333587646484}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T10:30:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.086000442504883},{"comp":"humid","value":42.79499816894531},{"comp":"co2","value":504.1000061035156},{"comp":"voc","value":314.8333435058594},{"comp":"dust","value":13.013333320617676}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T10:25:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.13166618347168},{"comp":"humid","value":42.777000427246094},{"comp":"co2","value":504.9666748046875},{"comp":"voc","value":317.3999938964844},{"comp":"dust","value":13.126667022705078}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T10:20:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.19766616821289},{"comp":"humid","value":42.9370002746582},{"comp":"co2","value":511.20001220703125},{"comp":"voc","value":318.4333190917969},{"comp":"dust","value":13.039999961853027}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T10:15:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.16933250427246},{"comp":"humid","value":42.823001861572266},{"comp":"co2","value":503.1666564941406},{"comp":"voc","value":315.9333190917969},{"comp":"dust","value":12.976666450500488}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T10:10:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.237667083740234},{"comp":"humid","value":43.082000732421875},{"comp":"co2","value":513.0333251953125},{"comp":"voc","value":322.6333312988281},{"comp":"dust","value":13.056666374206543}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T10:05:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.31566619873047},{"comp":"humid","value":43.51433181762695},{"comp":"co2","value":532.4666748046875},{"comp":"voc","value":332.9333190917969},{"comp":"dust","value":12.983333587646484}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T10:00:00.000Z","score":87.03333282470703,"sensors":[{"comp":"temp","value":20.365333557128906},{"comp":"humid","value":43.31533432006836},{"comp":"co2","value":538.1333618164062},{"comp":"voc","value":337.29998779296875},{"comp":"dust","value":13.050000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T09:55:00.000Z","score":87.16666412353516,"sensors":[{"comp":"temp","value":20.46266746520996},{"comp":"humid","value":43.01533508300781},{"comp":"co2","value":542.3666381835938},{"comp":"voc","value":334.79998779296875},{"comp":"dust","value":12.946666717529297}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T09:50:00.000Z","score":87.69999694824219,"sensors":[{"comp":"temp","value":20.57266616821289},{"comp":"humid","value":42.977333068847656},{"comp":"co2","value":549.4666748046875},{"comp":"voc","value":336.20001220703125},{"comp":"dust","value":12.819999694824219}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T09:45:00.000Z","score":87.73332977294922,"sensors":[{"comp":"temp","value":20.54400062561035},{"comp":"humid","value":43.26100158691406},{"comp":"co2","value":548.433349609375},{"comp":"voc","value":336.79998779296875},{"comp":"dust","value":12.986666679382324}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T09:40:00.000Z","score":87.4000015258789,"sensors":[{"comp":"temp","value":20.385000228881836},{"comp":"humid","value":43.24266815185547},{"comp":"co2","value":521.0333251953125},{"comp":"voc","value":334.3666687011719},{"comp":"dust","value":12.923333168029785}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T09:35:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.368999481201172},{"comp":"humid","value":42.98666763305664},{"comp":"co2","value":520.9000244140625},{"comp":"voc","value":338.1666564941406},{"comp":"dust","value":13.056666374206543}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T09:30:00.000Z","score":87.0999984741211,"sensors":[{"comp":"temp","value":20.450000762939453},{"comp":"humid","value":43.26166534423828},{"comp":"co2","value":548.2999877929688},{"comp":"voc","value":345.5333251953125},{"comp":"dust","value":13.046667098999023}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.6333333253860474},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T09:25:00.000Z","score":87.83333587646484,"sensors":[{"comp":"temp","value":20.67799949645996},{"comp":"humid","value":43.189666748046875},{"comp":"co2","value":569.3333129882812},{"comp":"voc","value":350.0666809082031},{"comp":"dust","value":12.880000114440918}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T09:20:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.152666091918945},{"comp":"humid","value":41.8390007019043},{"comp":"co2","value":566.3333129882812},{"comp":"voc","value":348.6333312988281},{"comp":"dust","value":13.140000343322754}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T09:15:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.54599952697754},{"comp":"humid","value":40.6336669921875},{"comp":"co2","value":562.6333618164062},{"comp":"voc","value":348.23333740234375},{"comp":"dust","value":13.126667022705078}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T09:10:00.000Z","score":87.16666412353516,"sensors":[{"comp":"temp","value":21.946332931518555},{"comp":"humid","value":39.10100173950195},{"comp":"co2","value":541.5999755859375},{"comp":"voc","value":339.26666259765625},{"comp":"dust","value":13.083333015441895}],"indices":[{"comp":"temp","value":-0.6000000238418579},{"comp":"humid","value":-0.9666666388511658},{"comp":"co2","value":0.0},{"comp":"voc","value":0.1666666716337204},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T09:05:00.000Z","score":86.0999984741211,"sensors":[{"comp":"temp","value":22.375999450683594},{"comp":"humid","value":37.25166702270508},{"comp":"co2","value":509.1000061035156},{"comp":"voc","value":332.73333740234375},{"comp":"dust","value":13.116666793823242}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":-1.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T09:00:00.000Z","score":86.13333129882812,"sensors":[{"comp":"temp","value":22.882667541503906},{"comp":"humid","value":36.21366500854492},{"comp":"co2","value":491.4333190917969},{"comp":"voc","value":305.0666809082031},{"comp":"dust","value":13.236666679382324}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":-1.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.4333333373069763},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T08:55:00.000Z","score":87.04000091552734,"sensors":[{"comp":"temp","value":20.781200408935547},{"comp":"humid","value":41.6619987487793},{"comp":"co2","value":499.760009765625},{"comp":"voc","value":309.0},{"comp":"dust","value":13.064000129699707}],"indices":[{"comp":"temp","value":-0.8399999737739563},{"comp":"humid","value":-0.1599999964237213},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T08:50:00.000Z","score":87.06666564941406,"sensors":[{"comp":"temp","value":20.398666381835938},{"comp":"humid","value":43.0880012512207},{"comp":"co2","value":537.0},{"comp":"voc","value":339.0333251953125},{"comp":"dust","value":12.943333625793457}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T08:45:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.316667556762695},{"comp":"humid","value":43.0706672668457},{"comp":"co2","value":519.8666381835938},{"comp":"voc","value":335.5666809082031},{"comp":"dust","value":13.103333473205566}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T08:40:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.3700008392334},{"comp":"humid","value":43.33466720581055},{"comp":"co2","value":533.3666381835938},{"comp":"voc","value":343.6000061035156},{"comp":"dust","value":13.013333320617676}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.46666666865348816},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T08:35:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.385334014892578},{"comp":"humid","value":43.31733322143555},{"comp":"co2","value":542.1333618164062},{"comp":"voc","value":345.6666564941406},{"comp":"dust","value":13.226666450500488}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.5666666626930237},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T08:30:00.000Z","score":87.06666564941406,"sensors":[{"comp":"temp","value":20.39466667175293},{"comp":"humid","value":43.08133316040039},{"comp":"co2","value":533.4666748046875},{"comp":"voc","value":337.5},{"comp":"dust","value":12.949999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T08:25:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.43433380126953},{"comp":"humid","value":42.5880012512207},{"comp":"co2","value":530.3666381835938},{"comp":"voc","value":339.26666259765625},{"comp":"dust","value":13.083333015441895}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.20000000298023224},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T08:20:00.000Z","score":87.4000015258789,"sensors":[{"comp":"temp","value":20.66666603088379},{"comp":"humid","value":42.981998443603516},{"comp":"co2","value":559.1333618164062},{"comp":"voc","value":351.3666687011719},{"comp":"dust","value":13.079999923706055}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T08:15:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.709333419799805},{"comp":"humid","value":43.3043327331543},{"comp":"co2","value":558.9666748046875},{"comp":"voc","value":350.9666748046875},{"comp":"dust","value":13.083333015441895}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T08:10:00.000Z","score":87.36666870117188,"sensors":[{"comp":"temp","value":20.527334213256836},{"comp":"humid","value":43.21666717529297},{"comp":"co2","value":519.2999877929688},{"comp":"voc","value":341.76666259765625},{"comp":"dust","value":13.210000038146973}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.2666666805744171},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T08:05:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.517000198364258},{"comp":"humid","value":42.933998107910156},{"comp":"co2","value":518.9000244140625},{"comp":"voc","value":343.29998779296875},{"comp":"dust","value":13.569999694824219}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.1666666716337204},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T08:00:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.562999725341797},{"comp":"humid","value":42.926998138427734},{"comp":"co2","value":527.8333129882812},{"comp":"voc","value":349.3999938964844},{"comp":"dust","value":13.183333396911621}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T07:55:00.000Z","score":87.06666564941406,"sensors":[{"comp":"temp","value":20.63166618347168},{"comp":"humid","value":43.09299850463867},{"comp":"co2","value":551.5},{"comp":"voc","value":359.73333740234375},{"comp":"dust","value":13.036666870117188}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T07:50:00.000Z","score":87.56666564941406,"sensors":[{"comp":"temp","value":20.68166732788086},{"comp":"humid","value":43.51133346557617},{"comp":"co2","value":580.5999755859375},{"comp":"voc","value":365.8999938964844},{"comp":"dust","value":13.170000076293945}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T07:45:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.534000396728516},{"comp":"humid","value":43.75033187866211},{"comp":"co2","value":578.6666870117188},{"comp":"voc","value":363.3666687011719},{"comp":"dust","value":13.196666717529297}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T07:40:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.482666015625},{"comp":"humid","value":43.606666564941406},{"comp":"co2","value":554.7999877929688},{"comp":"voc","value":353.8999938964844},{"comp":"dust","value":13.083333015441895}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.9333333373069763},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T07:35:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.395666122436523},{"comp":"humid","value":42.857666015625},{"comp":"co2","value":527.1666870117188},{"comp":"voc","value":342.8999938964844},{"comp":"dust","value":12.890000343322754}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.03333333507180214},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T07:30:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.441333770751953},{"comp":"humid","value":42.79066848754883},{"comp":"co2","value":540.0},{"comp":"voc","value":347.0333251953125},{"comp":"dust","value":12.930000305175781}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.8999999761581421},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T07:25:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.516000747680664},{"comp":"humid","value":42.87300109863281},{"comp":"co2","value":550.2000122070312},{"comp":"voc","value":353.5},{"comp":"dust","value":13.076666831970215}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T07:20:00.000Z","score":87.26667022705078,"sensors":[{"comp":"temp","value":20.70400047302246},{"comp":"humid","value":43.005332946777344},{"comp":"co2","value":585.2999877929688},{"comp":"voc","value":367.1333312988281},{"comp":"dust","value":12.99666690826416}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T07:15:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":20.827999114990234},{"comp":"humid","value":43.305999755859375},{"comp":"co2","value":588.433349609375},{"comp":"voc","value":365.6666564941406},{"comp":"dust","value":12.986666679382324}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T07:10:00.000Z","score":87.5862045288086,"sensors":[{"comp":"temp","value":20.711380004882812},{"comp":"humid","value":43.16206741333008},{"comp":"co2","value":546.8965454101562},{"comp":"voc","value":348.7241516113281},{"comp":"dust","value":13.158620834350586}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.5517241358757019},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T07:05:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":20.71733283996582},{"comp":"humid","value":42.672332763671875},{"comp":"co2","value":535.566650390625},{"comp":"voc","value":344.0333251953125},{"comp":"dust","value":13.243332862854004}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.3333333432674408},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T07:00:00.000Z","score":87.30000305175781,"sensors":[{"comp":"temp","value":20.808000564575195},{"comp":"humid","value":42.558998107910156},{"comp":"co2","value":537.9666748046875},{"comp":"voc","value":348.0333251953125},{"comp":"dust","value":13.149999618530273}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.9333333373069763},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T06:55:00.000Z","score":87.33333587646484,"sensors":[{"comp":"temp","value":20.89033317565918},{"comp":"humid","value":42.64899826049805},{"comp":"co2","value":556.3666381835938},{"comp":"voc","value":354.6000061035156},{"comp":"dust","value":13.390000343322754}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T06:50:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.064332962036133},{"comp":"humid","value":42.87666702270508},{"comp":"co2","value":592.6333618164062},{"comp":"voc","value":366.70001220703125},{"comp":"dust","value":13.283333778381348}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T06:45:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.213666915893555},{"comp":"humid","value":43.17566680908203},{"comp":"co2","value":593.8333129882812},{"comp":"voc","value":365.0},{"comp":"dust","value":13.296667098999023}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T06:40:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.147666931152344},{"comp":"humid","value":43.128665924072266},{"comp":"co2","value":553.9666748046875},{"comp":"voc","value":348.76666259765625},{"comp":"dust","value":13.533333778381348}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.6000000238418579},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T06:35:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.124000549316406},{"comp":"humid","value":42.65599822998047},{"comp":"co2","value":542.4666748046875},{"comp":"voc","value":344.20001220703125},{"comp":"dust","value":13.383333206176758}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.30000001192092896},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T06:30:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.167667388916016},{"comp":"humid","value":42.647335052490234},{"comp":"co2","value":546.1333618164062},{"comp":"voc","value":348.3333435058594},{"comp":"dust","value":13.640000343322754}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T06:25:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.214000701904297},{"comp":"humid","value":42.615333557128906},{"comp":"co2","value":569.5999755859375},{"comp":"voc","value":356.6333312988281},{"comp":"dust","value":13.316666603088379}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T06:20:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.326000213623047},{"comp":"humid","value":42.823001861572266},{"comp":"co2","value":605.7333374023438},{"comp":"voc","value":368.79998779296875},{"comp":"dust","value":13.210000038146973}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T06:15:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.456666946411133},{"comp":"humid","value":42.999332427978516},{"comp":"co2","value":614.0999755859375},{"comp":"voc","value":370.8999938964844},{"comp":"dust","value":13.5600004196167}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T06:10:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.393999099731445},{"comp":"humid","value":43.00566482543945},{"comp":"co2","value":587.933349609375},{"comp":"voc","value":363.0},{"comp":"dust","value":13.899999618530273}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T06:05:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.339332580566406},{"comp":"humid","value":42.615333557128906},{"comp":"co2","value":573.7666625976562},{"comp":"voc","value":357.8999938964844},{"comp":"dust","value":13.350000381469727}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T06:00:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.37827491760254},{"comp":"humid","value":42.50862121582031},{"comp":"co2","value":580.862060546875},{"comp":"voc","value":361.3793029785156},{"comp":"dust","value":13.38620662689209}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T05:55:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.42300033569336},{"comp":"humid","value":42.50833511352539},{"comp":"co2","value":602.2999877929688},{"comp":"voc","value":369.79998779296875},{"comp":"dust","value":13.333333015441895}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T05:50:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.514333724975586},{"comp":"humid","value":42.70333480834961},{"comp":"co2","value":649.9000244140625},{"comp":"voc","value":385.6000061035156},{"comp":"dust","value":13.3100004196167}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T05:45:00.000Z","score":87.80000305175781,"sensors":[{"comp":"temp","value":21.646333694458008},{"comp":"humid","value":42.95333480834961},{"comp":"co2","value":681.433349609375},{"comp":"voc","value":392.0333251953125},{"comp":"dust","value":13.920000076293945}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T05:40:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.560667037963867},{"comp":"humid","value":43.044334411621094},{"comp":"co2","value":661.2666625976562},{"comp":"voc","value":387.8666687011719},{"comp":"dust","value":13.170000076293945}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T05:35:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.492666244506836},{"comp":"humid","value":42.61466598510742},{"comp":"co2","value":650.5},{"comp":"voc","value":384.79998779296875},{"comp":"dust","value":13.146666526794434}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T05:30:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.50433349609375},{"comp":"humid","value":42.61066818237305},{"comp":"co2","value":655.7666625976562},{"comp":"voc","value":388.4666748046875},{"comp":"dust","value":13.350000381469727}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T05:25:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.54433250427246},{"comp":"humid","value":42.49800109863281},{"comp":"co2","value":657.5},{"comp":"voc","value":393.29998779296875},{"comp":"dust","value":13.25333309173584}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T05:20:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.65766716003418},{"comp":"humid","value":42.590667724609375},{"comp":"co2","value":679.4666748046875},{"comp":"voc","value":406.3333435058594},{"comp":"dust","value":12.963333129882812}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T05:15:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.81166648864746},{"comp":"humid","value":42.74599838256836},{"comp":"co2","value":694.433349609375},{"comp":"voc","value":414.6000061035156},{"comp":"dust","value":13.073333740234375}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T05:10:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.829334259033203},{"comp":"humid","value":42.86433410644531},{"comp":"co2","value":703.6666870117188},{"comp":"voc","value":415.8333435058594},{"comp":"dust","value":13.09666633605957}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T05:05:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.724000930786133},{"comp":"humid","value":42.862998962402344},{"comp":"co2","value":692.7999877929688},{"comp":"voc","value":412.0},{"comp":"dust","value":12.916666984558105}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T05:00:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.729310989379883},{"comp":"humid","value":42.778621673583984},{"comp":"co2","value":690.8275756835938},{"comp":"voc","value":415.4482727050781},{"comp":"dust","value":12.972414016723633}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T04:55:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.743667602539062},{"comp":"humid","value":42.900333404541016},{"comp":"co2","value":701.433349609375},{"comp":"voc","value":422.76666259765625},{"comp":"dust","value":13.366666793823242}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T04:50:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.819334030151367},{"comp":"humid","value":43.022335052490234},{"comp":"co2","value":723.1333618164062},{"comp":"voc","value":435.4333190917969},{"comp":"dust","value":13.069999694824219}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T04:45:00.000Z","score":87.86666870117188,"sensors":[{"comp":"temp","value":21.930334091186523},{"comp":"humid","value":43.124332427978516},{"comp":"co2","value":746.6666870117188},{"comp":"voc","value":444.1000061035156},{"comp":"dust","value":13.366666793823242}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T04:40:00.000Z","score":87.46666717529297,"sensors":[{"comp":"temp","value":21.90333366394043},{"comp":"humid","value":43.343666076660156},{"comp":"co2","value":752.2333374023438},{"comp":"voc","value":448.5333251953125},{"comp":"dust","value":13.84666633605957}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T04:35:00.000Z","score":87.53333282470703,"sensors":[{"comp":"temp","value":21.795000076293945},{"comp":"humid","value":43.39899826049805},{"comp":"co2","value":745.0999755859375},{"comp":"voc","value":442.9666748046875},{"comp":"dust","value":13.473333358764648}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T04:30:00.000Z","score":87.26667022705078,"sensors":[{"comp":"temp","value":21.784334182739258},{"comp":"humid","value":43.268001556396484},{"comp":"co2","value":746.066650390625},{"comp":"voc","value":443.5},{"comp":"dust","value":13.686666488647461}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T04:25:00.000Z","score":87.23332977294922,"sensors":[{"comp":"temp","value":21.80699920654297},{"comp":"humid","value":43.29966735839844},{"comp":"co2","value":746.0999755859375},{"comp":"voc","value":449.70001220703125},{"comp":"dust","value":14.130000114440918}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T04:20:00.000Z","score":87.26667022705078,"sensors":[{"comp":"temp","value":21.883333206176758},{"comp":"humid","value":43.4119987487793},{"comp":"co2","value":766.0},{"comp":"voc","value":461.76666259765625},{"comp":"dust","value":13.723333358764648}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T04:15:00.000Z","score":87.13333129882812,"sensors":[{"comp":"temp","value":21.98900032043457},{"comp":"humid","value":43.470001220703125},{"comp":"co2","value":780.566650390625},{"comp":"voc","value":470.4333190917969},{"comp":"dust","value":13.84666633605957}],"indices":[{"comp":"temp","value":-0.7333333492279053},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T04:10:00.000Z","score":86.96666717529297,"sensors":[{"comp":"temp","value":22.011333465576172},{"comp":"humid","value":43.58866500854492},{"comp":"co2","value":794.2000122070312},{"comp":"voc","value":474.0},{"comp":"dust","value":14.286666870117188}],"indices":[{"comp":"temp","value":-0.20000000298023224},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T04:05:00.000Z","score":87.53333282470703,"sensors":[{"comp":"temp","value":21.91266632080078},{"comp":"humid","value":43.64899826049805},{"comp":"co2","value":781.9000244140625},{"comp":"voc","value":460.6333312988281},{"comp":"dust","value":13.449999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T04:00:00.000Z","score":87.0999984741211,"sensors":[{"comp":"temp","value":21.874000549316406},{"comp":"humid","value":43.534000396728516},{"comp":"co2","value":761.433349609375},{"comp":"voc","value":457.0333251953125},{"comp":"dust","value":14.600000381469727}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T03:55:00.000Z","score":87.16666412353516,"sensors":[{"comp":"temp","value":21.888334274291992},{"comp":"humid","value":43.55966567993164},{"comp":"co2","value":759.7000122070312},{"comp":"voc","value":461.5333251953125},{"comp":"dust","value":13.869999885559082}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T03:50:00.000Z","score":86.80000305175781,"sensors":[{"comp":"temp","value":21.94966697692871},{"comp":"humid","value":43.70399856567383},{"comp":"co2","value":787.6666870117188},{"comp":"voc","value":473.70001220703125},{"comp":"dust","value":14.58666706085205}],"indices":[{"comp":"temp","value":-0.9333333373069763},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T03:45:00.000Z","score":86.86666870117188,"sensors":[{"comp":"temp","value":22.071332931518555},{"comp":"humid","value":43.858333587646484},{"comp":"co2","value":813.4666748046875},{"comp":"voc","value":485.5666809082031},{"comp":"dust","value":14.916666984558105}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T03:40:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":22.103666305541992},{"comp":"humid","value":44.0196647644043},{"comp":"co2","value":819.6333618164062},{"comp":"voc","value":490.0333251953125},{"comp":"dust","value":14.876667022705078}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T03:35:00.000Z","score":86.73332977294922,"sensors":[{"comp":"temp","value":22.02666664123535},{"comp":"humid","value":44.236331939697266},{"comp":"co2","value":820.8333129882812},{"comp":"voc","value":488.70001220703125},{"comp":"dust","value":15.399999618530273}],"indices":[{"comp":"temp","value":-0.36666667461395264},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T03:30:00.000Z","score":87.03333282470703,"sensors":[{"comp":"temp","value":21.969667434692383},{"comp":"humid","value":44.02366638183594},{"comp":"co2","value":794.933349609375},{"comp":"voc","value":480.8333435058594},{"comp":"dust","value":14.143333435058594}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T03:25:00.000Z","score":87.0,"sensors":[{"comp":"temp","value":22.020000457763672},{"comp":"humid","value":43.81666564941406},{"comp":"co2","value":783.6666870117188},{"comp":"voc","value":483.3333435058594},{"comp":"dust","value":14.75333309173584}],"indices":[{"comp":"temp","value":-0.23333333432674408},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T03:20:00.000Z","score":86.46666717529297,"sensors":[{"comp":"temp","value":22.1026668548584},{"comp":"humid","value":44.018001556396484},{"comp":"co2","value":814.3333129882812},{"comp":"voc","value":502.23333740234375},{"comp":"dust","value":15.743332862854004}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T03:15:00.000Z","score":82.93333435058594,"sensors":[{"comp":"temp","value":22.224000930786133},{"comp":"humid","value":44.30799865722656},{"comp":"co2","value":839.2333374023438},{"comp":"voc","value":517.7000122070312},{"comp":"dust","value":26.100000381469727}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.7999999523162842}]},{"timestamp":"2020-04-10T03:10:00.000Z","score":86.69999694824219,"sensors":[{"comp":"temp","value":22.225666046142578},{"comp":"humid","value":44.57733154296875},{"comp":"co2","value":854.8666381835938},{"comp":"voc","value":523.0333251953125},{"comp":"dust","value":15.606666564941406}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T03:05:00.000Z","score":86.37931060791016,"sensors":[{"comp":"temp","value":22.124828338623047},{"comp":"humid","value":44.63517379760742},{"comp":"co2","value":849.7930908203125},{"comp":"voc","value":519.5172119140625},{"comp":"dust","value":16.144826889038086}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T03:00:00.000Z","score":86.19999694824219,"sensors":[{"comp":"temp","value":22.12933349609375},{"comp":"humid","value":44.30533218383789},{"comp":"co2","value":830.9000244140625},{"comp":"voc","value":514.2999877929688},{"comp":"dust","value":16.41666603088379}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T02:55:00.000Z","score":86.9000015258789,"sensors":[{"comp":"temp","value":22.136999130249023},{"comp":"humid","value":43.784000396728516},{"comp":"co2","value":790.3666381835938},{"comp":"voc","value":502.1000061035156},{"comp":"dust","value":14.776666641235352}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T02:50:00.000Z","score":86.80000305175781,"sensors":[{"comp":"temp","value":22.216333389282227},{"comp":"humid","value":43.70000076293945},{"comp":"co2","value":815.1666870117188},{"comp":"voc","value":509.6666564941406},{"comp":"dust","value":14.726666450500488}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T02:45:00.000Z","score":85.69999694824219,"sensors":[{"comp":"temp","value":22.30500030517578},{"comp":"humid","value":43.76900100708008},{"comp":"co2","value":834.4666748046875},{"comp":"voc","value":518.7666625976562},{"comp":"dust","value":17.139999389648438}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0333333015441895}]},{"timestamp":"2020-04-10T02:40:00.000Z","score":85.93333435058594,"sensors":[{"comp":"temp","value":22.28533363342285},{"comp":"humid","value":43.87266540527344},{"comp":"co2","value":834.1333618164062},{"comp":"voc","value":522.6333618164062},{"comp":"dust","value":16.71666717529297}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T02:35:00.000Z","score":85.30000305175781,"sensors":[{"comp":"temp","value":22.194665908813477},{"comp":"humid","value":43.85599899291992},{"comp":"co2","value":813.2666625976562},{"comp":"voc","value":516.0333251953125},{"comp":"dust","value":18.81333351135254}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.2333333492279053}]},{"timestamp":"2020-04-10T02:30:00.000Z","score":85.9000015258789,"sensors":[{"comp":"temp","value":22.196332931518555},{"comp":"humid","value":43.84199905395508},{"comp":"co2","value":811.1333618164062},{"comp":"voc","value":519.566650390625},{"comp":"dust","value":17.290000915527344}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0333333015441895}]},{"timestamp":"2020-04-10T02:25:00.000Z","score":86.19999694824219,"sensors":[{"comp":"temp","value":22.236665725708008},{"comp":"humid","value":43.69766616821289},{"comp":"co2","value":807.566650390625},{"comp":"voc","value":524.7999877929688},{"comp":"dust","value":16.020000457763672}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T02:20:00.000Z","score":86.26667022705078,"sensors":[{"comp":"temp","value":22.316999435424805},{"comp":"humid","value":43.70399856567383},{"comp":"co2","value":829.3666381835938},{"comp":"voc","value":539.7333374023438},{"comp":"dust","value":15.506667137145996}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T02:15:00.000Z","score":85.5,"sensors":[{"comp":"temp","value":22.439666748046875},{"comp":"humid","value":43.813331604003906},{"comp":"co2","value":860.0999755859375},{"comp":"voc","value":553.1333618164062},{"comp":"dust","value":17.176666259765625}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T02:10:00.000Z","score":84.66666412353516,"sensors":[{"comp":"temp","value":22.443666458129883},{"comp":"humid","value":44.00566482543945},{"comp":"co2","value":876.0},{"comp":"voc","value":562.433349609375},{"comp":"dust","value":18.979999542236328}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T02:05:00.000Z","score":84.36666870117188,"sensors":[{"comp":"temp","value":22.38433265686035},{"comp":"humid","value":44.20633316040039},{"comp":"co2","value":855.2999877929688},{"comp":"voc","value":563.0333251953125},{"comp":"dust","value":20.25666618347168}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.2666666507720947}]},{"timestamp":"2020-04-10T02:00:00.000Z","score":84.69999694824219,"sensors":[{"comp":"temp","value":22.319665908813477},{"comp":"humid","value":43.830665588378906},{"comp":"co2","value":823.6666870117188},{"comp":"voc","value":556.6666870117188},{"comp":"dust","value":19.860000610351562}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.2333333492279053}]},{"timestamp":"2020-04-10T01:55:00.000Z","score":85.4000015258789,"sensors":[{"comp":"temp","value":22.385334014892578},{"comp":"humid","value":43.959999084472656},{"comp":"co2","value":836.066650390625},{"comp":"voc","value":566.9666748046875},{"comp":"dust","value":17.53333282470703}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T01:50:00.000Z","score":85.26667022705078,"sensors":[{"comp":"temp","value":22.441667556762695},{"comp":"humid","value":43.973331451416016},{"comp":"co2","value":847.933349609375},{"comp":"voc","value":578.5},{"comp":"dust","value":17.469999313354492}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T01:45:00.000Z","score":84.33333587646484,"sensors":[{"comp":"temp","value":22.628665924072266},{"comp":"humid","value":44.134334564208984},{"comp":"co2","value":887.4000244140625},{"comp":"voc","value":599.1333618164062},{"comp":"dust","value":19.593334197998047}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T01:40:00.000Z","score":84.03333282470703,"sensors":[{"comp":"temp","value":22.687334060668945},{"comp":"humid","value":44.308998107910156},{"comp":"co2","value":902.2666625976562},{"comp":"voc","value":612.5333251953125},{"comp":"dust","value":20.143333435058594}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T01:35:00.000Z","score":83.0,"sensors":[{"comp":"temp","value":22.6473331451416},{"comp":"humid","value":44.621334075927734},{"comp":"co2","value":885.7333374023438},{"comp":"voc","value":614.9666748046875},{"comp":"dust","value":23.93000030517578}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.5333333015441895}]},{"timestamp":"2020-04-10T01:30:00.000Z","score":82.33333587646484,"sensors":[{"comp":"temp","value":22.564332962036133},{"comp":"humid","value":44.25666809082031},{"comp":"co2","value":864.6666870117188},{"comp":"voc","value":609.933349609375},{"comp":"dust","value":25.633333206176758}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.7999999523162842}]},{"timestamp":"2020-04-10T01:25:00.000Z","score":83.76667022705078,"sensors":[{"comp":"temp","value":22.66666603088379},{"comp":"humid","value":44.23699951171875},{"comp":"co2","value":880.5333251953125},{"comp":"voc","value":619.7000122070312},{"comp":"dust","value":21.25}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.3333333730697632}]},{"timestamp":"2020-04-10T01:20:00.000Z","score":83.46666717529297,"sensors":[{"comp":"temp","value":22.78499984741211},{"comp":"humid","value":44.297332763671875},{"comp":"co2","value":906.5333251953125},{"comp":"voc","value":637.2999877929688},{"comp":"dust","value":21.530000686645508}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.399999976158142}]},{"timestamp":"2020-04-10T01:15:00.000Z","score":82.86206817626953,"sensors":[{"comp":"temp","value":22.90586280822754},{"comp":"humid","value":44.77965545654297},{"comp":"co2","value":952.2413940429688},{"comp":"voc","value":664.2413940429688},{"comp":"dust","value":22.92758560180664}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.6206896305084229}]},{"timestamp":"2020-04-10T01:10:00.000Z","score":81.0,"sensors":[{"comp":"temp","value":22.924516677856445},{"comp":"humid","value":45.14838790893555},{"comp":"co2","value":975.774169921875},{"comp":"voc","value":681.4193725585938},{"comp":"dust","value":27.1741943359375}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":2.0}]},{"timestamp":"2020-04-10T01:05:00.000Z","score":81.46666717529297,"sensors":[{"comp":"temp","value":22.8613338470459},{"comp":"humid","value":45.279666900634766},{"comp":"co2","value":952.7666625976562},{"comp":"voc","value":683.2000122070312},{"comp":"dust","value":26.3799991607666}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.7666666507720947}]},{"timestamp":"2020-04-10T01:00:00.000Z","score":81.31034851074219,"sensors":[{"comp":"temp","value":22.897241592407227},{"comp":"humid","value":45.283447265625},{"comp":"co2","value":951.7930908203125},{"comp":"voc","value":685.5172119140625},{"comp":"dust","value":26.920690536499023}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.7931034564971924}]},{"timestamp":"2020-04-10T00:55:00.000Z","score":80.76667022705078,"sensors":[{"comp":"temp","value":22.920665740966797},{"comp":"humid","value":45.442665100097656},{"comp":"co2","value":967.7333374023438},{"comp":"voc","value":691.933349609375},{"comp":"dust","value":28.003334045410156}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.9333332777023315}]},{"timestamp":"2020-04-10T00:50:00.000Z","score":80.19999694824219,"sensors":[{"comp":"temp","value":22.974332809448242},{"comp":"humid","value":45.71799850463867},{"comp":"co2","value":990.4000244140625},{"comp":"voc","value":702.9000244140625},{"comp":"dust","value":28.3700008392334}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.2666666805744171},{"comp":"voc","value":1.0},{"comp":"dust","value":2.0}]},{"timestamp":"2020-04-10T00:45:00.000Z","score":77.13333129882812,"sensors":[{"comp":"temp","value":23.099332809448242},{"comp":"humid","value":46.29899978637695},{"comp":"co2","value":1014.1333618164062},{"comp":"voc","value":723.933349609375},{"comp":"dust","value":36.13666534423828}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":2.5333333015441895}]},{"timestamp":"2020-04-10T00:40:00.000Z","score":73.93333435058594,"sensors":[{"comp":"temp","value":23.145666122436523},{"comp":"humid","value":47.099998474121094},{"comp":"co2","value":1047.13330078125},{"comp":"voc","value":729.5},{"comp":"dust","value":43.62333297729492}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":1.0},{"comp":"voc","value":1.0},{"comp":"dust","value":3.0}]},{"timestamp":"2020-04-10T00:35:00.000Z","score":76.16666412353516,"sensors":[{"comp":"temp","value":22.989999771118164},{"comp":"humid","value":46.45600128173828},{"comp":"co2","value":975.5},{"comp":"voc","value":641.9666748046875},{"comp":"dust","value":41.266666412353516}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.4333333373069763},{"comp":"voc","value":1.0},{"comp":"dust","value":2.633333444595337}]},{"timestamp":"2020-04-10T00:30:00.000Z","score":84.13333129882812,"sensors":[{"comp":"temp","value":22.896333694458008},{"comp":"humid","value":43.8663330078125},{"comp":"co2","value":837.4666748046875},{"comp":"voc","value":528.6666870117188},{"comp":"dust","value":24.31999969482422}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.4333332777023315}]},{"timestamp":"2020-04-10T00:25:00.000Z","score":87.83333587646484,"sensors":[{"comp":"temp","value":22.89666748046875},{"comp":"humid","value":43.057334899902344},{"comp":"co2","value":741.1666870117188},{"comp":"voc","value":464.4666748046875},{"comp":"dust","value":15.84666633605957}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.1333333253860474}]},{"timestamp":"2020-04-10T00:20:00.000Z","score":88.9000015258789,"sensors":[{"comp":"temp","value":22.930999755859375},{"comp":"humid","value":42.54366683959961},{"comp":"co2","value":685.2666625976562},{"comp":"voc","value":416.3333435058594},{"comp":"dust","value":13.99666690826416}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T00:15:00.000Z","score":89.23332977294922,"sensors":[{"comp":"temp","value":23.060333251953125},{"comp":"humid","value":42.391334533691406},{"comp":"co2","value":689.5},{"comp":"voc","value":412.76666259765625},{"comp":"dust","value":13.600000381469727}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T00:10:00.000Z","score":89.93333435058594,"sensors":[{"comp":"temp","value":23.16033363342285},{"comp":"humid","value":42.50666809082031},{"comp":"co2","value":711.2333374023438},{"comp":"voc","value":410.9333190917969},{"comp":"dust","value":12.923333168029785}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T00:05:00.000Z","score":89.23332977294922,"sensors":[{"comp":"temp","value":23.148000717163086},{"comp":"humid","value":42.74700164794922},{"comp":"co2","value":735.4666748046875},{"comp":"voc","value":413.3333435058594},{"comp":"dust","value":13.543333053588867}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T00:00:00.000Z","score":89.5,"sensors":[{"comp":"temp","value":23.110332489013672},{"comp":"humid","value":42.88966751098633},{"comp":"co2","value":741.7666625976562},{"comp":"voc","value":413.1000061035156},{"comp":"dust","value":13.34333324432373}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T23:55:00.000Z","score":89.73332977294922,"sensors":[{"comp":"temp","value":23.213333129882812},{"comp":"humid","value":42.75166702270508},{"comp":"co2","value":737.3666381835938},{"comp":"voc","value":415.3333435058594},{"comp":"dust","value":13.010000228881836}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T23:50:00.000Z","score":89.86666870117188,"sensors":[{"comp":"temp","value":23.312000274658203},{"comp":"humid","value":42.66400146484375},{"comp":"co2","value":737.066650390625},{"comp":"voc","value":418.8666687011719},{"comp":"dust","value":12.953332901000977}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T23:45:00.000Z","score":89.80000305175781,"sensors":[{"comp":"temp","value":23.46266746520996},{"comp":"humid","value":42.486000061035156},{"comp":"co2","value":732.933349609375},{"comp":"voc","value":420.4333190917969},{"comp":"dust","value":13.333333015441895}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T23:40:00.000Z","score":89.73332977294922,"sensors":[{"comp":"temp","value":23.524999618530273},{"comp":"humid","value":42.57866668701172},{"comp":"co2","value":745.0},{"comp":"voc","value":424.70001220703125},{"comp":"dust","value":13.393333435058594}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T23:35:00.000Z","score":89.56666564941406,"sensors":[{"comp":"temp","value":23.514333724975586},{"comp":"humid","value":42.69633483886719},{"comp":"co2","value":761.433349609375},{"comp":"voc","value":431.1666564941406},{"comp":"dust","value":13.25333309173584}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T23:30:00.000Z","score":89.23332977294922,"sensors":[{"comp":"temp","value":23.485332489013672},{"comp":"humid","value":42.78733444213867},{"comp":"co2","value":766.933349609375},{"comp":"voc","value":437.6000061035156},{"comp":"dust","value":13.420000076293945}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T23:25:00.000Z","score":89.76667022705078,"sensors":[{"comp":"temp","value":23.518999099731445},{"comp":"humid","value":42.97566604614258},{"comp":"co2","value":774.9666748046875},{"comp":"voc","value":442.76666259765625},{"comp":"dust","value":13.013333320617676}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T23:20:00.000Z","score":89.69999694824219,"sensors":[{"comp":"temp","value":23.54599952697754},{"comp":"humid","value":42.93633270263672},{"comp":"co2","value":763.1333618164062},{"comp":"voc","value":443.8666687011719},{"comp":"dust","value":13.09000015258789}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T23:15:00.000Z","score":89.9000015258789,"sensors":[{"comp":"temp","value":23.643999099731445},{"comp":"humid","value":42.67733383178711},{"comp":"co2","value":761.9000244140625},{"comp":"voc","value":437.76666259765625},{"comp":"dust","value":13.186666488647461}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T23:10:00.000Z","score":89.37931060791016,"sensors":[{"comp":"temp","value":23.670690536499023},{"comp":"humid","value":42.67448425292969},{"comp":"co2","value":773.8275756835938},{"comp":"voc","value":439.6896667480469},{"comp":"dust","value":13.510344505310059}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T23:05:00.000Z","score":89.13333129882812,"sensors":[{"comp":"temp","value":23.680999755859375},{"comp":"humid","value":43.038333892822266},{"comp":"co2","value":809.433349609375},{"comp":"voc","value":452.73333740234375},{"comp":"dust","value":13.293333053588867}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T23:00:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":23.6560001373291},{"comp":"humid","value":43.159000396728516},{"comp":"co2","value":810.4000244140625},{"comp":"voc","value":459.1000061035156},{"comp":"dust","value":13.473333358764648}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T22:55:00.000Z","score":89.43333435058594,"sensors":[{"comp":"temp","value":23.689666748046875},{"comp":"humid","value":43.165000915527344},{"comp":"co2","value":792.2666625976562},{"comp":"voc","value":451.23333740234375},{"comp":"dust","value":13.609999656677246}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T22:50:00.000Z","score":89.86666870117188,"sensors":[{"comp":"temp","value":23.663000106811523},{"comp":"humid","value":43.12666702270508},{"comp":"co2","value":771.7999877929688},{"comp":"voc","value":438.0666809082031},{"comp":"dust","value":13.383333206176758}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T22:45:00.000Z","score":90.0,"sensors":[{"comp":"temp","value":23.641332626342773},{"comp":"humid","value":43.0369987487793},{"comp":"co2","value":763.7999877929688},{"comp":"voc","value":438.4333190917969},{"comp":"dust","value":13.239999771118164}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T22:40:00.000Z","score":89.66666412353516,"sensors":[{"comp":"temp","value":23.625667572021484},{"comp":"humid","value":43.12766647338867},{"comp":"co2","value":779.2666625976562},{"comp":"voc","value":444.5666809082031},{"comp":"dust","value":13.693333625793457}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T22:35:00.000Z","score":88.46666717529297,"sensors":[{"comp":"temp","value":23.581666946411133},{"comp":"humid","value":43.40133285522461},{"comp":"co2","value":805.066650390625},{"comp":"voc","value":451.6666564941406},{"comp":"dust","value":15.386666297912598}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0666667222976685}]},{"timestamp":"2020-04-09T22:30:00.000Z","score":89.4000015258789,"sensors":[{"comp":"temp","value":23.4689998626709},{"comp":"humid","value":43.893001556396484},{"comp":"co2","value":812.066650390625},{"comp":"voc","value":455.9333190917969},{"comp":"dust","value":13.350000381469727}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T22:25:00.000Z","score":89.03333282470703,"sensors":[{"comp":"temp","value":23.448999404907227},{"comp":"humid","value":43.86766815185547},{"comp":"co2","value":812.6666870117188},{"comp":"voc","value":457.73333740234375},{"comp":"dust","value":13.573333740234375}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T22:20:00.000Z","score":89.03333282470703,"sensors":[{"comp":"temp","value":23.472000122070312},{"comp":"humid","value":43.82899856567383},{"comp":"co2","value":819.2333374023438},{"comp":"voc","value":461.4666748046875},{"comp":"dust","value":13.583333015441895}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T22:15:00.000Z","score":89.26667022705078,"sensors":[{"comp":"temp","value":23.54199981689453},{"comp":"humid","value":43.933998107910156},{"comp":"co2","value":829.2666625976562},{"comp":"voc","value":468.9666748046875},{"comp":"dust","value":13.773333549499512}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T22:10:00.000Z","score":88.63333129882812,"sensors":[{"comp":"temp","value":23.614334106445312},{"comp":"humid","value":43.99966812133789},{"comp":"co2","value":823.933349609375},{"comp":"voc","value":475.6333312988281},{"comp":"dust","value":15.026666641235352}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T22:05:00.000Z","score":88.66666412353516,"sensors":[{"comp":"temp","value":23.568666458129883},{"comp":"humid","value":44.128665924072266},{"comp":"co2","value":819.9666748046875},{"comp":"voc","value":480.70001220703125},{"comp":"dust","value":14.993332862854004}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T22:00:00.000Z","score":88.13333129882812,"sensors":[{"comp":"temp","value":23.434667587280273},{"comp":"humid","value":43.973331451416016},{"comp":"co2","value":801.7666625976562},{"comp":"voc","value":484.6666564941406},{"comp":"dust","value":16.446666717529297}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.1666666269302368}]},{"timestamp":"2020-04-09T21:55:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":23.413665771484375},{"comp":"humid","value":43.84633255004883},{"comp":"co2","value":778.7999877929688},{"comp":"voc","value":488.6000061035156},{"comp":"dust","value":13.800000190734863}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T21:50:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":23.430665969848633},{"comp":"humid","value":43.740333557128906},{"comp":"co2","value":774.6666870117188},{"comp":"voc","value":494.8999938964844},{"comp":"dust","value":13.90333366394043}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T21:45:00.000Z","score":88.96551513671875,"sensors":[{"comp":"temp","value":23.485172271728516},{"comp":"humid","value":43.68275833129883},{"comp":"co2","value":782.862060546875},{"comp":"voc","value":498.5862121582031},{"comp":"dust","value":14.162069320678711}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T21:40:00.000Z","score":88.4000015258789,"sensors":[{"comp":"temp","value":23.567333221435547},{"comp":"humid","value":43.465999603271484},{"comp":"co2","value":801.7666625976562},{"comp":"voc","value":507.4333190917969},{"comp":"dust","value":15.029999732971191}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T21:35:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":23.562999725341797},{"comp":"humid","value":43.37200164794922},{"comp":"co2","value":771.9000244140625},{"comp":"voc","value":514.4000244140625},{"comp":"dust","value":15.986666679382324}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T21:30:00.000Z","score":88.4000015258789,"sensors":[{"comp":"temp","value":23.437334060668945},{"comp":"humid","value":43.336334228515625},{"comp":"co2","value":721.0333251953125},{"comp":"voc","value":507.4333190917969},{"comp":"dust","value":15.84333324432373}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T21:25:00.000Z","score":88.53333282470703,"sensors":[{"comp":"temp","value":23.441333770751953},{"comp":"humid","value":43.20766830444336},{"comp":"co2","value":714.0999755859375},{"comp":"voc","value":500.6666564941406},{"comp":"dust","value":15.213333129882812}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T21:20:00.000Z","score":86.23332977294922,"sensors":[{"comp":"temp","value":23.448333740234375},{"comp":"humid","value":43.404335021972656},{"comp":"co2","value":728.7333374023438},{"comp":"voc","value":503.3333435058594},{"comp":"dust","value":21.713333129882812}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.399999976158142}]},{"timestamp":"2020-04-09T21:15:00.000Z","score":89.06666564941406,"sensors":[{"comp":"temp","value":23.516332626342773},{"comp":"humid","value":43.25433349609375},{"comp":"co2","value":689.7333374023438},{"comp":"voc","value":423.6333312988281},{"comp":"dust","value":16.8799991607666}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0666667222976685}]},{"timestamp":"2020-04-09T21:10:00.000Z","score":89.83333587646484,"sensors":[{"comp":"temp","value":23.632999420166016},{"comp":"humid","value":43.077999114990234},{"comp":"co2","value":698.5999755859375},{"comp":"voc","value":424.1333312988281},{"comp":"dust","value":15.026666641235352}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T21:05:00.000Z","score":88.75862121582031,"sensors":[{"comp":"temp","value":23.553447723388672},{"comp":"humid","value":43.42137908935547},{"comp":"co2","value":721.4483032226562},{"comp":"voc","value":429.7930908203125},{"comp":"dust","value":17.172412872314453}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T21:00:00.000Z","score":89.93333435058594,"sensors":[{"comp":"temp","value":23.399999618530273},{"comp":"humid","value":44.06666564941406},{"comp":"co2","value":730.8666381835938},{"comp":"voc","value":430.8333435058594},{"comp":"dust","value":14.046667098999023}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T20:55:00.000Z","score":89.5999984741211,"sensors":[{"comp":"temp","value":23.394332885742188},{"comp":"humid","value":43.99300003051758},{"comp":"co2","value":733.3666381835938},{"comp":"voc","value":429.26666259765625},{"comp":"dust","value":14.976666450500488}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T20:50:00.000Z","score":90.0,"sensors":[{"comp":"temp","value":23.42300033569336},{"comp":"humid","value":44.2313346862793},{"comp":"co2","value":751.9666748046875},{"comp":"voc","value":434.0},{"comp":"dust","value":12.979999542236328}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T20:45:00.000Z","score":90.0,"sensors":[{"comp":"temp","value":23.458999633789062},{"comp":"humid","value":44.232666015625},{"comp":"co2","value":757.4000244140625},{"comp":"voc","value":434.8666687011719},{"comp":"dust","value":13.470000267028809}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T20:40:00.000Z","score":90.0,"sensors":[{"comp":"temp","value":23.55233383178711},{"comp":"humid","value":44.310001373291016},{"comp":"co2","value":793.6666870117188},{"comp":"voc","value":441.0},{"comp":"dust","value":13.25333309173584}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T20:35:00.000Z","score":90.0,"sensors":[{"comp":"temp","value":23.498332977294922},{"comp":"humid","value":44.961666107177734},{"comp":"co2","value":814.7999877929688},{"comp":"voc","value":439.9333190917969},{"comp":"dust","value":13.149999618530273}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T20:30:00.000Z","score":90.0,"sensors":[{"comp":"temp","value":23.404666900634766},{"comp":"humid","value":45.59266662597656},{"comp":"co2","value":824.4000244140625},{"comp":"voc","value":421.1666564941406},{"comp":"dust","value":13.066666603088379}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T20:25:00.000Z","score":90.0,"sensors":[{"comp":"temp","value":23.37700080871582},{"comp":"humid","value":45.88966751098633},{"comp":"co2","value":819.566650390625},{"comp":"voc","value":415.79998779296875},{"comp":"dust","value":12.880000114440918}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T20:20:00.000Z","score":90.30000305175781,"sensors":[{"comp":"temp","value":23.338333129882812},{"comp":"humid","value":45.53733444213867},{"comp":"co2","value":784.7000122070312},{"comp":"voc","value":412.1666564941406},{"comp":"dust","value":12.983333587646484}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T20:15:00.000Z","score":90.69999694824219,"sensors":[{"comp":"temp","value":23.328332901000977},{"comp":"humid","value":45.112335205078125},{"comp":"co2","value":760.2999877929688},{"comp":"voc","value":410.0},{"comp":"dust","value":13.09000015258789}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T20:10:00.000Z","score":90.96666717529297,"sensors":[{"comp":"temp","value":23.44533348083496},{"comp":"humid","value":44.63666534423828},{"comp":"co2","value":764.4000244140625},{"comp":"voc","value":411.0333251953125},{"comp":"dust","value":13.053333282470703}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T20:05:00.000Z","score":90.36666870117188,"sensors":[{"comp":"temp","value":23.493667602539062},{"comp":"humid","value":44.57433319091797},{"comp":"co2","value":783.2999877929688},{"comp":"voc","value":415.8999938964844},{"comp":"dust","value":13.193333625793457}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T20:00:00.000Z","score":90.06666564941406,"sensors":[{"comp":"temp","value":23.39299964904785},{"comp":"humid","value":44.869998931884766},{"comp":"co2","value":786.3666381835938},{"comp":"voc","value":422.29998779296875},{"comp":"dust","value":13.673333168029785}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T19:55:00.000Z","score":90.03333282470703,"sensors":[{"comp":"temp","value":23.29599952697754},{"comp":"humid","value":45.20966720581055},{"comp":"co2","value":777.0999755859375},{"comp":"voc","value":426.1000061035156},{"comp":"dust","value":13.293333053588867}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T19:50:00.000Z","score":89.80000305175781,"sensors":[{"comp":"temp","value":23.246000289916992},{"comp":"humid","value":45.29033279418945},{"comp":"co2","value":756.8666381835938},{"comp":"voc","value":424.3666687011719},{"comp":"dust","value":13.960000038146973}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T19:45:00.000Z","score":90.66666412353516,"sensors":[{"comp":"temp","value":23.239665985107422},{"comp":"humid","value":44.79133224487305},{"comp":"co2","value":724.1333618164062},{"comp":"voc","value":422.70001220703125},{"comp":"dust","value":13.353333473205566}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T19:40:00.000Z","score":90.30000305175781,"sensors":[{"comp":"temp","value":23.263334274291992},{"comp":"humid","value":44.5989990234375},{"comp":"co2","value":714.6333618164062},{"comp":"voc","value":423.1666564941406},{"comp":"dust","value":13.550000190734863}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T19:35:00.000Z","score":90.06666564941406,"sensors":[{"comp":"temp","value":23.264667510986328},{"comp":"humid","value":44.728668212890625},{"comp":"co2","value":723.1666870117188},{"comp":"voc","value":425.6000061035156},{"comp":"dust","value":13.84000015258789}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T19:30:00.000Z","score":90.0,"sensors":[{"comp":"temp","value":23.21299934387207},{"comp":"humid","value":44.97700119018555},{"comp":"co2","value":746.4000244140625},{"comp":"voc","value":430.26666259765625},{"comp":"dust","value":13.646666526794434}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T19:25:00.000Z","score":90.0999984741211,"sensors":[{"comp":"temp","value":23.16200065612793},{"comp":"humid","value":45.124000549316406},{"comp":"co2","value":745.7666625976562},{"comp":"voc","value":434.8333435058594},{"comp":"dust","value":12.933333396911621}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T19:20:00.000Z","score":90.06666564941406,"sensors":[{"comp":"temp","value":23.165666580200195},{"comp":"humid","value":45.21466827392578},{"comp":"co2","value":718.7666625976562},{"comp":"voc","value":438.5},{"comp":"dust","value":13.423333168029785}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T19:15:00.000Z","score":89.86666870117188,"sensors":[{"comp":"temp","value":23.159000396728516},{"comp":"humid","value":45.056331634521484},{"comp":"co2","value":697.8333129882812},{"comp":"voc","value":439.8333435058594},{"comp":"dust","value":14.850000381469727}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T19:10:00.000Z","score":89.9000015258789,"sensors":[{"comp":"temp","value":23.228666305541992},{"comp":"humid","value":45.00733184814453},{"comp":"co2","value":714.0},{"comp":"voc","value":444.1666564941406},{"comp":"dust","value":14.223333358764648}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T19:05:00.000Z","score":89.76667022705078,"sensors":[{"comp":"temp","value":23.281333923339844},{"comp":"humid","value":45.290000915527344},{"comp":"co2","value":718.2999877929688},{"comp":"voc","value":453.3666687011719},{"comp":"dust","value":14.696666717529297}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T19:00:00.000Z","score":89.48275756835938,"sensors":[{"comp":"temp","value":23.194828033447266},{"comp":"humid","value":45.76896667480469},{"comp":"co2","value":722.1724243164062},{"comp":"voc","value":461.3103332519531},{"comp":"dust","value":14.662069320678711}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T18:55:00.000Z","score":89.16666412353516,"sensors":[{"comp":"temp","value":23.012666702270508},{"comp":"humid","value":45.798667907714844},{"comp":"co2","value":729.5333251953125},{"comp":"voc","value":467.79998779296875},{"comp":"dust","value":13.460000038146973}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T18:50:00.000Z","score":88.76667022705078,"sensors":[{"comp":"temp","value":23.0},{"comp":"humid","value":45.624332427978516},{"comp":"co2","value":721.9000244140625},{"comp":"voc","value":466.76666259765625},{"comp":"dust","value":15.293333053588867}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T18:45:00.000Z","score":88.76667022705078,"sensors":[{"comp":"temp","value":23.01766586303711},{"comp":"humid","value":45.40399932861328},{"comp":"co2","value":695.7666625976562},{"comp":"voc","value":473.3333435058594},{"comp":"dust","value":16.25666618347168}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T18:40:00.000Z","score":88.93333435058594,"sensors":[{"comp":"temp","value":23.20599937438965},{"comp":"humid","value":45.586666107177734},{"comp":"co2","value":702.433349609375},{"comp":"voc","value":485.8999938964844},{"comp":"dust","value":15.59000015258789}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T18:35:00.000Z","score":88.43333435058594,"sensors":[{"comp":"temp","value":23.200000762939453},{"comp":"humid","value":46.17300033569336},{"comp":"co2","value":711.566650390625},{"comp":"voc","value":500.20001220703125},{"comp":"dust","value":15.529999732971191}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T18:30:00.000Z","score":87.53333282470703,"sensors":[{"comp":"temp","value":23.034666061401367},{"comp":"humid","value":46.69133377075195},{"comp":"co2","value":740.933349609375},{"comp":"voc","value":513.2666625976562},{"comp":"dust","value":15.966666221618652}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T18:25:00.000Z","score":87.63333129882812,"sensors":[{"comp":"temp","value":22.83366584777832},{"comp":"humid","value":46.3033332824707},{"comp":"co2","value":757.5333251953125},{"comp":"voc","value":525.0},{"comp":"dust","value":14.899999618530273}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T18:20:00.000Z","score":87.33333587646484,"sensors":[{"comp":"temp","value":22.831666946411133},{"comp":"humid","value":46.12333297729492},{"comp":"co2","value":716.7666625976562},{"comp":"voc","value":535.5},{"comp":"dust","value":16.49333381652832}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T18:15:00.000Z","score":88.13333129882812,"sensors":[{"comp":"temp","value":22.823667526245117},{"comp":"humid","value":45.86933517456055},{"comp":"co2","value":690.1333618164062},{"comp":"voc","value":537.0333251953125},{"comp":"dust","value":15.210000038146973}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T18:10:00.000Z","score":88.06666564941406,"sensors":[{"comp":"temp","value":22.856000900268555},{"comp":"humid","value":45.4370002746582},{"comp":"co2","value":679.5},{"comp":"voc","value":536.2666625976562},{"comp":"dust","value":15.613333702087402}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T18:05:00.000Z","score":87.9000015258789,"sensors":[{"comp":"temp","value":22.843000411987305},{"comp":"humid","value":45.47600173950195},{"comp":"co2","value":691.2000122070312},{"comp":"voc","value":522.7666625976562},{"comp":"dust","value":16.1200008392334}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T18:00:00.000Z","score":87.80000305175781,"sensors":[{"comp":"temp","value":22.748666763305664},{"comp":"humid","value":45.875},{"comp":"co2","value":705.433349609375},{"comp":"voc","value":516.7333374023438},{"comp":"dust","value":15.826666831970215}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T17:55:00.000Z","score":87.86666870117188,"sensors":[{"comp":"temp","value":22.661666870117188},{"comp":"humid","value":45.724666595458984},{"comp":"co2","value":691.566650390625},{"comp":"voc","value":522.5},{"comp":"dust","value":15.523333549499512}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T17:50:00.000Z","score":88.03333282470703,"sensors":[{"comp":"temp","value":22.619667053222656},{"comp":"humid","value":45.628665924072266},{"comp":"co2","value":689.2999877929688},{"comp":"voc","value":526.7333374023438},{"comp":"dust","value":14.9399995803833}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T17:45:00.000Z","score":88.26667022705078,"sensors":[{"comp":"temp","value":22.562665939331055},{"comp":"humid","value":45.632999420166016},{"comp":"co2","value":671.0333251953125},{"comp":"voc","value":528.1666870117188},{"comp":"dust","value":14.516666412353516}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T17:40:00.000Z","score":88.06666564941406,"sensors":[{"comp":"temp","value":22.63166618347168},{"comp":"humid","value":45.362335205078125},{"comp":"co2","value":668.1333618164062},{"comp":"voc","value":530.7666625976562},{"comp":"dust","value":15.529999732971191}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T17:35:00.000Z","score":87.73332977294922,"sensors":[{"comp":"temp","value":22.6113338470459},{"comp":"humid","value":45.86766815185547},{"comp":"co2","value":707.1666870117188},{"comp":"voc","value":539.7666625976562},{"comp":"dust","value":15.116666793823242}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T17:30:00.000Z","score":86.53333282470703,"sensors":[{"comp":"temp","value":22.444665908813477},{"comp":"humid","value":46.4283332824707},{"comp":"co2","value":712.0333251953125},{"comp":"voc","value":542.566650390625},{"comp":"dust","value":16.43000030517578}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.100000023841858}]},{"timestamp":"2020-04-09T17:25:00.000Z","score":86.93333435058594,"sensors":[{"comp":"temp","value":22.373332977294922},{"comp":"humid","value":46.143001556396484},{"comp":"co2","value":694.433349609375},{"comp":"voc","value":533.2999877929688},{"comp":"dust","value":16.383333206176758}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0333333015441895}]},{"timestamp":"2020-04-09T17:20:00.000Z","score":87.5999984741211,"sensors":[{"comp":"temp","value":22.366666793823242},{"comp":"humid","value":46.04899978637695},{"comp":"co2","value":700.2000122070312},{"comp":"voc","value":530.0999755859375},{"comp":"dust","value":14.636666297912598}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T17:15:00.000Z","score":88.03333282470703,"sensors":[{"comp":"temp","value":22.33133316040039},{"comp":"humid","value":45.986000061035156},{"comp":"co2","value":677.4000244140625},{"comp":"voc","value":522.8666381835938},{"comp":"dust","value":14.006667137145996}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T17:10:00.000Z","score":87.72413635253906,"sensors":[{"comp":"temp","value":22.372068405151367},{"comp":"humid","value":45.94379425048828},{"comp":"co2","value":667.7586059570312},{"comp":"voc","value":519.5516967773438},{"comp":"dust","value":15.406896591186523}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T17:05:00.000Z","score":87.5,"sensors":[{"comp":"temp","value":22.409666061401367},{"comp":"humid","value":45.58266830444336},{"comp":"co2","value":663.4666748046875},{"comp":"voc","value":519.2666625976562},{"comp":"dust","value":16.236665725708008}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.1666666269302368}]},{"timestamp":"2020-04-09T17:00:00.000Z","score":88.19999694824219,"sensors":[{"comp":"temp","value":22.356000900268555},{"comp":"humid","value":45.468666076660156},{"comp":"co2","value":667.1666870117188},{"comp":"voc","value":515.433349609375},{"comp":"dust","value":14.710000038146973}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T16:55:00.000Z","score":88.53333282470703,"sensors":[{"comp":"temp","value":22.25933265686035},{"comp":"humid","value":45.466331481933594},{"comp":"co2","value":678.8666381835938},{"comp":"voc","value":525.8333129882812},{"comp":"dust","value":13.193333625793457}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T16:50:00.000Z","score":88.03333282470703,"sensors":[{"comp":"temp","value":22.297666549682617},{"comp":"humid","value":45.60933303833008},{"comp":"co2","value":690.9666748046875},{"comp":"voc","value":532.4666748046875},{"comp":"dust","value":13.183333396911621}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T16:45:00.000Z","score":88.0,"sensors":[{"comp":"temp","value":22.32233238220215},{"comp":"humid","value":45.88566589355469},{"comp":"co2","value":698.6333618164062},{"comp":"voc","value":536.2333374023438},{"comp":"dust","value":13.16333293914795}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T16:40:00.000Z","score":87.83333587646484,"sensors":[{"comp":"temp","value":22.41633415222168},{"comp":"humid","value":45.74733352661133},{"comp":"co2","value":698.2999877929688},{"comp":"voc","value":533.5},{"comp":"dust","value":13.956666946411133}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T16:35:00.000Z","score":87.9000015258789,"sensors":[{"comp":"temp","value":22.487333297729492},{"comp":"humid","value":45.531333923339844},{"comp":"co2","value":696.7666625976562},{"comp":"voc","value":526.9000244140625},{"comp":"dust","value":15.529999732971191}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T16:30:00.000Z","score":88.30000305175781,"sensors":[{"comp":"temp","value":22.450000762939453},{"comp":"humid","value":45.099334716796875},{"comp":"co2","value":694.0333251953125},{"comp":"voc","value":529.7000122070312},{"comp":"dust","value":14.286666870117188}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T16:25:00.000Z","score":88.4000015258789,"sensors":[{"comp":"temp","value":22.2810001373291},{"comp":"humid","value":45.33833312988281},{"comp":"co2","value":686.933349609375},{"comp":"voc","value":527.9666748046875},{"comp":"dust","value":13.5600004196167}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T16:20:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":22.24333381652832},{"comp":"humid","value":45.28233337402344},{"comp":"co2","value":676.7333374023438},{"comp":"voc","value":501.0},{"comp":"dust","value":13.24666690826416}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T16:15:00.000Z","score":89.0,"sensors":[{"comp":"temp","value":22.242000579833984},{"comp":"humid","value":45.11866760253906},{"comp":"co2","value":661.7000122070312},{"comp":"voc","value":487.3999938964844},{"comp":"dust","value":13.236666679382324}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T16:10:00.000Z","score":89.13333129882812,"sensors":[{"comp":"temp","value":22.332000732421875},{"comp":"humid","value":44.944332122802734},{"comp":"co2","value":645.7000122070312},{"comp":"voc","value":468.23333740234375},{"comp":"dust","value":13.960000038146973}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T16:05:00.000Z","score":89.5,"sensors":[{"comp":"temp","value":22.398666381835938},{"comp":"humid","value":44.88066482543945},{"comp":"co2","value":649.4666748046875},{"comp":"voc","value":456.9666748046875},{"comp":"dust","value":14.039999961853027}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T16:00:00.000Z","score":89.83333587646484,"sensors":[{"comp":"temp","value":22.35099983215332},{"comp":"humid","value":44.91699981689453},{"comp":"co2","value":651.7000122070312},{"comp":"voc","value":443.0},{"comp":"dust","value":13.58666706085205}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T15:55:00.000Z","score":89.83333587646484,"sensors":[{"comp":"temp","value":22.189332962036133},{"comp":"humid","value":45.0543327331543},{"comp":"co2","value":634.4666748046875},{"comp":"voc","value":424.0333251953125},{"comp":"dust","value":13.329999923706055}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T15:50:00.000Z","score":89.69999694824219,"sensors":[{"comp":"temp","value":22.141332626342773},{"comp":"humid","value":45.07533264160156},{"comp":"co2","value":613.2666625976562},{"comp":"voc","value":414.4333190917969},{"comp":"dust","value":14.319999694824219}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T15:45:00.000Z","score":89.9000015258789,"sensors":[{"comp":"temp","value":22.112333297729492},{"comp":"humid","value":44.561668395996094},{"comp":"co2","value":603.566650390625},{"comp":"voc","value":396.9333190917969},{"comp":"dust","value":13.263333320617676}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-09T15:40:00.000Z","score":90.0,"sensors":[{"comp":"temp","value":22.125333786010742},{"comp":"humid","value":44.522335052490234},{"comp":"co2","value":605.0333251953125},{"comp":"voc","value":395.79998779296875},{"comp":"dust","value":12.886666297912598}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]}]}' headers: Alt-Svc: clear Via: 1.1 google access-control-allow-credentials: 'true' access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Accept-Encoding, Accept-Language, Host, Referer, User-Agent access-control-allow-methods: GET, POST, PUT, PATCH, DELETE, OPTIONS access-control-allow-origin: '*' content-type: application/json date: Fri, 10 Apr 2020 15:38:30 GMT server: istio-envoy transfer-encoding: chunked x-envoy-decorator-operation: developer-apis-node-port.default.svc.cluster.local:3000/* x-envoy-upstream-service-time: '91' status: code: 200 message: OK url: https://developer-apis.awair.is/v1/users/self/devices/awair/24947/air-data/5-min-avg?from_date=2020-04-10+10:08:31.002883 version: 1 ahayworth-python_awair-683cb06/tests/fixtures/cassettes/glow.yaml000066400000000000000000000027021507173055200254320ustar00rootroot00000000000000interactions: - request: body: null headers: Content-Type: - application/json authorization: - fake_token method: GET uri: https://developer-apis.awair.is/v1/users/self/devices/awair-glow/1405/air-data/latest?fahrenheit=false response: body: string: '{"data":[{"timestamp":"2020-04-10T16:46:15.486Z","score":93.0,"sensors":[{"comp":"temp","value":21.93000030517578},{"comp":"humid","value":42.31999969482422},{"comp":"co2","value":429.0},{"comp":"voc","value":288.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0}]}]}' headers: Alt-Svc: clear Via: 1.1 google access-control-allow-credentials: 'true' access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Accept-Encoding, Accept-Language, Host, Referer, User-Agent access-control-allow-methods: GET, POST, PUT, PATCH, DELETE, OPTIONS access-control-allow-origin: '*' content-type: application/json date: Fri, 10 Apr 2020 16:18:11 GMT server: istio-envoy transfer-encoding: chunked x-envoy-decorator-operation: developer-apis-node-port.default.svc.cluster.local:3000/* x-envoy-upstream-service-time: '46' status: code: 200 message: OK url: https://developer-apis.awair.is/v1/users/self/devices/awair-glow/1405/air-data/latest?fahrenheit=false version: 1 ahayworth-python_awair-683cb06/tests/fixtures/cassettes/latest.yaml000066400000000000000000000030031507173055200257510ustar00rootroot00000000000000interactions: - request: body: null headers: Content-Type: - application/json authorization: - fake_token method: GET uri: https://developer-apis.awair.is/v1/users/self/devices/awair/24947/air-data/latest?fahrenheit=false response: body: string: '{"data":[{"timestamp":"2020-04-10T15:38:24.111Z","score":88.0,"sensors":[{"comp":"temp","value":21.770000457763672},{"comp":"humid","value":41.59000015258789},{"comp":"co2","value":654.0},{"comp":"voc","value":366.0},{"comp":"dust","value":14.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]}]}' headers: Alt-Svc: clear Via: 1.1 google access-control-allow-credentials: 'true' access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Accept-Encoding, Accept-Language, Host, Referer, User-Agent access-control-allow-methods: GET, POST, PUT, PATCH, DELETE, OPTIONS access-control-allow-origin: '*' content-type: application/json date: Fri, 10 Apr 2020 15:38:30 GMT server: istio-envoy transfer-encoding: chunked x-envoy-decorator-operation: developer-apis-node-port.default.svc.cluster.local:3000/* x-envoy-upstream-service-time: '130' status: code: 200 message: OK url: https://developer-apis.awair.is/v1/users/self/devices/awair/24947/air-data/latest?fahrenheit=false version: 1 ahayworth-python_awair-683cb06/tests/fixtures/cassettes/latest_local.yaml000066400000000000000000000033231507173055200271300ustar00rootroot00000000000000interactions: - request: body: null headers: Content-Type: - application/json authorization: - fake_token method: GET uri: http://awair-elem-1419e1.local/settings/config/data response: body: string: '{"device_uuid":"awair-element_5366","wifi_mac":"70:88:6B:14:19:E1","ssid":"morpac-east","ip":"192.168.1.225","netmask":"255.255.255.0","gateway":"none","fw_version":"1.1.5","timezone":"America/Los_Angeles","display":"co2","led":{"mode":"manual","brightness":73},"voc_feature_set":"Unknown"}' headers: Access-Control-Allow-Origin: '*' Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Connection: Keep-Alive Content-Type: application/json Pragma: no-cache Transfer-Encoding: chunked status: code: 200 message: OK url: http://awair-elem-1419e1.local/settings/config/data - request: body: null headers: Content-Type: - application/json authorization: - fake_token method: GET uri: http://awair-elem-1419e1.local/air-data/latest response: body: string: '{"timestamp":"2020-08-31T22:07:03.831Z","score":93,"dew_point":11.11,"temp":19.59,"humid":58.05,"abs_humid":9.77,"co2":408,"co2_est":400,"voc":159,"voc_baseline":2533859097,"voc_h2_raw":28,"voc_ethanol_raw":40,"pm25":2,"pm10_est":3}' headers: Access-Control-Allow-Origin: '*' Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Connection: Keep-Alive Content-Type: application/json Pragma: no-cache Transfer-Encoding: chunked status: code: 200 message: OK url: http://awair-elem-1419e1.local/air-data/latest version: 1 ahayworth-python_awair-683cb06/tests/fixtures/cassettes/latest_local_backplate.yaml000066400000000000000000000025631507173055200311430ustar00rootroot00000000000000interactions: - request: body: null headers: Content-Type: - application/json authorization: - fake_token method: GET uri: http://awair-omni-18959-backplate.local/settings/config/data response: body: string: '{"device_uuid":"awair-omni_18959","wifi_mac":"E8:C0:01:78:16:ED","ip":"192.168.0.101","netmask":"255.255.255.0","gateway":"192.168.0.1","fw_version":"1.8.1","timezone":"America/Los_Angeles","display":"score","led":{"mode":"auto","brightness":70},"power-status":{"battery":99,"plugged":true}}' headers: Access-Control-Allow-Origin: '*' Content-Type: text/html Transfer-Encoding: chunked status: code: 200 message: OK url: http://awair-omni-18959-backplate.local/settings/config/data - request: body: null headers: Content-Type: - application/json authorization: - fake_token method: GET uri: http://awair-omni-18959-backplate.local/air-data/latest response: body: string: '{"timestamp":"2025-09-20T13:24:38.359Z","score":99,"temp":22.12,"humid":51.90,"co2":424,"voc":33,"pm25":1,"lux":0.0,"spl_a":51.9}' headers: Access-Control-Allow-Origin: '*' Content-Type: text/html Transfer-Encoding: chunked status: code: 200 message: OK url: http://awair-omni-18959-backplate.local/air-data/latest version: 1 ahayworth-python_awair-683cb06/tests/fixtures/cassettes/local_backplate.yaml000066400000000000000000000014331507173055200275620ustar00rootroot00000000000000interactions: - request: body: null headers: Content-Type: - application/json authorization: - fake_token method: GET uri: http://awair-omni-18959-backplate.local/settings/config/data response: body: string: '{"device_uuid":"awair-omni_18959","wifi_mac":"E8:C0:01:78:16:ED","ip":"192.168.0.101","netmask":"255.255.255.0","gateway":"192.168.0.1","fw_version":"1.8.1","timezone":"America/Los_Angeles","display":"score","led":{"mode":"auto","brightness":70},"power-status":{"battery":99,"plugged":true}}' headers: Access-Control-Allow-Origin: '*' Content-Type: text/html Transfer-Encoding: chunked status: code: 200 message: OK url: http://awair-omni-18959-backplate.local/settings/config/data version: 1ahayworth-python_awair-683cb06/tests/fixtures/cassettes/local_devices.yaml000066400000000000000000000034301507173055200272550ustar00rootroot00000000000000interactions: - request: body: null headers: Content-Type: - application/json authorization: - fake_token method: GET uri: http://awair-elem-1416dc.local/settings/config/data response: body: string: '{"device_uuid":"awair-element_6049","wifi_mac":"70:88:6B:14:16:DC","ssid":"morpac-east","ip":"192.168.1.133","netmask":"255.255.255.0","gateway":"none","fw_version":"1.1.5","timezone":"America/Los_Angeles","display":"clock","led":{"mode":"auto","brightness":179},"voc_feature_set":"Unknown"}' headers: Access-Control-Allow-Origin: '*' Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Connection: Keep-Alive Content-Type: application/json Pragma: no-cache Transfer-Encoding: chunked status: code: 200 message: OK url: http://awair-elem-1416dc.local/settings/config/data - request: body: null headers: Content-Type: - application/json authorization: - fake_token method: GET uri: http://awair-elem-1419e1.local/settings/config/data response: body: string: '{"device_uuid":"awair-element_5366","wifi_mac":"70:88:6B:14:19:E1","ssid":"morpac-east","ip":"192.168.1.225","netmask":"255.255.255.0","gateway":"none","fw_version":"1.2.8","timezone":"America/Los_Angeles","display":"co2","led":{"mode":"manual","brightness":73},"voc_feature_set":"Unknown"}' headers: Access-Control-Allow-Origin: '*' Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Connection: Keep-Alive Content-Type: application/json Pragma: no-cache Transfer-Encoding: chunked status: code: 200 message: OK url: http://awair-elem-1419e1.local/settings/config/data version: 1 ahayworth-python_awair-683cb06/tests/fixtures/cassettes/mint.yaml000066400000000000000000000027541507173055200254400ustar00rootroot00000000000000interactions: - request: body: null headers: Content-Type: - application/json authorization: - fake_token method: GET uri: https://developer-apis.awair.is/v1/users/self/devices/awair-mint/3665/air-data/latest?fahrenheit=false response: body: string: '{"data":[{"timestamp":"2020-04-10T16:25:03.606Z","score":98.0,"sensors":[{"comp":"temp","value":20.639999389648438},{"comp":"humid","value":45.04999923706055},{"comp":"voc","value":269.0},{"comp":"pm25","value":1.0},{"comp":"lux","value":441.70001220703125}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"voc","value":0.0},{"comp":"pm25","value":0.0}]}]}' headers: Alt-Svc: clear Via: 1.1 google access-control-allow-credentials: 'true' access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Accept-Encoding, Accept-Language, Host, Referer, User-Agent access-control-allow-methods: GET, POST, PUT, PATCH, DELETE, OPTIONS access-control-allow-origin: '*' content-type: application/json date: Fri, 10 Apr 2020 16:18:11 GMT server: istio-envoy transfer-encoding: chunked x-envoy-decorator-operation: developer-apis-node-port.default.svc.cluster.local:3000/* x-envoy-upstream-service-time: '46' status: code: 200 message: OK url: https://developer-apis.awair.is/v1/users/self/devices/awair-mint/3665/air-data/latest?fahrenheit=false version: 1 ahayworth-python_awair-683cb06/tests/fixtures/cassettes/not_found.yaml000066400000000000000000000011671507173055200264610ustar00rootroot00000000000000interactions: - request: body: null headers: Content-Type: - application/json authorization: - fake_token method: GET uri: https://developer-apis.awair.is/v1/users/self/devicesxyz response: body: string: The requested resource could not be found. headers: Alt-Svc: clear Content-Length: '42' Content-Type: text/plain; charset=UTF-8 Date: Thu, 09 Apr 2020 23:18:44 GMT Server: akka-http/10.1.1 Via: 1.1 google status: code: 404 message: Not Found url: https://developer-apis.awair.is/v1/users/self/devicesxyz version: 1 ahayworth-python_awair-683cb06/tests/fixtures/cassettes/omni.yaml000066400000000000000000000030751507173055200254300ustar00rootroot00000000000000interactions: - request: body: null headers: Content-Type: - application/json authorization: - fake_token method: GET uri: https://developer-apis.awair.is/v1/users/self/devices/awair-omni/755/air-data/latest?fahrenheit=false response: body: string: '{"data":[{"timestamp":"2020-04-10T16:18:10.298Z","score":99.0,"sensors":[{"comp":"temp","value":21.40999984741211},{"comp":"humid","value":42.7400016784668},{"comp":"co2","value":436.0},{"comp":"voc","value":171.0},{"comp":"pm25","value":0.0},{"comp":"lux","value":804.9000244140625},{"comp":"spl_a","value":47.0}],"indices":[{"comp":"temp","value":0.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":0.0},{"comp":"pm25","value":0.0}]}]}' headers: Alt-Svc: clear Via: 1.1 google access-control-allow-credentials: 'true' access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Accept-Encoding, Accept-Language, Host, Referer, User-Agent access-control-allow-methods: GET, POST, PUT, PATCH, DELETE, OPTIONS access-control-allow-origin: '*' content-type: application/json date: Fri, 10 Apr 2020 16:18:11 GMT server: istio-envoy transfer-encoding: chunked x-envoy-decorator-operation: developer-apis-node-port.default.svc.cluster.local:3000/* x-envoy-upstream-service-time: '46' status: code: 200 message: OK url: https://developer-apis.awair.is/v1/users/self/devices/awair-omni/755/air-data/latest?fahrenheit=false version: 1 ahayworth-python_awair-683cb06/tests/fixtures/cassettes/raw.yaml000066400000000000000000004320471507173055200252640ustar00rootroot00000000000000interactions: - request: body: null headers: Content-Type: - application/json authorization: - fake_token method: GET uri: https://developer-apis.awair.is/v1/users/self/devices/awair/24947/air-data/raw?from_date=2020-04-10+10:08:31.720296 response: body: string: '{"data":[{"timestamp":"2020-04-10T15:38:24.111Z","score":88.0,"sensors":[{"comp":"temp","value":21.770000457763672},{"comp":"humid","value":41.59000015258789},{"comp":"co2","value":654.0},{"comp":"voc","value":366.0},{"comp":"dust","value":14.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:38:14.468Z","score":88.0,"sensors":[{"comp":"temp","value":21.770000457763672},{"comp":"humid","value":41.630001068115234},{"comp":"co2","value":652.0},{"comp":"voc","value":368.0},{"comp":"dust","value":14.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:38:04.833Z","score":88.0,"sensors":[{"comp":"temp","value":21.780000686645508},{"comp":"humid","value":41.58000183105469},{"comp":"co2","value":651.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:37:53.993Z","score":88.0,"sensors":[{"comp":"temp","value":21.780000686645508},{"comp":"humid","value":41.56999969482422},{"comp":"co2","value":649.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:37:44.355Z","score":88.0,"sensors":[{"comp":"temp","value":21.790000915527344},{"comp":"humid","value":41.5},{"comp":"co2","value":649.0},{"comp":"voc","value":368.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:37:34.714Z","score":88.0,"sensors":[{"comp":"temp","value":21.770000457763672},{"comp":"humid","value":41.459999084472656},{"comp":"co2","value":648.0},{"comp":"voc","value":366.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:37:25.072Z","score":88.0,"sensors":[{"comp":"temp","value":21.790000915527344},{"comp":"humid","value":41.41999816894531},{"comp":"co2","value":648.0},{"comp":"voc","value":367.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:37:14.268Z","score":88.0,"sensors":[{"comp":"temp","value":21.770000457763672},{"comp":"humid","value":41.369998931884766},{"comp":"co2","value":649.0},{"comp":"voc","value":366.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:37:04.595Z","score":88.0,"sensors":[{"comp":"temp","value":21.780000686645508},{"comp":"humid","value":41.369998931884766},{"comp":"co2","value":648.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:36:54.998Z","score":88.0,"sensors":[{"comp":"temp","value":21.75},{"comp":"humid","value":41.45000076293945},{"comp":"co2","value":648.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:36:44.117Z","score":88.0,"sensors":[{"comp":"temp","value":21.770000457763672},{"comp":"humid","value":41.34000015258789},{"comp":"co2","value":647.0},{"comp":"voc","value":368.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:36:34.521Z","score":88.0,"sensors":[{"comp":"temp","value":21.780000686645508},{"comp":"humid","value":41.40999984741211},{"comp":"co2","value":646.0},{"comp":"voc","value":367.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:36:24.876Z","score":88.0,"sensors":[{"comp":"temp","value":21.780000686645508},{"comp":"humid","value":41.41999816894531},{"comp":"co2","value":646.0},{"comp":"voc","value":365.0},{"comp":"dust","value":12.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:36:14.004Z","score":88.0,"sensors":[{"comp":"temp","value":21.790000915527344},{"comp":"humid","value":41.38999938964844},{"comp":"co2","value":647.0},{"comp":"voc","value":366.0},{"comp":"dust","value":12.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:36:04.391Z","score":88.0,"sensors":[{"comp":"temp","value":21.780000686645508},{"comp":"humid","value":41.41999816894531},{"comp":"co2","value":648.0},{"comp":"voc","value":366.0},{"comp":"dust","value":12.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:35:54.723Z","score":88.0,"sensors":[{"comp":"temp","value":21.790000915527344},{"comp":"humid","value":41.34000015258789},{"comp":"co2","value":648.0},{"comp":"voc","value":367.0},{"comp":"dust","value":12.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:35:43.907Z","score":88.0,"sensors":[{"comp":"temp","value":21.780000686645508},{"comp":"humid","value":41.36000061035156},{"comp":"co2","value":647.0},{"comp":"voc","value":365.0},{"comp":"dust","value":12.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:35:34.245Z","score":88.0,"sensors":[{"comp":"temp","value":21.780000686645508},{"comp":"humid","value":41.40999984741211},{"comp":"co2","value":647.0},{"comp":"voc","value":367.0},{"comp":"dust","value":12.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:35:24.602Z","score":88.0,"sensors":[{"comp":"temp","value":21.770000457763672},{"comp":"humid","value":41.41999816894531},{"comp":"co2","value":644.0},{"comp":"voc","value":367.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:35:13.764Z","score":88.0,"sensors":[{"comp":"temp","value":21.770000457763672},{"comp":"humid","value":41.41999816894531},{"comp":"co2","value":644.0},{"comp":"voc","value":366.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:35:04.133Z","score":88.0,"sensors":[{"comp":"temp","value":21.780000686645508},{"comp":"humid","value":41.369998931884766},{"comp":"co2","value":645.0},{"comp":"voc","value":366.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:34:54.490Z","score":88.0,"sensors":[{"comp":"temp","value":21.780000686645508},{"comp":"humid","value":41.439998626708984},{"comp":"co2","value":644.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:34:44.941Z","score":88.0,"sensors":[{"comp":"temp","value":21.75},{"comp":"humid","value":41.470001220703125},{"comp":"co2","value":643.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:34:34.022Z","score":88.0,"sensors":[{"comp":"temp","value":21.780000686645508},{"comp":"humid","value":41.459999084472656},{"comp":"co2","value":642.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:34:24.425Z","score":88.0,"sensors":[{"comp":"temp","value":21.780000686645508},{"comp":"humid","value":41.38999938964844},{"comp":"co2","value":642.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:34:14.735Z","score":88.0,"sensors":[{"comp":"temp","value":21.790000915527344},{"comp":"humid","value":41.33000183105469},{"comp":"co2","value":639.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:34:03.894Z","score":88.0,"sensors":[{"comp":"temp","value":21.780000686645508},{"comp":"humid","value":41.29999923706055},{"comp":"co2","value":641.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:33:54.252Z","score":88.0,"sensors":[{"comp":"temp","value":21.770000457763672},{"comp":"humid","value":41.33000183105469},{"comp":"co2","value":640.0},{"comp":"voc","value":365.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:33:44.615Z","score":88.0,"sensors":[{"comp":"temp","value":21.809999465942383},{"comp":"humid","value":41.33000183105469},{"comp":"co2","value":639.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:33:34.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.770000457763672},{"comp":"humid","value":41.38999938964844},{"comp":"co2","value":637.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:33:24.203Z","score":88.0,"sensors":[{"comp":"temp","value":21.81999969482422},{"comp":"humid","value":41.43000030517578},{"comp":"co2","value":636.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:33:14.497Z","score":88.0,"sensors":[{"comp":"temp","value":21.790000915527344},{"comp":"humid","value":41.369998931884766},{"comp":"co2","value":635.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:33:03.653Z","score":88.0,"sensors":[{"comp":"temp","value":21.81999969482422},{"comp":"humid","value":41.5099983215332},{"comp":"co2","value":634.0},{"comp":"voc","value":365.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:32:54.013Z","score":88.0,"sensors":[{"comp":"temp","value":21.809999465942383},{"comp":"humid","value":41.38999938964844},{"comp":"co2","value":636.0},{"comp":"voc","value":366.0},{"comp":"dust","value":12.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:32:44.387Z","score":88.0,"sensors":[{"comp":"temp","value":21.780000686645508},{"comp":"humid","value":41.349998474121094},{"comp":"co2","value":638.0},{"comp":"voc","value":366.0},{"comp":"dust","value":12.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:32:33.538Z","score":88.0,"sensors":[{"comp":"temp","value":21.809999465942383},{"comp":"humid","value":41.22999954223633},{"comp":"co2","value":638.0},{"comp":"voc","value":365.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:32:23.899Z","score":88.0,"sensors":[{"comp":"temp","value":21.81999969482422},{"comp":"humid","value":41.310001373291016},{"comp":"co2","value":637.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:32:14.256Z","score":88.0,"sensors":[{"comp":"temp","value":21.809999465942383},{"comp":"humid","value":41.40999984741211},{"comp":"co2","value":637.0},{"comp":"voc","value":366.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:32:04.638Z","score":88.0,"sensors":[{"comp":"temp","value":21.790000915527344},{"comp":"humid","value":41.36000061035156},{"comp":"co2","value":638.0},{"comp":"voc","value":366.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:31:53.780Z","score":88.0,"sensors":[{"comp":"temp","value":21.780000686645508},{"comp":"humid","value":41.439998626708984},{"comp":"co2","value":637.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:31:44.143Z","score":88.0,"sensors":[{"comp":"temp","value":21.790000915527344},{"comp":"humid","value":41.34000015258789},{"comp":"co2","value":634.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:31:34.504Z","score":88.0,"sensors":[{"comp":"temp","value":21.809999465942383},{"comp":"humid","value":41.25},{"comp":"co2","value":635.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:31:23.669Z","score":88.0,"sensors":[{"comp":"temp","value":21.81999969482422},{"comp":"humid","value":41.20000076293945},{"comp":"co2","value":634.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:31:14.028Z","score":88.0,"sensors":[{"comp":"temp","value":21.81999969482422},{"comp":"humid","value":41.220001220703125},{"comp":"co2","value":633.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:31:04.383Z","score":88.0,"sensors":[{"comp":"temp","value":21.84000015258789},{"comp":"humid","value":41.36000061035156},{"comp":"co2","value":632.0},{"comp":"voc","value":365.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:30:53.560Z","score":88.0,"sensors":[{"comp":"temp","value":21.809999465942383},{"comp":"humid","value":41.33000183105469},{"comp":"co2","value":631.0},{"comp":"voc","value":366.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:30:43.908Z","score":88.0,"sensors":[{"comp":"temp","value":21.81999969482422},{"comp":"humid","value":41.38999938964844},{"comp":"co2","value":629.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:30:34.266Z","score":88.0,"sensors":[{"comp":"temp","value":21.84000015258789},{"comp":"humid","value":41.33000183105469},{"comp":"co2","value":627.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:30:23.426Z","score":88.0,"sensors":[{"comp":"temp","value":21.81999969482422},{"comp":"humid","value":41.33000183105469},{"comp":"co2","value":626.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:30:13.815Z","score":88.0,"sensors":[{"comp":"temp","value":21.81999969482422},{"comp":"humid","value":41.380001068115234},{"comp":"co2","value":625.0},{"comp":"voc","value":366.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:30:04.147Z","score":88.0,"sensors":[{"comp":"temp","value":21.84000015258789},{"comp":"humid","value":41.380001068115234},{"comp":"co2","value":626.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:29:53.341Z","score":88.0,"sensors":[{"comp":"temp","value":21.84000015258789},{"comp":"humid","value":41.310001373291016},{"comp":"co2","value":626.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:29:43.684Z","score":88.0,"sensors":[{"comp":"temp","value":21.81999969482422},{"comp":"humid","value":41.36000061035156},{"comp":"co2","value":626.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:29:34.036Z","score":88.0,"sensors":[{"comp":"temp","value":21.84000015258789},{"comp":"humid","value":41.380001068115234},{"comp":"co2","value":624.0},{"comp":"voc","value":366.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:29:24.390Z","score":89.0,"sensors":[{"comp":"temp","value":21.8700008392334},{"comp":"humid","value":41.40999984741211},{"comp":"co2","value":623.0},{"comp":"voc","value":365.0},{"comp":"dust","value":12.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:29:13.551Z","score":89.0,"sensors":[{"comp":"temp","value":21.84000015258789},{"comp":"humid","value":41.349998474121094},{"comp":"co2","value":623.0},{"comp":"voc","value":363.0},{"comp":"dust","value":12.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:29:03.911Z","score":88.0,"sensors":[{"comp":"temp","value":21.84000015258789},{"comp":"humid","value":41.36000061035156},{"comp":"co2","value":624.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:28:54.273Z","score":88.0,"sensors":[{"comp":"temp","value":21.850000381469727},{"comp":"humid","value":41.279998779296875},{"comp":"co2","value":624.0},{"comp":"voc","value":366.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:28:43.435Z","score":88.0,"sensors":[{"comp":"temp","value":21.8700008392334},{"comp":"humid","value":41.25},{"comp":"co2","value":622.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:28:33.792Z","score":88.0,"sensors":[{"comp":"temp","value":21.84000015258789},{"comp":"humid","value":41.22999954223633},{"comp":"co2","value":622.0},{"comp":"voc","value":365.0},{"comp":"dust","value":12.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:28:24.161Z","score":88.0,"sensors":[{"comp":"temp","value":21.8799991607666},{"comp":"humid","value":41.25},{"comp":"co2","value":621.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:28:13.316Z","score":88.0,"sensors":[{"comp":"temp","value":21.8799991607666},{"comp":"humid","value":41.2400016784668},{"comp":"co2","value":621.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:28:03.677Z","score":88.0,"sensors":[{"comp":"temp","value":21.8700008392334},{"comp":"humid","value":41.2400016784668},{"comp":"co2","value":621.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:27:54.036Z","score":88.0,"sensors":[{"comp":"temp","value":21.8799991607666},{"comp":"humid","value":41.25},{"comp":"co2","value":619.0},{"comp":"voc","value":363.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:27:43.204Z","score":88.0,"sensors":[{"comp":"temp","value":21.8799991607666},{"comp":"humid","value":41.349998474121094},{"comp":"co2","value":617.0},{"comp":"voc","value":365.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:27:33.596Z","score":88.0,"sensors":[{"comp":"temp","value":21.8700008392334},{"comp":"humid","value":41.2400016784668},{"comp":"co2","value":618.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:27:23.923Z","score":88.0,"sensors":[{"comp":"temp","value":21.8700008392334},{"comp":"humid","value":41.16999816894531},{"comp":"co2","value":618.0},{"comp":"voc","value":365.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:27:14.279Z","score":88.0,"sensors":[{"comp":"temp","value":21.8700008392334},{"comp":"humid","value":41.20000076293945},{"comp":"co2","value":619.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:27:03.444Z","score":88.0,"sensors":[{"comp":"temp","value":21.8700008392334},{"comp":"humid","value":41.220001220703125},{"comp":"co2","value":621.0},{"comp":"voc","value":363.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:26:53.803Z","score":88.0,"sensors":[{"comp":"temp","value":21.8799991607666},{"comp":"humid","value":41.369998931884766},{"comp":"co2","value":620.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:26:44.164Z","score":88.0,"sensors":[{"comp":"temp","value":21.84000015258789},{"comp":"humid","value":41.310001373291016},{"comp":"co2","value":618.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:26:33.326Z","score":88.0,"sensors":[{"comp":"temp","value":21.8700008392334},{"comp":"humid","value":41.2400016784668},{"comp":"co2","value":617.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:26:23.708Z","score":88.0,"sensors":[{"comp":"temp","value":21.8799991607666},{"comp":"humid","value":41.29999923706055},{"comp":"co2","value":618.0},{"comp":"voc","value":363.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:26:14.050Z","score":88.0,"sensors":[{"comp":"temp","value":21.850000381469727},{"comp":"humid","value":41.29999923706055},{"comp":"co2","value":619.0},{"comp":"voc","value":362.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:26:03.213Z","score":88.0,"sensors":[{"comp":"temp","value":21.84000015258789},{"comp":"humid","value":41.279998779296875},{"comp":"co2","value":620.0},{"comp":"voc","value":363.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:25:53.565Z","score":88.0,"sensors":[{"comp":"temp","value":21.84000015258789},{"comp":"humid","value":41.279998779296875},{"comp":"co2","value":621.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:25:43.929Z","score":88.0,"sensors":[{"comp":"temp","value":21.84000015258789},{"comp":"humid","value":41.22999954223633},{"comp":"co2","value":621.0},{"comp":"voc","value":365.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:25:33.094Z","score":88.0,"sensors":[{"comp":"temp","value":21.8700008392334},{"comp":"humid","value":41.150001525878906},{"comp":"co2","value":620.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:25:23.451Z","score":88.0,"sensors":[{"comp":"temp","value":21.850000381469727},{"comp":"humid","value":41.29999923706055},{"comp":"co2","value":621.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:25:13.816Z","score":88.0,"sensors":[{"comp":"temp","value":21.850000381469727},{"comp":"humid","value":41.29999923706055},{"comp":"co2","value":623.0},{"comp":"voc","value":363.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:25:03.032Z","score":88.0,"sensors":[{"comp":"temp","value":21.8799991607666},{"comp":"humid","value":41.220001220703125},{"comp":"co2","value":623.0},{"comp":"voc","value":365.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:24:53.382Z","score":88.0,"sensors":[{"comp":"temp","value":21.8700008392334},{"comp":"humid","value":41.220001220703125},{"comp":"co2","value":622.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:24:43.695Z","score":88.0,"sensors":[{"comp":"temp","value":21.8700008392334},{"comp":"humid","value":41.13999938964844},{"comp":"co2","value":622.0},{"comp":"voc","value":363.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:24:34.061Z","score":88.0,"sensors":[{"comp":"temp","value":21.850000381469727},{"comp":"humid","value":41.2400016784668},{"comp":"co2","value":622.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:24:23.222Z","score":88.0,"sensors":[{"comp":"temp","value":21.8700008392334},{"comp":"humid","value":41.16999816894531},{"comp":"co2","value":623.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:24:13.574Z","score":88.0,"sensors":[{"comp":"temp","value":21.8700008392334},{"comp":"humid","value":41.150001525878906},{"comp":"co2","value":625.0},{"comp":"voc","value":363.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:24:03.933Z","score":88.0,"sensors":[{"comp":"temp","value":21.8799991607666},{"comp":"humid","value":41.20000076293945},{"comp":"co2","value":622.0},{"comp":"voc","value":365.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:23:53.102Z","score":88.0,"sensors":[{"comp":"temp","value":21.8700008392334},{"comp":"humid","value":41.29999923706055},{"comp":"co2","value":622.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:23:43.485Z","score":88.0,"sensors":[{"comp":"temp","value":21.850000381469727},{"comp":"humid","value":41.29999923706055},{"comp":"co2","value":622.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:23:33.896Z","score":88.0,"sensors":[{"comp":"temp","value":21.8700008392334},{"comp":"humid","value":41.349998474121094},{"comp":"co2","value":623.0},{"comp":"voc","value":363.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:23:23.036Z","score":88.0,"sensors":[{"comp":"temp","value":21.8700008392334},{"comp":"humid","value":41.310001373291016},{"comp":"co2","value":623.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:23:13.350Z","score":88.0,"sensors":[{"comp":"temp","value":21.8700008392334},{"comp":"humid","value":41.279998779296875},{"comp":"co2","value":622.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:23:03.701Z","score":88.0,"sensors":[{"comp":"temp","value":21.8799991607666},{"comp":"humid","value":41.25},{"comp":"co2","value":621.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:22:52.869Z","score":88.0,"sensors":[{"comp":"temp","value":21.8700008392334},{"comp":"humid","value":41.349998474121094},{"comp":"co2","value":622.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:22:43.229Z","score":88.0,"sensors":[{"comp":"temp","value":21.8700008392334},{"comp":"humid","value":41.310001373291016},{"comp":"co2","value":623.0},{"comp":"voc","value":363.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:22:33.581Z","score":88.0,"sensors":[{"comp":"temp","value":21.8700008392334},{"comp":"humid","value":41.29999923706055},{"comp":"co2","value":624.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:22:22.808Z","score":88.0,"sensors":[{"comp":"temp","value":21.889999389648438},{"comp":"humid","value":41.290000915527344},{"comp":"co2","value":625.0},{"comp":"voc","value":362.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:22:13.103Z","score":88.0,"sensors":[{"comp":"temp","value":21.8799991607666},{"comp":"humid","value":41.20000076293945},{"comp":"co2","value":624.0},{"comp":"voc","value":362.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:22:03.465Z","score":88.0,"sensors":[{"comp":"temp","value":21.8799991607666},{"comp":"humid","value":41.27000045776367},{"comp":"co2","value":624.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:21:53.827Z","score":88.0,"sensors":[{"comp":"temp","value":21.90999984741211},{"comp":"humid","value":41.2599983215332},{"comp":"co2","value":625.0},{"comp":"voc","value":363.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:21:42.988Z","score":88.0,"sensors":[{"comp":"temp","value":21.889999389648438},{"comp":"humid","value":41.2599983215332},{"comp":"co2","value":627.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:21:33.347Z","score":88.0,"sensors":[{"comp":"temp","value":21.8799991607666},{"comp":"humid","value":41.27000045776367},{"comp":"co2","value":626.0},{"comp":"voc","value":363.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:21:23.732Z","score":88.0,"sensors":[{"comp":"temp","value":21.8799991607666},{"comp":"humid","value":41.220001220703125},{"comp":"co2","value":626.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:21:12.866Z","score":88.0,"sensors":[{"comp":"temp","value":21.889999389648438},{"comp":"humid","value":41.2400016784668},{"comp":"co2","value":626.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:21:03.234Z","score":88.0,"sensors":[{"comp":"temp","value":21.8799991607666},{"comp":"humid","value":41.27000045776367},{"comp":"co2","value":628.0},{"comp":"voc","value":363.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:20:53.602Z","score":88.0,"sensors":[{"comp":"temp","value":21.90999984741211},{"comp":"humid","value":41.27000045776367},{"comp":"co2","value":628.0},{"comp":"voc","value":363.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:20:42.752Z","score":88.0,"sensors":[{"comp":"temp","value":21.889999389648438},{"comp":"humid","value":41.290000915527344},{"comp":"co2","value":630.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:20:33.115Z","score":88.0,"sensors":[{"comp":"temp","value":21.889999389648438},{"comp":"humid","value":41.33000183105469},{"comp":"co2","value":632.0},{"comp":"voc","value":363.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:20:23.472Z","score":88.0,"sensors":[{"comp":"temp","value":21.8700008392334},{"comp":"humid","value":41.349998474121094},{"comp":"co2","value":631.0},{"comp":"voc","value":362.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:20:12.632Z","score":88.0,"sensors":[{"comp":"temp","value":21.84000015258789},{"comp":"humid","value":41.33000183105469},{"comp":"co2","value":631.0},{"comp":"voc","value":363.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:20:02.994Z","score":88.0,"sensors":[{"comp":"temp","value":21.8700008392334},{"comp":"humid","value":41.349998474121094},{"comp":"co2","value":632.0},{"comp":"voc","value":363.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:19:53.360Z","score":88.0,"sensors":[{"comp":"temp","value":21.84000015258789},{"comp":"humid","value":41.349998474121094},{"comp":"co2","value":634.0},{"comp":"voc","value":362.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:19:42.626Z","score":88.0,"sensors":[{"comp":"temp","value":21.81999969482422},{"comp":"humid","value":41.380001068115234},{"comp":"co2","value":635.0},{"comp":"voc","value":363.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:19:32.876Z","score":88.0,"sensors":[{"comp":"temp","value":21.809999465942383},{"comp":"humid","value":41.40999984741211},{"comp":"co2","value":635.0},{"comp":"voc","value":363.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:19:23.246Z","score":88.0,"sensors":[{"comp":"temp","value":21.780000686645508},{"comp":"humid","value":41.52000045776367},{"comp":"co2","value":637.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:19:13.601Z","score":88.0,"sensors":[{"comp":"temp","value":21.790000915527344},{"comp":"humid","value":41.54999923706055},{"comp":"co2","value":634.0},{"comp":"voc","value":363.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:19:02.757Z","score":88.0,"sensors":[{"comp":"temp","value":21.780000686645508},{"comp":"humid","value":41.54999923706055},{"comp":"co2","value":634.0},{"comp":"voc","value":362.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:18:53.118Z","score":88.0,"sensors":[{"comp":"temp","value":21.770000457763672},{"comp":"humid","value":41.619998931884766},{"comp":"co2","value":634.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:18:43.480Z","score":88.0,"sensors":[{"comp":"temp","value":21.770000457763672},{"comp":"humid","value":41.650001525878906},{"comp":"co2","value":632.0},{"comp":"voc","value":363.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:18:32.648Z","score":88.0,"sensors":[{"comp":"temp","value":21.719999313354492},{"comp":"humid","value":41.65999984741211},{"comp":"co2","value":632.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:18:23.000Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.630001068115234},{"comp":"co2","value":633.0},{"comp":"voc","value":362.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:18:13.363Z","score":88.0,"sensors":[{"comp":"temp","value":21.719999313354492},{"comp":"humid","value":41.599998474121094},{"comp":"co2","value":633.0},{"comp":"voc","value":363.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:18:02.523Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.650001525878906},{"comp":"co2","value":633.0},{"comp":"voc","value":362.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:17:52.894Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.58000183105469},{"comp":"co2","value":632.0},{"comp":"voc","value":361.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:17:43.312Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.59000015258789},{"comp":"co2","value":632.0},{"comp":"voc","value":362.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:17:32.404Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.529998779296875},{"comp":"co2","value":633.0},{"comp":"voc","value":362.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:17:22.773Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.54999923706055},{"comp":"co2","value":634.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:17:13.128Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.560001373291016},{"comp":"co2","value":633.0},{"comp":"voc","value":362.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:17:02.287Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.630001068115234},{"comp":"co2","value":633.0},{"comp":"voc","value":360.0},{"comp":"dust","value":12.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:16:52.648Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.529998779296875},{"comp":"co2","value":630.0},{"comp":"voc","value":362.0},{"comp":"dust","value":12.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:16:43.014Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.45000076293945},{"comp":"co2","value":631.0},{"comp":"voc","value":363.0},{"comp":"dust","value":12.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:16:33.370Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.5},{"comp":"co2","value":630.0},{"comp":"voc","value":363.0},{"comp":"dust","value":12.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:16:22.531Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.529998779296875},{"comp":"co2","value":631.0},{"comp":"voc","value":361.0},{"comp":"dust","value":12.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:16:12.894Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.52000045776367},{"comp":"co2","value":630.0},{"comp":"voc","value":362.0},{"comp":"dust","value":12.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:16:03.268Z","score":88.0,"sensors":[{"comp":"temp","value":21.68000030517578},{"comp":"humid","value":41.43000030517578},{"comp":"co2","value":631.0},{"comp":"voc","value":362.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:15:52.440Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.369998931884766},{"comp":"co2","value":631.0},{"comp":"voc","value":363.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:15:42.783Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.40999984741211},{"comp":"co2","value":632.0},{"comp":"voc","value":362.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:15:33.139Z","score":88.0,"sensors":[{"comp":"temp","value":21.670000076293945},{"comp":"humid","value":41.369998931884766},{"comp":"co2","value":632.0},{"comp":"voc","value":363.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:15:22.356Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.34000015258789},{"comp":"co2","value":634.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:15:12.656Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.38999938964844},{"comp":"co2","value":633.0},{"comp":"voc","value":362.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:15:03.015Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.470001220703125},{"comp":"co2","value":633.0},{"comp":"voc","value":363.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:14:52.180Z","score":88.0,"sensors":[{"comp":"temp","value":21.719999313354492},{"comp":"humid","value":41.439998626708984},{"comp":"co2","value":635.0},{"comp":"voc","value":361.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:14:42.540Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.47999954223633},{"comp":"co2","value":635.0},{"comp":"voc","value":362.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:14:32.904Z","score":88.0,"sensors":[{"comp":"temp","value":21.719999313354492},{"comp":"humid","value":41.540000915527344},{"comp":"co2","value":636.0},{"comp":"voc","value":362.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:14:22.063Z","score":88.0,"sensors":[{"comp":"temp","value":21.719999313354492},{"comp":"humid","value":41.31999969482422},{"comp":"co2","value":636.0},{"comp":"voc","value":362.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:14:12.418Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.34000015258789},{"comp":"co2","value":636.0},{"comp":"voc","value":363.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:14:02.789Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.47999954223633},{"comp":"co2","value":636.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:13:53.139Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.47999954223633},{"comp":"co2","value":636.0},{"comp":"voc","value":363.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:13:42.321Z","score":88.0,"sensors":[{"comp":"temp","value":21.719999313354492},{"comp":"humid","value":41.439998626708984},{"comp":"co2","value":636.0},{"comp":"voc","value":363.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:13:32.663Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.310001373291016},{"comp":"co2","value":636.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:13:23.021Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.439998626708984},{"comp":"co2","value":637.0},{"comp":"voc","value":363.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:13:12.183Z","score":88.0,"sensors":[{"comp":"temp","value":21.719999313354492},{"comp":"humid","value":41.31999969482422},{"comp":"co2","value":638.0},{"comp":"voc","value":363.0},{"comp":"dust","value":12.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:13:02.545Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.310001373291016},{"comp":"co2","value":637.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:12:52.937Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.439998626708984},{"comp":"co2","value":635.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:12:42.069Z","score":88.0,"sensors":[{"comp":"temp","value":21.719999313354492},{"comp":"humid","value":41.41999816894531},{"comp":"co2","value":633.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:12:32.449Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.43000030517578},{"comp":"co2","value":631.0},{"comp":"voc","value":362.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:12:22.786Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.38999938964844},{"comp":"co2","value":631.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:12:11.974Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.34000015258789},{"comp":"co2","value":631.0},{"comp":"voc","value":363.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:12:02.308Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.22999954223633},{"comp":"co2","value":632.0},{"comp":"voc","value":366.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:11:52.671Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.209999084472656},{"comp":"co2","value":631.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:11:41.833Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.27000045776367},{"comp":"co2","value":630.0},{"comp":"voc","value":366.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:11:32.191Z","score":88.0,"sensors":[{"comp":"temp","value":21.719999313354492},{"comp":"humid","value":41.369998931884766},{"comp":"co2","value":630.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:11:22.576Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.40999984741211},{"comp":"co2","value":631.0},{"comp":"voc","value":365.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:11:12.916Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.41999816894531},{"comp":"co2","value":631.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:11:02.072Z","score":88.0,"sensors":[{"comp":"temp","value":21.719999313354492},{"comp":"humid","value":41.45000076293945},{"comp":"co2","value":631.0},{"comp":"voc","value":363.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:10:52.435Z","score":88.0,"sensors":[{"comp":"temp","value":21.739999771118164},{"comp":"humid","value":41.4900016784668},{"comp":"co2","value":631.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:10:42.799Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.470001220703125},{"comp":"co2","value":630.0},{"comp":"voc","value":365.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:10:31.955Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.439998626708984},{"comp":"co2","value":631.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:10:22.322Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.400001525878906},{"comp":"co2","value":631.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:10:12.675Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.36000061035156},{"comp":"co2","value":630.0},{"comp":"voc","value":363.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:10:01.890Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.52000045776367},{"comp":"co2","value":628.0},{"comp":"voc","value":364.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:09:52.198Z","score":88.0,"sensors":[{"comp":"temp","value":21.68000030517578},{"comp":"humid","value":41.61000061035156},{"comp":"co2","value":629.0},{"comp":"voc","value":365.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:09:42.577Z","score":88.0,"sensors":[{"comp":"temp","value":21.719999313354492},{"comp":"humid","value":41.5},{"comp":"co2","value":631.0},{"comp":"voc","value":365.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:09:31.722Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.45000076293945},{"comp":"co2","value":633.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:09:22.117Z","score":88.0,"sensors":[{"comp":"temp","value":21.719999313354492},{"comp":"humid","value":41.38999938964844},{"comp":"co2","value":632.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:09:12.490Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.5},{"comp":"co2","value":632.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:09:01.599Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.52000045776367},{"comp":"co2","value":631.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:08:51.978Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.470001220703125},{"comp":"co2","value":630.0},{"comp":"voc","value":365.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:08:42.325Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.47999954223633},{"comp":"co2","value":628.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:08:32.683Z","score":88.0,"sensors":[{"comp":"temp","value":21.719999313354492},{"comp":"humid","value":41.470001220703125},{"comp":"co2","value":626.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:08:21.843Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.5},{"comp":"co2","value":627.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:08:12.204Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.47999954223633},{"comp":"co2","value":626.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:08:02.567Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.5},{"comp":"co2","value":626.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:07:51.725Z","score":88.0,"sensors":[{"comp":"temp","value":21.739999771118164},{"comp":"humid","value":41.5},{"comp":"co2","value":626.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:07:42.091Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.45000076293945},{"comp":"co2","value":624.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:07:32.449Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.529998779296875},{"comp":"co2","value":625.0},{"comp":"voc","value":364.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:07:21.626Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.5},{"comp":"co2","value":626.0},{"comp":"voc","value":366.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:07:11.977Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.45000076293945},{"comp":"co2","value":626.0},{"comp":"voc","value":366.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:07:02.360Z","score":88.0,"sensors":[{"comp":"temp","value":21.719999313354492},{"comp":"humid","value":41.56999969482422},{"comp":"co2","value":625.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:06:51.492Z","score":88.0,"sensors":[{"comp":"temp","value":21.739999771118164},{"comp":"humid","value":41.70000076293945},{"comp":"co2","value":623.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:06:41.851Z","score":88.0,"sensors":[{"comp":"temp","value":21.719999313354492},{"comp":"humid","value":41.7599983215332},{"comp":"co2","value":617.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:06:32.217Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.65999984741211},{"comp":"co2","value":616.0},{"comp":"voc","value":366.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:06:21.373Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.68000030517578},{"comp":"co2","value":614.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:06:11.735Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.65999984741211},{"comp":"co2","value":613.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:06:02.099Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.7400016784668},{"comp":"co2","value":612.0},{"comp":"voc","value":365.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:05:52.460Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.709999084472656},{"comp":"co2","value":609.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:05:41.616Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.790000915527344},{"comp":"co2","value":605.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:05:31.977Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.689998626708984},{"comp":"co2","value":603.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:05:22.370Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.68000030517578},{"comp":"co2","value":603.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:05:11.540Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.63999938964844},{"comp":"co2","value":601.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:05:01.863Z","score":88.0,"sensors":[{"comp":"temp","value":21.719999313354492},{"comp":"humid","value":41.61000061035156},{"comp":"co2","value":600.0},{"comp":"voc","value":365.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:04:52.219Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.61000061035156},{"comp":"co2","value":600.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:04:41.389Z","score":88.0,"sensors":[{"comp":"temp","value":21.68000030517578},{"comp":"humid","value":41.52000045776367},{"comp":"co2","value":601.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:04:31.745Z","score":88.0,"sensors":[{"comp":"temp","value":21.68000030517578},{"comp":"humid","value":41.52000045776367},{"comp":"co2","value":603.0},{"comp":"voc","value":368.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:04:22.109Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.529998779296875},{"comp":"co2","value":604.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:04:11.264Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.5},{"comp":"co2","value":603.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:04:01.659Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.470001220703125},{"comp":"co2","value":602.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:03:51.987Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.47999954223633},{"comp":"co2","value":601.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:03:41.147Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.650001525878906},{"comp":"co2","value":602.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:03:31.505Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.7400016784668},{"comp":"co2","value":602.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:03:21.870Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.7400016784668},{"comp":"co2","value":604.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:03:12.229Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.689998626708984},{"comp":"co2","value":604.0},{"comp":"voc","value":365.0},{"comp":"dust","value":13.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:03:01.389Z","score":88.0,"sensors":[{"comp":"temp","value":21.719999313354492},{"comp":"humid","value":41.72999954223633},{"comp":"co2","value":605.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:02:51.767Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.689998626708984},{"comp":"co2","value":607.0},{"comp":"voc","value":368.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:02:42.127Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.65999984741211},{"comp":"co2","value":607.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:02:31.276Z","score":88.0,"sensors":[{"comp":"temp","value":21.709999084472656},{"comp":"humid","value":41.58000183105469},{"comp":"co2","value":606.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:02:21.633Z","score":88.0,"sensors":[{"comp":"temp","value":21.68000030517578},{"comp":"humid","value":41.61000061035156},{"comp":"co2","value":605.0},{"comp":"voc","value":368.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:02:11.992Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.59000015258789},{"comp":"co2","value":605.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:02:01.155Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.61000061035156},{"comp":"co2","value":604.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:01:51.514Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.65999984741211},{"comp":"co2","value":604.0},{"comp":"voc","value":368.0},{"comp":"dust","value":13.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:01:41.883Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.689998626708984},{"comp":"co2","value":604.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:01:31.040Z","score":88.0,"sensors":[{"comp":"temp","value":21.68000030517578},{"comp":"humid","value":41.7400016784668},{"comp":"co2","value":603.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:01:21.397Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.849998474121094},{"comp":"co2","value":603.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:01:11.757Z","score":88.0,"sensors":[{"comp":"temp","value":21.68000030517578},{"comp":"humid","value":41.77000045776367},{"comp":"co2","value":605.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:01:00.921Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.709999084472656},{"comp":"co2","value":606.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:00:51.285Z","score":88.0,"sensors":[{"comp":"temp","value":21.670000076293945},{"comp":"humid","value":41.689998626708984},{"comp":"co2","value":605.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:00:41.643Z","score":88.0,"sensors":[{"comp":"temp","value":21.690000534057617},{"comp":"humid","value":41.7400016784668},{"comp":"co2","value":604.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:00:32.017Z","score":88.0,"sensors":[{"comp":"temp","value":21.68000030517578},{"comp":"humid","value":41.77000045776367},{"comp":"co2","value":602.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:00:21.199Z","score":88.0,"sensors":[{"comp":"temp","value":21.670000076293945},{"comp":"humid","value":41.7400016784668},{"comp":"co2","value":601.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:00:11.530Z","score":88.0,"sensors":[{"comp":"temp","value":21.670000076293945},{"comp":"humid","value":41.689998626708984},{"comp":"co2","value":599.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T15:00:01.907Z","score":88.0,"sensors":[{"comp":"temp","value":21.649999618530273},{"comp":"humid","value":41.7400016784668},{"comp":"co2","value":598.0},{"comp":"voc","value":368.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:59:51.049Z","score":88.0,"sensors":[{"comp":"temp","value":21.670000076293945},{"comp":"humid","value":41.709999084472656},{"comp":"co2","value":597.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:59:41.492Z","score":88.0,"sensors":[{"comp":"temp","value":21.649999618530273},{"comp":"humid","value":41.720001220703125},{"comp":"co2","value":596.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:59:31.847Z","score":88.0,"sensors":[{"comp":"temp","value":21.670000076293945},{"comp":"humid","value":41.709999084472656},{"comp":"co2","value":595.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:59:21.029Z","score":88.0,"sensors":[{"comp":"temp","value":21.670000076293945},{"comp":"humid","value":41.720001220703125},{"comp":"co2","value":595.0},{"comp":"voc","value":366.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:59:11.389Z","score":88.0,"sensors":[{"comp":"temp","value":21.670000076293945},{"comp":"humid","value":41.63999938964844},{"comp":"co2","value":596.0},{"comp":"voc","value":367.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:59:01.753Z","score":88.0,"sensors":[{"comp":"temp","value":21.639999389648438},{"comp":"humid","value":41.61000061035156},{"comp":"co2","value":597.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:58:50.913Z","score":88.0,"sensors":[{"comp":"temp","value":21.670000076293945},{"comp":"humid","value":41.59000015258789},{"comp":"co2","value":597.0},{"comp":"voc","value":368.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:58:41.275Z","score":88.0,"sensors":[{"comp":"temp","value":21.670000076293945},{"comp":"humid","value":41.630001068115234},{"comp":"co2","value":596.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:58:31.634Z","score":88.0,"sensors":[{"comp":"temp","value":21.649999618530273},{"comp":"humid","value":41.59000015258789},{"comp":"co2","value":596.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:58:20.794Z","score":88.0,"sensors":[{"comp":"temp","value":21.639999389648438},{"comp":"humid","value":41.560001373291016},{"comp":"co2","value":597.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:58:11.158Z","score":88.0,"sensors":[{"comp":"temp","value":21.639999389648438},{"comp":"humid","value":41.5099983215332},{"comp":"co2","value":595.0},{"comp":"voc","value":368.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:58:01.520Z","score":88.0,"sensors":[{"comp":"temp","value":21.639999389648438},{"comp":"humid","value":41.61000061035156},{"comp":"co2","value":595.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:57:50.678Z","score":88.0,"sensors":[{"comp":"temp","value":21.639999389648438},{"comp":"humid","value":41.61000061035156},{"comp":"co2","value":597.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:57:41.038Z","score":88.0,"sensors":[{"comp":"temp","value":21.639999389648438},{"comp":"humid","value":41.65999984741211},{"comp":"co2","value":596.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:57:31.400Z","score":88.0,"sensors":[{"comp":"temp","value":21.639999389648438},{"comp":"humid","value":41.63999938964844},{"comp":"co2","value":594.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:57:21.788Z","score":88.0,"sensors":[{"comp":"temp","value":21.639999389648438},{"comp":"humid","value":41.630001068115234},{"comp":"co2","value":593.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:57:10.921Z","score":88.0,"sensors":[{"comp":"temp","value":21.639999389648438},{"comp":"humid","value":41.630001068115234},{"comp":"co2","value":591.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:57:01.289Z","score":88.0,"sensors":[{"comp":"temp","value":21.649999618530273},{"comp":"humid","value":41.560001373291016},{"comp":"co2","value":589.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:56:51.648Z","score":88.0,"sensors":[{"comp":"temp","value":21.6200008392334},{"comp":"humid","value":41.560001373291016},{"comp":"co2","value":588.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:56:40.863Z","score":88.0,"sensors":[{"comp":"temp","value":21.639999389648438},{"comp":"humid","value":41.689998626708984},{"comp":"co2","value":587.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:56:31.172Z","score":88.0,"sensors":[{"comp":"temp","value":21.6200008392334},{"comp":"humid","value":41.70000076293945},{"comp":"co2","value":587.0},{"comp":"voc","value":368.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:56:21.548Z","score":88.0,"sensors":[{"comp":"temp","value":21.6200008392334},{"comp":"humid","value":41.65999984741211},{"comp":"co2","value":588.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:56:10.687Z","score":88.0,"sensors":[{"comp":"temp","value":21.610000610351562},{"comp":"humid","value":41.61000061035156},{"comp":"co2","value":589.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:56:01.055Z","score":88.0,"sensors":[{"comp":"temp","value":21.639999389648438},{"comp":"humid","value":41.689998626708984},{"comp":"co2","value":590.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:55:51.461Z","score":88.0,"sensors":[{"comp":"temp","value":21.610000610351562},{"comp":"humid","value":41.63999938964844},{"comp":"co2","value":589.0},{"comp":"voc","value":368.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:55:40.567Z","score":88.0,"sensors":[{"comp":"temp","value":21.6200008392334},{"comp":"humid","value":41.66999816894531},{"comp":"co2","value":587.0},{"comp":"voc","value":370.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:55:30.955Z","score":88.0,"sensors":[{"comp":"temp","value":21.610000610351562},{"comp":"humid","value":41.630001068115234},{"comp":"co2","value":588.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:55:21.333Z","score":88.0,"sensors":[{"comp":"temp","value":21.610000610351562},{"comp":"humid","value":41.59000015258789},{"comp":"co2","value":586.0},{"comp":"voc","value":368.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:55:10.457Z","score":88.0,"sensors":[{"comp":"temp","value":21.610000610351562},{"comp":"humid","value":41.560001373291016},{"comp":"co2","value":585.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:55:00.812Z","score":88.0,"sensors":[{"comp":"temp","value":21.610000610351562},{"comp":"humid","value":41.540000915527344},{"comp":"co2","value":586.0},{"comp":"voc","value":368.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:54:51.173Z","score":88.0,"sensors":[{"comp":"temp","value":21.6200008392334},{"comp":"humid","value":41.560001373291016},{"comp":"co2","value":589.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:54:41.539Z","score":88.0,"sensors":[{"comp":"temp","value":21.600000381469727},{"comp":"humid","value":41.59000015258789},{"comp":"co2","value":588.0},{"comp":"voc","value":368.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:54:30.693Z","score":88.0,"sensors":[{"comp":"temp","value":21.610000610351562},{"comp":"humid","value":41.61000061035156},{"comp":"co2","value":588.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:54:21.058Z","score":88.0,"sensors":[{"comp":"temp","value":21.6200008392334},{"comp":"humid","value":41.4900016784668},{"comp":"co2","value":588.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:54:11.417Z","score":88.0,"sensors":[{"comp":"temp","value":21.600000381469727},{"comp":"humid","value":41.5099983215332},{"comp":"co2","value":588.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:54:00.575Z","score":88.0,"sensors":[{"comp":"temp","value":21.610000610351562},{"comp":"humid","value":41.540000915527344},{"comp":"co2","value":588.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:53:50.935Z","score":88.0,"sensors":[{"comp":"temp","value":21.610000610351562},{"comp":"humid","value":41.4900016784668},{"comp":"co2","value":590.0},{"comp":"voc","value":368.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:53:41.325Z","score":88.0,"sensors":[{"comp":"temp","value":21.610000610351562},{"comp":"humid","value":41.5099983215332},{"comp":"co2","value":590.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:53:30.465Z","score":88.0,"sensors":[{"comp":"temp","value":21.610000610351562},{"comp":"humid","value":41.58000183105469},{"comp":"co2","value":588.0},{"comp":"voc","value":370.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:53:20.819Z","score":88.0,"sensors":[{"comp":"temp","value":21.610000610351562},{"comp":"humid","value":41.4900016784668},{"comp":"co2","value":588.0},{"comp":"voc","value":370.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:53:11.181Z","score":88.0,"sensors":[{"comp":"temp","value":21.6200008392334},{"comp":"humid","value":41.59000015258789},{"comp":"co2","value":588.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:53:00.414Z","score":88.0,"sensors":[{"comp":"temp","value":21.600000381469727},{"comp":"humid","value":41.70000076293945},{"comp":"co2","value":586.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:52:50.699Z","score":88.0,"sensors":[{"comp":"temp","value":21.600000381469727},{"comp":"humid","value":41.7400016784668},{"comp":"co2","value":586.0},{"comp":"voc","value":371.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:52:41.059Z","score":88.0,"sensors":[{"comp":"temp","value":21.579999923706055},{"comp":"humid","value":41.650001525878906},{"comp":"co2","value":588.0},{"comp":"voc","value":371.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:52:30.222Z","score":88.0,"sensors":[{"comp":"temp","value":21.56999969482422},{"comp":"humid","value":41.4900016784668},{"comp":"co2","value":590.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:52:20.596Z","score":88.0,"sensors":[{"comp":"temp","value":21.600000381469727},{"comp":"humid","value":41.43000030517578},{"comp":"co2","value":592.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:52:10.946Z","score":88.0,"sensors":[{"comp":"temp","value":21.600000381469727},{"comp":"humid","value":41.5099983215332},{"comp":"co2","value":594.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:52:01.304Z","score":88.0,"sensors":[{"comp":"temp","value":21.56999969482422},{"comp":"humid","value":41.560001373291016},{"comp":"co2","value":595.0},{"comp":"voc","value":370.0},{"comp":"dust","value":13.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:51:50.465Z","score":88.0,"sensors":[{"comp":"temp","value":21.600000381469727},{"comp":"humid","value":41.5099983215332},{"comp":"co2","value":596.0},{"comp":"voc","value":371.0},{"comp":"dust","value":13.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:51:40.832Z","score":88.0,"sensors":[{"comp":"temp","value":21.579999923706055},{"comp":"humid","value":41.59000015258789},{"comp":"co2","value":598.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:51:31.195Z","score":88.0,"sensors":[{"comp":"temp","value":21.579999923706055},{"comp":"humid","value":41.63999938964844},{"comp":"co2","value":597.0},{"comp":"voc","value":372.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:51:20.346Z","score":88.0,"sensors":[{"comp":"temp","value":21.600000381469727},{"comp":"humid","value":41.77000045776367},{"comp":"co2","value":598.0},{"comp":"voc","value":373.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:51:10.723Z","score":88.0,"sensors":[{"comp":"temp","value":21.600000381469727},{"comp":"humid","value":41.779998779296875},{"comp":"co2","value":598.0},{"comp":"voc","value":371.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:51:01.077Z","score":88.0,"sensors":[{"comp":"temp","value":21.579999923706055},{"comp":"humid","value":41.83000183105469},{"comp":"co2","value":598.0},{"comp":"voc","value":372.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:50:50.233Z","score":88.0,"sensors":[{"comp":"temp","value":21.56999969482422},{"comp":"humid","value":41.79999923706055},{"comp":"co2","value":596.0},{"comp":"voc","value":371.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:50:40.593Z","score":88.0,"sensors":[{"comp":"temp","value":21.56999969482422},{"comp":"humid","value":41.66999816894531},{"comp":"co2","value":595.0},{"comp":"voc","value":370.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:50:30.953Z","score":88.0,"sensors":[{"comp":"temp","value":21.540000915527344},{"comp":"humid","value":41.70000076293945},{"comp":"co2","value":595.0},{"comp":"voc","value":371.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:50:20.110Z","score":88.0,"sensors":[{"comp":"temp","value":21.559999465942383},{"comp":"humid","value":41.720001220703125},{"comp":"co2","value":595.0},{"comp":"voc","value":373.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:50:10.473Z","score":88.0,"sensors":[{"comp":"temp","value":21.540000915527344},{"comp":"humid","value":41.650001525878906},{"comp":"co2","value":596.0},{"comp":"voc","value":371.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:50:00.837Z","score":88.0,"sensors":[{"comp":"temp","value":21.540000915527344},{"comp":"humid","value":41.63999938964844},{"comp":"co2","value":596.0},{"comp":"voc","value":370.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:49:50.001Z","score":88.0,"sensors":[{"comp":"temp","value":21.56999969482422},{"comp":"humid","value":41.650001525878906},{"comp":"co2","value":595.0},{"comp":"voc","value":373.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:49:40.378Z","score":88.0,"sensors":[{"comp":"temp","value":21.56999969482422},{"comp":"humid","value":41.720001220703125},{"comp":"co2","value":594.0},{"comp":"voc","value":371.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:49:30.724Z","score":88.0,"sensors":[{"comp":"temp","value":21.540000915527344},{"comp":"humid","value":41.75},{"comp":"co2","value":593.0},{"comp":"voc","value":373.0},{"comp":"dust","value":13.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:49:21.078Z","score":88.0,"sensors":[{"comp":"temp","value":21.540000915527344},{"comp":"humid","value":41.63999938964844},{"comp":"co2","value":594.0},{"comp":"voc","value":372.0},{"comp":"dust","value":13.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:49:10.243Z","score":88.0,"sensors":[{"comp":"temp","value":21.540000915527344},{"comp":"humid","value":41.619998931884766},{"comp":"co2","value":595.0},{"comp":"voc","value":371.0},{"comp":"dust","value":13.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:49:00.603Z","score":88.0,"sensors":[{"comp":"temp","value":21.540000915527344},{"comp":"humid","value":41.63999938964844},{"comp":"co2","value":596.0},{"comp":"voc","value":370.0},{"comp":"dust","value":13.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:48:50.965Z","score":88.0,"sensors":[{"comp":"temp","value":21.559999465942383},{"comp":"humid","value":41.4900016784668},{"comp":"co2","value":597.0},{"comp":"voc","value":372.0},{"comp":"dust","value":13.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:48:40.124Z","score":88.0,"sensors":[{"comp":"temp","value":21.540000915527344},{"comp":"humid","value":41.619998931884766},{"comp":"co2","value":597.0},{"comp":"voc","value":372.0},{"comp":"dust","value":13.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:48:30.481Z","score":88.0,"sensors":[{"comp":"temp","value":21.56999969482422},{"comp":"humid","value":41.59000015258789},{"comp":"co2","value":597.0},{"comp":"voc","value":374.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:48:20.864Z","score":88.0,"sensors":[{"comp":"temp","value":21.540000915527344},{"comp":"humid","value":41.52000045776367},{"comp":"co2","value":595.0},{"comp":"voc","value":373.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:48:10.004Z","score":88.0,"sensors":[{"comp":"temp","value":21.540000915527344},{"comp":"humid","value":41.54999923706055},{"comp":"co2","value":594.0},{"comp":"voc","value":373.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:48:00.368Z","score":88.0,"sensors":[{"comp":"temp","value":21.540000915527344},{"comp":"humid","value":41.72999954223633},{"comp":"co2","value":592.0},{"comp":"voc","value":373.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:47:50.726Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.90999984741211},{"comp":"co2","value":591.0},{"comp":"voc","value":372.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:47:39.883Z","score":88.0,"sensors":[{"comp":"temp","value":21.540000915527344},{"comp":"humid","value":41.90999984741211},{"comp":"co2","value":589.0},{"comp":"voc","value":371.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:47:30.245Z","score":88.0,"sensors":[{"comp":"temp","value":21.540000915527344},{"comp":"humid","value":41.779998779296875},{"comp":"co2","value":588.0},{"comp":"voc","value":371.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:47:20.609Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.88999938964844},{"comp":"co2","value":587.0},{"comp":"voc","value":372.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:47:09.780Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.880001068115234},{"comp":"co2","value":585.0},{"comp":"voc","value":372.0},{"comp":"dust","value":13.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:47:00.128Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.880001068115234},{"comp":"co2","value":583.0},{"comp":"voc","value":372.0},{"comp":"dust","value":13.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:46:50.488Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.810001373291016},{"comp":"co2","value":583.0},{"comp":"voc","value":373.0},{"comp":"dust","value":13.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:46:40.860Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.939998626708984},{"comp":"co2","value":583.0},{"comp":"voc","value":372.0},{"comp":"dust","value":13.699999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:46:30.013Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.650001525878906},{"comp":"co2","value":583.0},{"comp":"voc","value":371.0},{"comp":"dust","value":13.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:46:20.371Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.720001220703125},{"comp":"co2","value":582.0},{"comp":"voc","value":372.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:46:10.741Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.779998779296875},{"comp":"co2","value":580.0},{"comp":"voc","value":372.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:45:59.904Z","score":88.0,"sensors":[{"comp":"temp","value":21.510000228881836},{"comp":"humid","value":41.7599983215332},{"comp":"co2","value":579.0},{"comp":"voc","value":370.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:45:50.270Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.689998626708984},{"comp":"co2","value":578.0},{"comp":"voc","value":370.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:45:40.614Z","score":88.0,"sensors":[{"comp":"temp","value":21.540000915527344},{"comp":"humid","value":41.68000030517578},{"comp":"co2","value":577.0},{"comp":"voc","value":372.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:45:29.785Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.75},{"comp":"co2","value":574.0},{"comp":"voc","value":371.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:45:20.133Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.75},{"comp":"co2","value":573.0},{"comp":"voc","value":371.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:45:10.496Z","score":88.0,"sensors":[{"comp":"temp","value":21.510000228881836},{"comp":"humid","value":41.79999923706055},{"comp":"co2","value":573.0},{"comp":"voc","value":370.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:44:59.660Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.810001373291016},{"comp":"co2","value":570.0},{"comp":"voc","value":370.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:44:50.018Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.75},{"comp":"co2","value":570.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:44:40.376Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.7599983215332},{"comp":"co2","value":568.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:44:29.536Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.7599983215332},{"comp":"co2","value":565.0},{"comp":"voc","value":371.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:44:19.902Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.7599983215332},{"comp":"co2","value":565.0},{"comp":"voc","value":370.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:44:10.267Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.779998779296875},{"comp":"co2","value":567.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:44:00.632Z","score":88.0,"sensors":[{"comp":"temp","value":21.540000915527344},{"comp":"humid","value":41.75},{"comp":"co2","value":567.0},{"comp":"voc","value":370.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:43:49.783Z","score":88.0,"sensors":[{"comp":"temp","value":21.510000228881836},{"comp":"humid","value":41.810001373291016},{"comp":"co2","value":567.0},{"comp":"voc","value":371.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:43:40.148Z","score":88.0,"sensors":[{"comp":"temp","value":21.510000228881836},{"comp":"humid","value":41.83000183105469},{"comp":"co2","value":567.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:43:30.506Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.7599983215332},{"comp":"co2","value":565.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.5}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:43:19.671Z","score":88.0,"sensors":[{"comp":"temp","value":21.510000228881836},{"comp":"humid","value":41.709999084472656},{"comp":"co2","value":563.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:43:10.026Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.72999954223633},{"comp":"co2","value":562.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.300000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:43:00.385Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.689998626708984},{"comp":"co2","value":563.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:42:49.551Z","score":88.0,"sensors":[{"comp":"temp","value":21.510000228881836},{"comp":"humid","value":41.599998474121094},{"comp":"co2","value":564.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:42:39.918Z","score":88.0,"sensors":[{"comp":"temp","value":21.479999542236328},{"comp":"humid","value":41.630001068115234},{"comp":"co2","value":565.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:42:30.282Z","score":88.0,"sensors":[{"comp":"temp","value":21.5},{"comp":"humid","value":41.70000076293945},{"comp":"co2","value":564.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:42:19.485Z","score":88.0,"sensors":[{"comp":"temp","value":21.510000228881836},{"comp":"humid","value":41.70000076293945},{"comp":"co2","value":561.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:42:09.799Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.689998626708984},{"comp":"co2","value":561.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:42:00.150Z","score":88.0,"sensors":[{"comp":"temp","value":21.510000228881836},{"comp":"humid","value":41.70000076293945},{"comp":"co2","value":561.0},{"comp":"voc","value":369.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:41:49.313Z","score":88.0,"sensors":[{"comp":"temp","value":21.5},{"comp":"humid","value":41.72999954223633},{"comp":"co2","value":561.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:41:39.675Z","score":88.0,"sensors":[{"comp":"temp","value":21.5},{"comp":"humid","value":41.66999816894531},{"comp":"co2","value":559.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:41:30.042Z","score":88.0,"sensors":[{"comp":"temp","value":21.510000228881836},{"comp":"humid","value":41.75},{"comp":"co2","value":557.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:41:20.393Z","score":88.0,"sensors":[{"comp":"temp","value":21.510000228881836},{"comp":"humid","value":41.709999084472656},{"comp":"co2","value":557.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:41:09.556Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.70000076293945},{"comp":"co2","value":556.0},{"comp":"voc","value":367.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:40:59.926Z","score":88.0,"sensors":[{"comp":"temp","value":21.479999542236328},{"comp":"humid","value":41.709999084472656},{"comp":"co2","value":556.0},{"comp":"voc","value":367.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:40:50.279Z","score":88.0,"sensors":[{"comp":"temp","value":21.530000686645508},{"comp":"humid","value":41.79999923706055},{"comp":"co2","value":555.0},{"comp":"voc","value":366.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:40:39.439Z","score":88.0,"sensors":[{"comp":"temp","value":21.5},{"comp":"humid","value":41.68000030517578},{"comp":"co2","value":553.0},{"comp":"voc","value":365.0},{"comp":"dust","value":12.800000190734863}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:40:29.959Z","score":88.0,"sensors":[{"comp":"temp","value":21.510000228881836},{"comp":"humid","value":41.72999954223633},{"comp":"co2","value":553.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:40:20.159Z","score":88.0,"sensors":[{"comp":"temp","value":21.510000228881836},{"comp":"humid","value":41.70000076293945},{"comp":"co2","value":555.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:40:09.317Z","score":88.0,"sensors":[{"comp":"temp","value":21.5},{"comp":"humid","value":41.68000030517578},{"comp":"co2","value":557.0},{"comp":"voc","value":368.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:39:59.686Z","score":88.0,"sensors":[{"comp":"temp","value":21.479999542236328},{"comp":"humid","value":41.630001068115234},{"comp":"co2","value":555.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:39:50.042Z","score":88.0,"sensors":[{"comp":"temp","value":21.479999542236328},{"comp":"humid","value":41.68000030517578},{"comp":"co2","value":555.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:39:39.203Z","score":88.0,"sensors":[{"comp":"temp","value":21.5},{"comp":"humid","value":41.68000030517578},{"comp":"co2","value":555.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:39:29.573Z","score":88.0,"sensors":[{"comp":"temp","value":21.510000228881836},{"comp":"humid","value":41.63999938964844},{"comp":"co2","value":555.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:39:19.923Z","score":88.0,"sensors":[{"comp":"temp","value":21.5},{"comp":"humid","value":41.619998931884766},{"comp":"co2","value":555.0},{"comp":"voc","value":366.0},{"comp":"dust","value":13.0}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:39:09.090Z","score":88.0,"sensors":[{"comp":"temp","value":21.479999542236328},{"comp":"humid","value":41.68000030517578},{"comp":"co2","value":554.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:38:59.444Z","score":88.0,"sensors":[{"comp":"temp","value":21.5},{"comp":"humid","value":41.630001068115234},{"comp":"co2","value":555.0},{"comp":"voc","value":365.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:38:49.810Z","score":88.0,"sensors":[{"comp":"temp","value":21.479999542236328},{"comp":"humid","value":41.650001525878906},{"comp":"co2","value":556.0},{"comp":"voc","value":367.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]},{"timestamp":"2020-04-10T14:38:40.179Z","score":88.0,"sensors":[{"comp":"temp","value":21.5},{"comp":"humid","value":41.66999816894531},{"comp":"co2","value":557.0},{"comp":"voc","value":362.0},{"comp":"dust","value":13.199999809265137}],"indices":[{"comp":"temp","value":-1.0},{"comp":"humid","value":0.0},{"comp":"co2","value":0.0},{"comp":"voc","value":1.0},{"comp":"dust","value":1.0}]}]}' headers: Alt-Svc: clear Via: 1.1 google access-control-allow-credentials: 'true' access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Accept-Encoding, Accept-Language, Host, Referer, User-Agent access-control-allow-methods: GET, POST, PUT, PATCH, DELETE, OPTIONS access-control-allow-origin: '*' content-type: application/json date: Fri, 10 Apr 2020 15:38:31 GMT server: istio-envoy transfer-encoding: chunked x-envoy-decorator-operation: developer-apis-node-port.default.svc.cluster.local:3000/* x-envoy-upstream-service-time: '76' status: code: 200 message: OK url: https://developer-apis.awair.is/v1/users/self/devices/awair/24947/air-data/raw?from_date=2020-04-10+10:08:31.720296 version: 1 ahayworth-python_awair-683cb06/tests/fixtures/cassettes/user.yaml000066400000000000000000000075331507173055200254470ustar00rootroot00000000000000interactions: - request: body: null headers: Content-Type: - application/json authorization: - fake_token method: GET uri: https://developer-apis.awair.is/v1/users/self response: body: string: '{"dobDay":8,"usages":[{"scope":"API_USAGE","usage":302},{"scope":"USER_DEVICE_LIST","usage":50},{"scope":"USER_INFO","usage":80}],"tier":"Large_developer","email":"foo@bar.com","dobYear":2020,"permissions":[{"scope":"USER_DEVICE_LIST","quota":2147483647},{"scope":"USER_INFO","quota":2147483647},{"scope":"FIFTEEN_MIN","quota":30000},{"scope":"FIVE_MIN","quota":30000},{"scope":"RAW","quota":30000},{"scope":"LATEST","quota":30000},{"scope":"PUT_PREFERENCE","quota":30000},{"scope":"PUT_DISPLAY_MODE","quota":30000},{"scope":"PUT_LED_MODE","quota":30000},{"scope":"PUT_KNOCKING_MODE","quota":30000},{"scope":"PUT_TIMEZONE","quota":30000},{"scope":"PUT_DEVICE_NAME","quota":30000},{"scope":"PUT_LOCATION","quota":30000},{"scope":"PUT_ROOM_TYPE","quota":30000},{"scope":"PUT_SPACE_TYPE","quota":30000},{"scope":"GET_DISPLAY_MODE","quota":30000},{"scope":"GET_LED_MODE","quota":30000},{"scope":"GET_KNOCKING_MODE","quota":30000},{"scope":"GET_POWER_STATUS","quota":30000},{"scope":"GET_TIMEZONE","quota":30000}],"dobMonth":4,"sex":"MALE","lastName":"Hayworth","firstName":"Andrew","id":"32406"}' headers: Access-Control-Allow-Credentials: 'true' Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Accept-Encoding, Accept-Language, Host, Referer, User-Agent Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS Access-Control-Allow-Origin: '*' Alt-Svc: clear Content-Type: application/json Date: Thu, 09 Apr 2020 23:18:41 GMT Server: akka-http/10.1.1 Transfer-Encoding: chunked Via: 1.1 google status: code: 200 message: OK url: https://developer-apis.awair.is/v1/users/self - request: body: null headers: Content-Type: - application/json authorization: - fake_token method: GET uri: https://developer-apis.awair.is/v1/users/self response: body: string: '{"dobDay":8,"usages":[{"scope":"API_USAGE","usage":302},{"scope":"USER_DEVICE_LIST","usage":50},{"scope":"USER_INFO","usage":81}],"tier":"Large_developer","email":"foo@bar.com","dobYear":2020,"permissions":[{"scope":"USER_DEVICE_LIST","quota":2147483647},{"scope":"USER_INFO","quota":2147483647},{"scope":"FIFTEEN_MIN","quota":30000},{"scope":"FIVE_MIN","quota":30000},{"scope":"RAW","quota":30000},{"scope":"LATEST","quota":30000},{"scope":"PUT_PREFERENCE","quota":30000},{"scope":"PUT_DISPLAY_MODE","quota":30000},{"scope":"PUT_LED_MODE","quota":30000},{"scope":"PUT_KNOCKING_MODE","quota":30000},{"scope":"PUT_TIMEZONE","quota":30000},{"scope":"PUT_DEVICE_NAME","quota":30000},{"scope":"PUT_LOCATION","quota":30000},{"scope":"PUT_ROOM_TYPE","quota":30000},{"scope":"PUT_SPACE_TYPE","quota":30000},{"scope":"GET_DISPLAY_MODE","quota":30000},{"scope":"GET_LED_MODE","quota":30000},{"scope":"GET_KNOCKING_MODE","quota":30000},{"scope":"GET_POWER_STATUS","quota":30000},{"scope":"GET_TIMEZONE","quota":30000}],"dobMonth":4,"sex":"MALE","lastName":"Hayworth","firstName":"Andrew","id":"32406"}' headers: Access-Control-Allow-Credentials: 'true' Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Accept-Encoding, Accept-Language, Host, Referer, User-Agent Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS Access-Control-Allow-Origin: '*' Alt-Svc: clear Content-Type: application/json Date: Thu, 09 Apr 2020 23:18:41 GMT Server: akka-http/10.1.1 Transfer-Encoding: chunked Via: 1.1 google status: code: 200 message: OK url: https://developer-apis.awair.is/v1/users/self version: 1 ahayworth-python_awair-683cb06/tests/test_python_awair.py000066400000000000000000000457611507173055200240600ustar00rootroot00000000000000"""Test basic python_awair functionality.""" from datetime import date, datetime, timedelta from typing import Any from unittest.mock import patch import aiohttp import pytest import voluptuous as vol from python_awair import Awair, AwairLocal, const from python_awair.attrdict import AttrDict from python_awair.exceptions import AuthError, AwairError, NotFoundError, QueryError from tests.const import ( ACCESS_TOKEN, AWAIR_GEN1_ID, MOCK_ELEMENT_DEVICE_A_ATTRS, MOCK_ELEMENT_DEVICE_B_ATTRS, MOCK_ELEMENT_DEVICE_C_ATTRS, MOCK_GEN2_DEVICE_ATTRS, MOCK_GLOW_DEVICE_ATTRS, MOCK_MINT_DEVICE_ATTRS, MOCK_OMNI_DEVICE_ATTRS, ) from tests.utils import VCR, SillyAuth, mock_awair_device, mock_awair_user, time_travel async def test_get_user() -> Any: """Test that we can get a user response.""" async with aiohttp.ClientSession() as session: with VCR.use_cassette("user.yaml"): awair = Awair(session=session, access_token=ACCESS_TOKEN) user = await awair.user() assert user.user_id == "32406" assert user.email == "foo@bar.com" assert user.first_name == "Andrew" assert user.dob == date(year=2020, month=4, day=8) assert user.tier == "Large_developer" assert user.permissions["FIFTEEN_MIN"] == 30000 assert user.usages["USER_INFO"] == 80 assert " Any: """Test that we can use the API with a custom auth class.""" async with aiohttp.ClientSession() as session: with VCR.use_cassette("custom_auth.yaml"): auth = SillyAuth(access_token=ACCESS_TOKEN) awair = Awair(session=session, authenticator=auth) user = await awair.user() assert user.user_id == "32406" async def test_get_devices() -> Any: """Test that we can get a list of devices.""" async with aiohttp.ClientSession() as session: with VCR.use_cassette("devices.yaml"): awair = Awair(session=session, access_token=ACCESS_TOKEN) user = mock_awair_user(client=awair.client) devices = await user.devices() assert devices[0].device_id == AWAIR_GEN1_ID assert devices[0].device_type == "awair" assert devices[0].uuid == f"awair_{AWAIR_GEN1_ID}" assert " Any: """Test that we can get a list of devices.""" async with aiohttp.ClientSession() as session: with VCR.use_cassette("local_devices.yaml"): awair = AwairLocal( session=session, device_addrs=["AWAIR-ELEM-1416DC.local", "AWAIR-ELEM-1419E1.local"], ) devices = await awair.devices() assert len(devices) == 2 assert devices[0].device_id == MOCK_ELEMENT_DEVICE_A_ATTRS["deviceId"] assert devices[0].device_type == MOCK_ELEMENT_DEVICE_A_ATTRS["deviceType"] assert devices[0].uuid == MOCK_ELEMENT_DEVICE_A_ATTRS["deviceUUID"] assert devices[0].fw_version == MOCK_ELEMENT_DEVICE_A_ATTRS["fw_version"] assert " Any: """Test that we can get a list of devices.""" async with aiohttp.ClientSession() as session: with VCR.use_cassette("local_backplate.yaml"): awair = AwairLocal( session=session, device_addrs=[ "AWAIR-OMNI-18959-BACKPLATE.local", ], ) devices = await awair.devices() assert len(devices) == 1 assert devices[0].device_id == MOCK_ELEMENT_DEVICE_C_ATTRS["deviceId"] assert devices[0].device_type == MOCK_ELEMENT_DEVICE_C_ATTRS["deviceType"] assert devices[0].uuid == MOCK_ELEMENT_DEVICE_C_ATTRS["deviceUUID"] assert devices[0].fw_version == MOCK_ELEMENT_DEVICE_C_ATTRS["fw_version"] assert " Any: """Test that we can get the latest air data.""" target = datetime(2020, 4, 10, 10, 38, 30) async with aiohttp.ClientSession() as session: with VCR.use_cassette("latest.yaml"), time_travel(target): awair = Awair(session=session, access_token=ACCESS_TOKEN) device = mock_awair_device(client=awair.client) resp = await device.air_data_latest() assert resp is not None assert resp.timestamp == datetime(2020, 4, 10, 15, 38, 24, 111000) assert resp.score == 88.0 assert resp.sensors["temperature"] == 21.770000457763672 assert resp.indices["temperature"] == -1.0 assert " Any: """Test that we can get the latest air data.""" target = datetime(2020, 8, 31, 22, 7, 3) async with aiohttp.ClientSession() as session: with VCR.use_cassette("latest_local.yaml"), time_travel(target): awair = AwairLocal( session=session, device_addrs=["AWAIR-ELEM-1419E1.local"] ) devices = await awair.devices() assert len(devices) == 1 device = devices[0] resp = await device.air_data_latest() assert resp is not None assert resp.timestamp == datetime(2020, 8, 31, 22, 7, 3, 831000) assert resp.score == 93 assert resp.sensors["temperature"] == 19.59 assert len(resp.indices) == 0 assert " Any: """Test that we can get the latest air data.""" target = datetime(2025, 9, 20, 13, 24, 38) async with aiohttp.ClientSession() as session: with VCR.use_cassette("latest_local_backplate.yaml"), time_travel(target): awair = AwairLocal( session=session, device_addrs=["AWAIR-OMNI-18959-BACKPLATE.local"] ) devices = await awair.devices() assert len(devices) == 1 device = devices[0] resp = await device.air_data_latest() assert resp is not None assert resp.timestamp == datetime(2025, 9, 20, 13, 24, 38, 359000) assert resp.score == 99 assert resp.sensors["temperature"] == 22.12 assert len(resp.indices) == 0 assert " Any: """Test that we can get the five-minute avg air data.""" target = datetime(2020, 4, 10, 10, 38, 31, 2883) async with aiohttp.ClientSession() as session: with VCR.use_cassette("five_minute.yaml"), time_travel(target): awair = Awair(session=session, access_token=ACCESS_TOKEN) device = mock_awair_device(client=awair.client) resp = await device.air_data_five_minute( from_date=(target - timedelta(minutes=30)) ) assert resp[0].timestamp == datetime(2020, 4, 10, 15, 35) assert resp[0].score == 88.0 assert resp[0].sensors["temperature"] == 21.777143478393555 assert resp[0].indices["temperature"] == -1.0 async def test_get_fifteen_minute() -> Any: """Test that we can get the fifteen-minute avg air data.""" target = datetime(2020, 4, 10, 10, 38, 31, 252873) async with aiohttp.ClientSession() as session: with VCR.use_cassette("fifteen_minute.yaml"), time_travel(target): awair = Awair(session=session, access_token=ACCESS_TOKEN) device = mock_awair_device(client=awair.client) resp = await device.air_data_fifteen_minute( from_date=(target - timedelta(minutes=30)) ) assert resp[0].timestamp == datetime(2020, 4, 10, 15, 30) assert resp[0].score == 88.0 assert resp[0].sensors["temperature"] == 21.791961108936984 assert resp[0].indices["temperature"] == -1.0 async def test_get_raw() -> Any: """Test that we can get the raw air data.""" target = datetime(2020, 4, 10, 10, 38, 31, 720296) async with aiohttp.ClientSession() as session: with VCR.use_cassette("raw.yaml"), time_travel(target): awair = Awair(session=session, access_token=ACCESS_TOKEN) device = mock_awair_device(client=awair.client) resp = await device.air_data_raw(from_date=target - timedelta(minutes=30)) assert resp[0].timestamp == datetime(2020, 4, 10, 15, 38, 24, 111000) assert resp[0].score == 88.0 assert resp[0].sensors["temperature"] == 21.770000457763672 assert resp[0].indices["temperature"] == -1.0 async def test_sensor_creation_gen1() -> Any: """Test that an Awair gen 1 creates expected sensors.""" target = datetime(2020, 4, 10, 10, 38, 30) async with aiohttp.ClientSession() as session: with VCR.use_cassette("latest.yaml"), time_travel(target): awair = Awair(session=session, access_token=ACCESS_TOKEN) device = mock_awair_device(client=awair.client) resp = await device.air_data_latest() assert hasattr(resp, "timestamp") assert hasattr(resp, "score") assert hasattr(resp, "sensors") assert hasattr(resp, "indices") expected_sensors = [ "humidity", "temperature", "carbon_dioxide", "volatile_organic_compounds", "dust", ] assert resp is not None assert len(resp.sensors) == len(expected_sensors) assert len(resp.indices) == len(expected_sensors) for sensor in expected_sensors: assert hasattr(resp.sensors, sensor) assert hasattr(resp.indices, sensor) assert device.model == "Awair" async def test_sensor_creation_omni() -> Any: """Test that an Awair omni creates expected sensors.""" target = datetime(2020, 4, 10, 10, 38, 30) async with aiohttp.ClientSession() as session: with VCR.use_cassette("omni.yaml"), time_travel(target): awair = Awair(session=session, access_token=ACCESS_TOKEN) device = mock_awair_device( client=awair.client, device=MOCK_OMNI_DEVICE_ATTRS ) resp = await device.air_data_latest() assert hasattr(resp, "timestamp") assert hasattr(resp, "score") assert hasattr(resp, "sensors") assert hasattr(resp, "indices") expected_sensors = [ "humidity", "temperature", "carbon_dioxide", "volatile_organic_compounds", "particulate_matter_2_5", "illuminance", "sound_pressure_level", ] assert resp is not None assert len(resp.sensors) == len(expected_sensors) for sensor in expected_sensors: assert hasattr(resp.sensors, sensor) expected_indices = [ "humidity", "temperature", "carbon_dioxide", "volatile_organic_compounds", "particulate_matter_2_5", ] assert len(resp.indices) == len(expected_indices) for sensor in expected_indices: assert hasattr(resp.indices, sensor) async def test_sensor_creation_mint() -> Any: """Test that an Awair mint creates expected sensors.""" target = datetime(2020, 4, 10, 10, 38, 30) async with aiohttp.ClientSession() as session: with VCR.use_cassette("mint.yaml"), time_travel(target): awair = Awair(session=session, access_token=ACCESS_TOKEN) device = mock_awair_device( client=awair.client, device=MOCK_MINT_DEVICE_ATTRS ) resp = await device.air_data_latest() assert hasattr(resp, "timestamp") assert hasattr(resp, "score") assert hasattr(resp, "sensors") assert hasattr(resp, "indices") expected_sensors = [ "humidity", "temperature", "volatile_organic_compounds", "particulate_matter_2_5", "illuminance", ] assert resp is not None assert len(resp.sensors) == len(expected_sensors) for sensor in expected_sensors: assert hasattr(resp.sensors, sensor) expected_indices = [ "humidity", "temperature", "volatile_organic_compounds", "particulate_matter_2_5", ] assert len(resp.indices) == len(expected_indices) for sensor in expected_indices: assert hasattr(resp.indices, sensor) async def test_sensor_creation_gen2() -> Any: """Test that an Awair gen2 creates expected sensors.""" target = datetime(2020, 4, 10, 10, 38, 30) async with aiohttp.ClientSession() as session: with VCR.use_cassette("awair-r2.yaml"), time_travel(target): awair = Awair(session=session, access_token=ACCESS_TOKEN) device = mock_awair_device( client=awair.client, device=MOCK_GEN2_DEVICE_ATTRS ) resp = await device.air_data_latest() assert hasattr(resp, "timestamp") assert hasattr(resp, "score") assert hasattr(resp, "sensors") assert hasattr(resp, "indices") expected_sensors = [ "humidity", "temperature", "volatile_organic_compounds", "particulate_matter_2_5", "carbon_dioxide", ] assert resp is not None assert len(resp.sensors) == len(expected_sensors) for sensor in expected_sensors: assert hasattr(resp.sensors, sensor) expected_indices = [ "humidity", "temperature", "volatile_organic_compounds", "particulate_matter_2_5", "carbon_dioxide", ] assert len(resp.indices) == len(expected_indices) for sensor in expected_indices: assert hasattr(resp.indices, sensor) async def test_sensor_creation_glow() -> Any: """Test that an Awair glow creates expected sensors.""" target = datetime(2020, 4, 10, 10, 38, 30) async with aiohttp.ClientSession() as session: with VCR.use_cassette("glow.yaml"), time_travel(target): awair = Awair(session=session, access_token=ACCESS_TOKEN) device = mock_awair_device( client=awair.client, device=MOCK_GLOW_DEVICE_ATTRS ) resp = await device.air_data_latest() assert hasattr(resp, "timestamp") assert hasattr(resp, "score") assert hasattr(resp, "sensors") assert hasattr(resp, "indices") expected_sensors = [ "humidity", "temperature", "volatile_organic_compounds", "carbon_dioxide", ] assert resp is not None assert len(resp.sensors) == len(expected_sensors) for sensor in expected_sensors: assert hasattr(resp.sensors, sensor) expected_indices = [ "humidity", "temperature", "volatile_organic_compounds", "carbon_dioxide", ] assert len(resp.indices) == len(expected_indices) for sensor in expected_indices: assert hasattr(resp.indices, sensor) assert "Indices(" in str(resp.indices) assert "Sensors(" in str(resp.sensors) async def test_auth_failure() -> Any: """Test that we can raise on bad auth.""" async with aiohttp.ClientSession() as session: with pytest.raises(AwairError): Awair(session=session) with VCR.use_cassette("bad_auth.yaml"): awair = Awair(session=session, access_token="bad") with pytest.raises(AuthError): await awair.user() async def test_bad_query() -> Any: """Test that we can raise on bad query.""" async with aiohttp.ClientSession() as session: with VCR.use_cassette("bad_params.yaml"): with patch( "python_awair.devices.AwairDevice._format_args", return_value="?fahrenheit=451", ): with pytest.raises(QueryError): awair = Awair(session=session, access_token=ACCESS_TOKEN) device = mock_awair_device(client=awair.client) await device.air_data_latest() async def test_not_found() -> Any: """Test that we can raise on 404.""" async with aiohttp.ClientSession() as session: with VCR.use_cassette("not_found.yaml"): with patch("python_awair.const.DEVICE_URL", f"{const.USER_URL}/devicesxyz"): with pytest.raises(NotFoundError): awair = Awair(session=session, access_token=ACCESS_TOKEN) user = mock_awair_user(client=awair.client) await user.devices() async def test_air_data_handles_boolean_attributes() -> Any: """Test that we handle boolean query attributes.""" async with aiohttp.ClientSession() as session: awair = Awair(session=session, access_token=ACCESS_TOKEN) device = mock_awair_device(client=awair.client) with pytest.raises(vol.Invalid): await device.air_data_raw(desc=None) with pytest.raises(vol.Invalid): await device.air_data_raw(fahrenheit=1) async def test_air_data_handles_numeric_limits() -> Any: """Test that we handle numeric query attributes.""" async with aiohttp.ClientSession() as session: awair = Awair(session=session, access_token=ACCESS_TOKEN) device = mock_awair_device(client=awair.client) with pytest.raises(vol.Invalid): await device.air_data_raw(limit=-1) with pytest.raises(vol.Invalid): await device.air_data_raw(limit=361) with pytest.raises(vol.Invalid): await device.air_data_five_minute(limit=289) with pytest.raises(vol.Invalid): await device.air_data_fifteen_minute(limit=673) async def test_air_data_handles_datetime_limits() -> Any: """Test that we handle date limits.""" async with aiohttp.ClientSession() as session: awair = Awair(session=session, access_token=ACCESS_TOKEN) device = mock_awair_device(client=awair.client) now = datetime.now() with pytest.raises(vol.Invalid): await device.air_data_raw(from_date=now + timedelta(hours=1)) with pytest.raises(vol.Invalid): await device.air_data_raw(from_date=False) with pytest.raises(vol.Invalid): await device.air_data_raw(from_date=now - timedelta(hours=2)) with pytest.raises(vol.Invalid): await device.air_data_five_minute(from_date=now - timedelta(hours=25)) with pytest.raises(vol.Invalid): await device.air_data_fifteen_minute(from_date=now - timedelta(days=8)) with pytest.raises(vol.Invalid): await device.air_data_fifteen_minute( from_date=(now - timedelta(hours=1)), to_date=(now - timedelta(hours=3)) ) def test_attrdict() -> Any: """Test a few AttrDict properties.""" comp = AttrDict({"foo": "bar", "humid": 123}) with pytest.raises(AttributeError): print(comp.nope) with pytest.raises(AttributeError): print(comp.humid) assert comp.humidity == 123 comp["nope"] = "hi" assert comp.nope == "hi" comp.nope = "hello" assert comp.nope == "hello" del comp["nope"] del comp.humidity assert "foo" in dir(comp) assert "nope" not in dir(comp) assert "humid" not in dir(comp) assert "humidity" not in dir(comp) ahayworth-python_awair-683cb06/tests/utils.py000066400000000000000000000047221507173055200214450ustar00rootroot00000000000000"""Test utilities.""" import re from collections import namedtuple from contextlib import contextmanager from datetime import datetime from typing import Any, Dict, Generator, Optional from unittest.mock import patch import vcr from python_awair.auth import AwairAuth from python_awair.client import AwairClient from python_awair.devices import AwairDevice from python_awair.user import AwairUser from tests.const import MOCK_GEN1_DEVICE_ATTRS, MOCK_USER_ATTRS def mock_awair_user(client: AwairClient) -> AwairUser: """Return a mock awair user.""" return AwairUser(client=client, attributes=MOCK_USER_ATTRS) def mock_awair_device( client: AwairClient, device: Optional[Dict[str, Any]] = None, ) -> AwairDevice: """Return a mock awair device.""" if not device: device = MOCK_GEN1_DEVICE_ATTRS return AwairDevice(client=client, attributes=device) class SillyAuth(AwairAuth): """Testing auth class.""" def __init__(self, access_token: str) -> None: """Store our access token.""" self.access_token = access_token async def get_bearer_token(self) -> str: """Return the access_token.""" return self.access_token Scrubber = namedtuple("Scrubber", ["pattern", "replacement"]) SCRUBBERS = [ Scrubber(pattern=r'"email":"[^"]+"', replacement='"email":"foo@bar.com"'), Scrubber(pattern=r'"dobYear":\d+', replacement='"dobYear":2020'), Scrubber(pattern=r'"dobMonth":\d+', replacement='"dobMonth":4'), Scrubber(pattern=r'"dobDay":\d+', replacement='"dobDay":8'), Scrubber(pattern=r'"latitude":-?\d+\.\d+', replacement='"latitude":0.0'), Scrubber(pattern=r'"longitude":-?\d+\.\d+', replacement='"longitude":0.0'), ] def scrub(response: Any) -> Any: """Scrub sensitive data.""" body = response["body"]["string"].decode("utf-8") for scrubber in SCRUBBERS: body = re.sub(scrubber.pattern, scrubber.replacement, body) response["body"]["string"] = body.encode("utf-8") return response VCR = vcr.VCR( cassette_library_dir="tests/fixtures/cassettes", record_mode="none", filter_headers=[("authorization", "fake_token")], decode_compressed_response=True, before_record_response=scrub, ) @contextmanager def time_travel(target: datetime) -> Generator[Any, Any, Any]: """Manage time in our tests.""" with patch("python_awair.devices.datetime") as mock_date: mock_date.now.return_value = target mock_date.side_effect = datetime yield