diff --git a/.ci/BHoMBot/Nuget/BHoM.Interop.Python.nuspec b/.ci/BHoMBot/Nuget/BHoM.Interop.Python.nuspec index 7644701..96c3a5d 100644 --- a/.ci/BHoMBot/Nuget/BHoM.Interop.Python.nuspec +++ b/.ci/BHoMBot/Nuget/BHoM.Interop.Python.nuspec @@ -21,6 +21,8 @@ + + diff --git a/.gitignore b/.gitignore index aa49493..48d3a17 100644 --- a/.gitignore +++ b/.gitignore @@ -98,4 +98,123 @@ Alligator/Alligator_REMOTE_9848.csproj # User defined files # ###################### -build.ps1 \ No newline at end of file +build.ps1 + +# Testing files +.dev/ +prototypes/ + +# 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/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +*.ipynb +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# 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/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# unignored files +!example.sql diff --git a/Python_Engine/Compute/BasePythonEnvironment.cs b/Python_Engine/Compute/BasePythonEnvironment.cs index c06db95..2735a7b 100644 --- a/Python_Engine/Compute/BasePythonEnvironment.cs +++ b/Python_Engine/Compute/BasePythonEnvironment.cs @@ -33,11 +33,14 @@ namespace BH.Engine.Python { public static partial class Compute { + [PreviousVersion("8.0", "BH.Engine.Python.Compute.BasePythonEnvironment(System.Boolean, System.Boolean)")] [Description("Retrieve or reinstall the base Python Environment for BHoM workflows.")] + [Input("version", "The target version of python to be installed or retrieved.")] [Input("reload", "Reload the base Python environment rather than recreating it, if it already exists.")] [Input("run", "Start the installation/retrieval of the BHoM Base Python Environment.")] [Output("env", "The base Python Environment for all BHoM workflows.")] public static PythonEnvironment BasePythonEnvironment( + PythonVersion version = PythonVersion.v3_10, bool reload = true, bool run = false ) @@ -52,10 +55,10 @@ public static PythonEnvironment BasePythonEnvironment( // create PythonEnvironments directory if it doesnt already exist Directory.CreateDirectory(Query.DirectoryEnvironments()); } - + // determine whether the base environment already exists - string targetExecutable = Path.Combine(Query.DirectoryBaseEnvironment(), "python.exe"); - bool exists = Directory.Exists(Query.DirectoryBaseEnvironment()) && File.Exists(targetExecutable); + string targetExecutable = Path.Combine(Query.DirectoryBaseEnvironment(version), "python.exe"); + bool exists = File.Exists(targetExecutable); if (exists && reload) return new PythonEnvironment() { Name = Query.ToolkitName(), Executable = targetExecutable }; @@ -64,50 +67,14 @@ public static PythonEnvironment BasePythonEnvironment( // remove all existing environments and kernels RemoveEverything(); - // download the target Python version and convert into a "full" python installation bypassing admin rights - string executable = PythonVersion.v3_10_5.DownloadPython(Query.ToolkitName()); - string pipInstaller = DownloadGetPip(Path.GetDirectoryName(executable)); - string baseEnvironmentDirectory = Path.GetDirectoryName(executable); - - // install pip into the python installation - Process process = new Process() - { - StartInfo = new ProcessStartInfo() - { - FileName = Modify.AddQuotesIfRequired(executable), - Arguments = Modify.AddQuotesIfRequired(pipInstaller) + " --no-warn-script-location", - RedirectStandardError=true, - UseShellExecute=false, - } - }; - using (Process p = Process.Start(process.StartInfo)) - { - string standardError = p.StandardError.ReadToEnd(); - p.WaitForExit(); - if (p.ExitCode != 0) - BH.Engine.Base.Compute.RecordError($"Error installing pip.\n{standardError}"); - File.Delete(pipInstaller); - } - - // delete files with the suffix ._pth from installedDirectory - List pthFiles = Directory.GetFiles(baseEnvironmentDirectory, "*.*", SearchOption.TopDirectoryOnly).Where(s => s.EndsWith("._pth")).ToList(); - foreach (string pthFile in pthFiles) - { - File.Delete(pthFile); - } - - // move files with the suffix .dll and .pyd from installedDirectory into a DLLs directory - string libDirectory = Directory.CreateDirectory(Path.Combine(baseEnvironmentDirectory, "DLLs")).FullName; - List libFiles = Directory.GetFiles(baseEnvironmentDirectory, "*.*", SearchOption.TopDirectoryOnly).Where(s => (s.EndsWith(".dll") || s.EndsWith(".pyd")) && !Path.GetFileName(s).Contains("python") && !Path.GetFileName(s).Contains("vcruntime")).ToList(); - foreach (string libFile in libFiles) - { - File.Move(libFile, Path.Combine(libDirectory, Path.GetFileName(libFile))); - } + // download and run the installer for the target Python version + string exe = version.DownloadPythonVersion(); // install essential packages into base environment - InstallPackages(executable, new List() { "virtualenv", "jupyterlab", "black", "pylint" }); + InstallPackages(exe, new List() { "virtualenv", "jupyterlab", "black", "pylint" }); + InstallPackageLocal(exe, Path.Combine(Query.DirectoryCode(), Query.ToolkitName())); - return new PythonEnvironment() { Name = Query.ToolkitName(), Executable = executable }; + return new PythonEnvironment() { Name = Query.ToolkitName(), Executable = exe }; } } } diff --git a/Python_Engine/Compute/Download.cs b/Python_Engine/Compute/Download.cs index 0c8c81f..ae92006 100644 --- a/Python_Engine/Compute/Download.cs +++ b/Python_Engine/Compute/Download.cs @@ -24,7 +24,9 @@ using BH.oM.Python.Enums; using System; using System.ComponentModel; +using System.Diagnostics; using System.IO; +using System.Reflection; using System.Xml.Linq; namespace BH.Engine.Python @@ -85,34 +87,53 @@ public static string DownloadFile( return filePath; } - // TODO - THIS METHOD HAS CHANGED BUT IS STILL USED, SO NEEDS DEPRECATING - // changed from what to what ? - [Description("Download the target version of Python.")] - [Input("version", "A Python version.")] - [Input("name", "Name of target exe file.")] - [Output("executablePath", "The path of the executable for the downloaded Python.")] - public static string DownloadPython(this PythonVersion version, string name = null) + /******************************************************/ + + [PreviousVersion("8.0", "BH.Engine.Python.Compute.DownloadPython(BH.oM.Python.Enums.PythonVersion, System.String)")] + [Description("Download and install a specified version of python, and return the executable for it.")] + [Input("version", "The version of python to download.")] + [Output("pythonExecutable", "The executable (python.exe) for the python version that was installed")] + public static string DownloadPythonVersion(this PythonVersion version) { string url = version.EmbeddableURL(); - if (string.IsNullOrEmpty(name)) - name = Path.GetFileNameWithoutExtension(url); - string targetExecutable = Path.Combine(Query.DirectoryEnvironments(), name, "python.exe"); - - if (File.Exists(targetExecutable)) - return targetExecutable; - - string zipfile = DownloadFile(url, Query.DirectoryEnvironments()); - UnzipFile(zipfile, Query.DirectoryEnvironments(), name, true); - - return targetExecutable; - } - [Description("Download the pip installer")] - [Input("targetDirectory", "The directory into which get-pip.py will be downloaded.")] - [Output("getpipPath", "The path of the file used to install pip into an embedded Python environment.")] - public static string DownloadGetPip(string targetDirectory) - { - return DownloadFile("https://bootstrap.pypa.io/get-pip.py", targetDirectory); + string basePath = Path.Combine(Query.DirectoryBaseEnvironment(version)); + + if (File.Exists(Path.Combine(basePath, "python.exe"))) + return Path.Combine(basePath, "python.exe"); + + if (!Directory.Exists(basePath)) + Directory.CreateDirectory(basePath); + else + { + Directory.Delete(basePath, true); //if there are any files here already for some reason, remove them. + Directory.CreateDirectory(basePath); + } + + string installerFile = DownloadFile(url, basePath, "installer.exe"); + + using (Process install = new Process() + { + StartInfo = new ProcessStartInfo() + { + FileName = installerFile, + Arguments = $"/passive InstallAllUsers=0 InstallLauncherAllUsers=0 Include_launcher=0 Shortcuts=0 AssociateFiles=0 Include_tools=0 Include_test=0 TargetDir={Modify.AddQuotesIfRequired(basePath)}", + RedirectStandardError = true, + UseShellExecute = false, + } + }) + { + install.Start(); + string stderr = install.StandardError.ReadToEnd(); + install.WaitForExit(); + if (install.ExitCode != 0) + { + BH.Engine.Base.Compute.RecordError($"Error installing python: {stderr}"); + return null; + } + } + + return Path.Combine(basePath, "python.exe"); } } } diff --git a/Python_Engine/Compute/Remove.cs b/Python_Engine/Compute/Remove.cs index 4ee414f..8ccf112 100644 --- a/Python_Engine/Compute/Remove.cs +++ b/Python_Engine/Compute/Remove.cs @@ -21,7 +21,11 @@ */ using BH.oM.Base.Attributes; +using BH.oM.Python.Enums; +using System; +using System.Collections.Generic; using System.ComponentModel; +using System.Diagnostics; using System.IO; namespace BH.Engine.Python @@ -77,19 +81,60 @@ public static void RemoveAllVirtualEnvironments() } } - [Description("Completely remove the base BHoM Python environment.")] - public static void RemoveBaseEnvironment() + [PreviousVersion("8.0", "BH.Engine.Python.Compute.RemoveBaseEnvironment()")] + [Description("Remove the base install for the python version specified.")] + [Input("version", "The base python version to remove.")] + public static void RemoveBaseVersion(PythonVersion version = PythonVersion.v3_10) { - string basePath = Path.Combine(Query.DirectoryEnvironments(), Query.ToolkitName()); - if (Directory.Exists(basePath)) + string basePath = Path.Combine(Query.DirectoryEnvironments(), Query.ToolkitName(), version.ToString()); + string baseInstaller = Path.Combine(basePath, "installer.exe"); + + // If the installer does not exist and the folder does - assume a bad/invalid install and just delete the entire folder. + if (!File.Exists(baseInstaller) && Directory.Exists(basePath)) + { Directory.Delete(basePath, true); + return; + } + else if (!Directory.Exists(basePath)) + // If the base path doesn't exist there is nothing to remove. + return; + + using (Process uninstall = new Process() + { + StartInfo = new ProcessStartInfo() + { + FileName = baseInstaller, + Arguments = "/uninstall /passive", + RedirectStandardError = true, + UseShellExecute = false, + } + }) + { + uninstall.Start(); + string stderr = uninstall.StandardError.ReadToEnd(); + uninstall.WaitForExit(); + if (uninstall.ExitCode != 0) + { + BH.Engine.Base.Compute.RecordError($"Error uninstalling python: {stderr}"); + return; + } + } + + // Finally remove base folder as the installer may have missed something. + Directory.Delete(basePath, true); } [Description("Completely remove all BHoM-related Python environments and kernels.")] public static void RemoveEverything() { RemoveAllVirtualEnvironments(); - RemoveBaseEnvironment(); + + //remove all python versions installed in base directory. + foreach (PythonVersion e in Enum.GetValues(typeof(PythonVersion))) + { + if (e != PythonVersion.Undefined) + RemoveBaseVersion(e); + } } } } diff --git a/Python_Engine/Compute/UnzipFile.cs b/Python_Engine/Compute/UnzipFile.cs index f34d802..bb038db 100644 --- a/Python_Engine/Compute/UnzipFile.cs +++ b/Python_Engine/Compute/UnzipFile.cs @@ -29,6 +29,7 @@ namespace BH.Engine.Python { public static partial class Compute { + //This method is no longer used by python toolkit, and perhaps should be removed or moved to the file toolkit instead. [Description("Extract the contents of an archive.")] [Input("archivePath", "The archive to extract.")] [Input("targetDirectory", "The destination directory to extract into.")] diff --git a/Python_Engine/Compute/VirtualEnvironment.cs b/Python_Engine/Compute/VirtualEnvironment.cs index 0046bdc..8927220 100644 --- a/Python_Engine/Compute/VirtualEnvironment.cs +++ b/Python_Engine/Compute/VirtualEnvironment.cs @@ -20,6 +20,7 @@ * along with this code. If not, see . */ +using BH.Engine.Base; using BH.oM.Base.Attributes; using BH.oM.Python; using BH.oM.Python.Enums; @@ -45,22 +46,17 @@ public static PythonEnvironment VirtualEnvironment(this PythonVersion version, s BH.Engine.Base.Compute.RecordError("A BHoM Python virtual environment cannot cannot contain invalid filepath characters."); return null; } - if (version == PythonVersion.Undefined) - { - BH.Engine.Base.Compute.RecordError("Please provide a version of Python."); - return null; - } - // check that base environment is installed and return null and raise error if it isn't - string baseEnvironmentExecutable = Path.Combine(Query.DirectoryBaseEnvironment(), "python.exe"); - if (!File.Exists(baseEnvironmentExecutable)) + if (version == PythonVersion.Undefined) { - BH.Engine.Base.Compute.RecordWarning("The base Python environment doesnt seem to be installed. Install it first in order to run this method."); + BH.Engine.Base.Compute.RecordError("Please provide a valid Python version."); return null; } string targetExecutable = Query.VirtualEnvironmentExecutable(name); string targetDirectory = Query.VirtualEnvironmentDirectory(name); + string versionExecutable = Path.Combine(Query.DirectoryBaseEnvironment(version), "python.exe"); + bool exists = Query.VirtualEnvironmentExists(name); if (exists && reload) @@ -73,31 +69,28 @@ public static PythonEnvironment VirtualEnvironment(this PythonVersion version, s RemoveKernel(name); } - // download the target version of Python - string referencedExecutable = version.DownloadPython(); - - // move the directory containing referencedExecutable into Query.DirectoryBaseEnvironment() using the same name - string sourceDirectory = Path.GetDirectoryName(referencedExecutable); - string destinationDirectory = Path.Combine(Query.DirectoryBaseEnvironment(), new DirectoryInfo(Path.GetDirectoryName(referencedExecutable)).Name); - if (!Directory.Exists(destinationDirectory)) + if (!File.Exists(versionExecutable)) { - Directory.Move(sourceDirectory, destinationDirectory); + // The output here should be the same, but to be sure replace the value. + BH.Engine.Base.Compute.RecordNote($"The base environment for the requested version {version} has been installed as it was not present."); + versionExecutable = BasePythonEnvironment(version, run: true)?.Executable; + + if (versionExecutable == null) // If the executable is null, then python wasn't installed correctly, so return null - the error message for downloading the version should suffice. + return null; } - if (Directory.Exists(sourceDirectory)) - Directory.Delete(sourceDirectory, true); - referencedExecutable = Path.Combine(destinationDirectory, "python.exe"); // create the venv from the base environment Process process = new Process() { StartInfo = new ProcessStartInfo() { - FileName = Modify.AddQuotesIfRequired(baseEnvironmentExecutable), - Arguments = $"-m virtualenv --python={Modify.AddQuotesIfRequired(referencedExecutable)} {Modify.AddQuotesIfRequired(targetDirectory)}", + FileName = Modify.AddQuotesIfRequired(versionExecutable), + Arguments = $"-m virtualenv --python={Modify.AddQuotesIfRequired(versionExecutable)} {Modify.AddQuotesIfRequired(targetDirectory)}", RedirectStandardError = true, UseShellExecute = false, } }; + using (Process p = Process.Start(process.StartInfo)) { string standardError = p.StandardError.ReadToEnd(); @@ -120,6 +113,7 @@ public static PythonEnvironment VirtualEnvironment(this PythonVersion version, s UseShellExecute = false, } }; + using (Process p = Process.Start(process2.StartInfo)) { string standardError = p.StandardError.ReadToEnd(); @@ -127,8 +121,6 @@ public static PythonEnvironment VirtualEnvironment(this PythonVersion version, s if (p.ExitCode != 0) BH.Engine.Base.Compute.RecordError($"Error registering the \"{name}\" virtual environment.\n{standardError}"); } - // replace text in a file - return new PythonEnvironment() { Executable = targetExecutable, Name = name }; } diff --git a/Python_Engine/Convert/ToPython.cs b/Python_Engine/Convert/ToPython.cs index e7ab80f..c271f19 100644 --- a/Python_Engine/Convert/ToPython.cs +++ b/Python_Engine/Convert/ToPython.cs @@ -1,4 +1,4 @@ -/* +/* * This file is part of the Buildings and Habitats object Model (BHoM) * Copyright (c) 2015 - 2024, the respective contributors. All rights reserved. * @@ -38,4 +38,4 @@ public static bool ToPython(this T[,] input) return false; } } -} +} \ No newline at end of file diff --git a/Python_Engine/Python/requirements.txt b/Python_Engine/Python/requirements.txt index 5f28270..0f238ae 100644 --- a/Python_Engine/Python/requirements.txt +++ b/Python_Engine/Python/requirements.txt @@ -1 +1,11 @@ - \ No newline at end of file +virtualenv +jupyterlab +black +pylint +pytest +pytest-cov +pytest-order +case-converter +numpy==1.26.4 +pandas==2.2.1 +matplotlib==3.8.3 diff --git a/Python_Engine/Python/run_tests.bat b/Python_Engine/Python/run_tests.bat new file mode 100644 index 0000000..18e4630 --- /dev/null +++ b/Python_Engine/Python/run_tests.bat @@ -0,0 +1,7 @@ +SET PYTHON_EXE=C:\ProgramData\BHoM\Extensions\PythonEnvironments\Python_Toolkit\v3_10\python.exe +SET TEST_DIR=C:\ProgramData\BHoM\Extensions\PythonCode\Python_Toolkit\tests + +@REM C:\ProgramData\BHoM\Extensions\PythonEnvironments\Python_Toolkit\v3_10\python.exe -m pytest --cov-report term --cov-report html:cov_html --cov python_toolkit -v C:\ProgramData\BHoM\Extensions\PythonCode\Python_Toolkit\tests + +"%PYTHON_EXE%" -m pytest --cov-report term --cov-report html:cov_html --cov python_toolkit -v "%TEST_DIR%" +cmd /k \ No newline at end of file diff --git a/Python_Engine/Python/src/python_toolkit/__init__.py b/Python_Engine/Python/src/python_toolkit/__init__.py deleted file mode 100644 index 5f28270..0000000 --- a/Python_Engine/Python/src/python_toolkit/__init__.py +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Python_Engine/Python/src/python_toolkit/bhom/__init__.py b/Python_Engine/Python/src/python_toolkit/bhom/__init__.py new file mode 100644 index 0000000..8a69ac5 --- /dev/null +++ b/Python_Engine/Python/src/python_toolkit/bhom/__init__.py @@ -0,0 +1,23 @@ +"""Root for the bhom subpackage.""" + +from pathlib import Path # pylint: disable=E0401 +from os import path + +from win32api import HIWORD, LOWORD, GetFileVersionInfo + +BHOM_ASSEMBLIES_DIRECTORY = Path(path.expandvars("%PROGRAMDATA%/BHoM/Assemblies")) +BHOM_LOG_FOLDER = Path(path.expandvars("%PROGRAMDATA%/BHoM/Logs")) +TOOLKIT_NAME = "Python_Toolkit" + +if not BHOM_LOG_FOLDER.exists(): + BHOM_LOG_FOLDER = Path(path.expandvars("%TEMP%/BHoMLogs")) + BHOM_LOG_FOLDER.mkdir(exist_ok=True) + +if not BHOM_ASSEMBLIES_DIRECTORY.exists(): + BHOM_VERSION = "" +else: + _file_version_ms = GetFileVersionInfo( + (BHOM_ASSEMBLIES_DIRECTORY / "BHoM.dll").as_posix(), "\\" + )["FileVersionMS"] + + BHOM_VERSION = f"{HIWORD(_file_version_ms)}.{LOWORD(_file_version_ms)}" diff --git a/Python_Engine/Python/src/python_toolkit/bhom/analytics.py b/Python_Engine/Python/src/python_toolkit/bhom/analytics.py new file mode 100644 index 0000000..392aaa0 --- /dev/null +++ b/Python_Engine/Python/src/python_toolkit/bhom/analytics.py @@ -0,0 +1,93 @@ +"""BHoM analytics decorator.""" +# pylint: disable=E0401 +import inspect +import json +import sys +import uuid +from functools import wraps +from typing import Any, Callable + +# pylint: enable=E0401 + +from .logging import ANALYTICS_LOGGER +from .util import csharp_ticks +from . import BHOM_VERSION, TOOLKIT_NAME + + +def bhom_analytics() -> Callable: + """Decorator for capturing usage data. + + Returns + ------- + Callable + The decorated function. + """ + + def decorator(function: Callable): + """A decorator to capture usage data for called methods/functions. + + Arguments + --------- + function : Callable + The function to decorate. + + Returns + ------- + Callable + The decorated function. + """ + + @wraps(function) + def wrapper(*args, **kwargs) -> Any: + """A wrapper around the function that captures usage analytics.""" + + _id = uuid.uuid4() + + # get the data being passed to the function, expected dtype and return type + argspec = inspect.getfullargspec(function)[-1] + argspec.pop("return", None) + + _args = [f'{{"_t": "{argspec[k]}", "Name": "{k}"}}' for k in argspec.keys()] + + exec_metadata = { + "BHoMVersion": BHOM_VERSION, + "BHoM_Guid": _id, + "CallerName": function.__name__, + "ComponentId": _id, + "CustomData": {"interpreter", sys.executable}, + "Errors": [], + "FileId": "", + "FileName": "", + "Fragments": [], + "Name": "", + # TODO - get project properties from another function/logging + # method (or from BHoM DLL analytics capture ...) + "ProjectID": "", + "SelectedItem": { + "MethodName": function.__name__, + "Parameters": _args, + "TypeName": f"{function.__module__}.{function.__qualname__}" + }, + "Time": { + "$date": csharp_ticks(short=True), + }, + "UI": "Python", + "UiVersion": TOOLKIT_NAME, + "_t": "BH.oM.Base.UsageLogEntry", + } + + try: + result = function(*args, **kwargs) + except Exception as exc: # pylint: disable=broad-except + exec_metadata["Errors"].extend(sys.exc_info()) + raise exc + finally: + ANALYTICS_LOGGER.info( + json.dumps(exec_metadata, default=str, indent=None) + ) + + return result + + return wrapper + + return decorator diff --git a/Python_Engine/Python/src/python_toolkit/bhom/bhom.mplstyle b/Python_Engine/Python/src/python_toolkit/bhom/bhom.mplstyle new file mode 100644 index 0000000..0c1d79c --- /dev/null +++ b/Python_Engine/Python/src/python_toolkit/bhom/bhom.mplstyle @@ -0,0 +1,81 @@ +# Default matplotlib settings for this toolkit. + +# Set custom colors. All colors are in web style hex format. +axes.prop_cycle: cycler('color', ['702F8A', 'E63187', '00A9E0', 'FFCF04', '6CC24E', 'EB671C', '00A499', 'D50032', '24135F', '6D104E', '006DA8', 'D06A13', '5D822D', 'F0AC1B', '1C3660', 'BC204B', '8F72B0', 'FCD16D', '8DB9CA', 'EE7837', 'AFC1A2', 'B72B77', 'A0D2C9', 'E6484D']) + +# Face settings +axes.facecolor: white +axes.edgecolor: black + +# Style spines +axes.linewidth: 0.8 +axes.spines.top: False +axes.spines.left: True +axes.spines.right: False +axes.spines.bottom: True + +# Set line styling for line plots +lines.linewidth: 1 +lines.solid_capstyle: round +lines.dash_capstyle: round + +# Grid style +axes.axisbelow: True +axes.grid: true +axes.grid.axis: both +grid.color: 958B82 +grid.linestyle: -- +grid.linewidth: 0.5 + +# Setting font sizes and spacing +axes.labelsize: medium +axes.labelweight: semibold +axes.ymargin: 0.1 +font.family: sans-serif +font.sans-serif: Segoe UI +font.size: 10 +xtick.labelsize: medium +xtick.major.pad: 3.5 +ytick.labelsize: medium +ytick.major.pad: 3.5 + +# date formatter +date.autoformatter.day: %b-%d +date.autoformatter.hour: %b-%d %H +date.autoformatter.microsecond: %M:%S.%f +date.autoformatter.minute: %d %H:%M +date.autoformatter.month: %b +date.autoformatter.second: %H:%M:%S +date.autoformatter.year: %Y + +# Title +axes.titlecolor: black +axes.titlelocation: left +axes.titlepad: 6 +axes.titlesize: large +axes.titleweight: bold + +# Remove major and minor ticks except for on the x-axis. +xtick.major.size: 3 +xtick.minor.size: 2 +ytick.major.size: 3 +ytick.minor.size: 2 + +# Set spacing for figure and also DPI. +figure.subplot.left: 0.08 +figure.subplot.right: 0.95 +figure.subplot.bottom: 0.07 +figure.figsize: 12, 5 +figure.dpi: 150 +figure.facecolor: white + +# Properties for saving the figure. Ensure a high DPI when saving so we have a good resolution. +savefig.dpi: 300 +savefig.facecolor: white +savefig.bbox: tight +savefig.pad_inches: 0.2 + +# Legend Styling +legend.framealpha: 0 +legend.frameon: False +legend.facecolor: inherit \ No newline at end of file diff --git a/Python_Engine/Python/src/python_toolkit/bhom/logging/__init__.py b/Python_Engine/Python/src/python_toolkit/bhom/logging/__init__.py new file mode 100644 index 0000000..4e9eae5 --- /dev/null +++ b/Python_Engine/Python/src/python_toolkit/bhom/logging/__init__.py @@ -0,0 +1,2 @@ +from .file import ANALYTICS_LOGGER +from .console import CONSOLE_LOGGER diff --git a/Python_Engine/Python/src/python_toolkit/bhom/logging/console.py b/Python_Engine/Python/src/python_toolkit/bhom/logging/console.py new file mode 100644 index 0000000..d36178b --- /dev/null +++ b/Python_Engine/Python/src/python_toolkit/bhom/logging/console.py @@ -0,0 +1,19 @@ +"""Logging utilities for BHoM analytics.""" + +# pylint: disable=E0401 +import logging +import sys + +# pylint: enable=E0401 + +from .. import TOOLKIT_NAME + +formatter = logging.Formatter("%(name)s - %(levelname)s - %(message)s") +handler = logging.StreamHandler(sys.stdout) +handler.setLevel(logging.DEBUG) +handler.setFormatter(formatter) + +CONSOLE_LOGGER = logging.getLogger(f"{TOOLKIT_NAME}[console]") +CONSOLE_LOGGER.propagate = False +CONSOLE_LOGGER.setLevel(logging.DEBUG) +CONSOLE_LOGGER.addHandler(handler) diff --git a/Python_Engine/Python/src/python_toolkit/bhom/logging/file.py b/Python_Engine/Python/src/python_toolkit/bhom/logging/file.py new file mode 100644 index 0000000..9c39acc --- /dev/null +++ b/Python_Engine/Python/src/python_toolkit/bhom/logging/file.py @@ -0,0 +1,28 @@ +"""Logging utilities for BHoM analytics.""" + +# pylint: disable=E0401 +import logging +from datetime import datetime +from logging.handlers import RotatingFileHandler + +# pylint: enable=E0401 + + +from .. import TOOLKIT_NAME, BHOM_LOG_FOLDER + +formatter = logging.Formatter("%(message)s") +handler = RotatingFileHandler( + BHOM_LOG_FOLDER / f"{TOOLKIT_NAME}_{datetime.now().strftime('%Y%m%d')}.log", + mode="a", + maxBytes=25 * 1024 * 1024, # 25mb max before file overwritten + backupCount=1, + encoding="utf-8", + delay=True, # wait until all logs collected before writing +) +handler.setLevel(logging.DEBUG) +handler.setFormatter(formatter) + +ANALYTICS_LOGGER = logging.getLogger(f"{TOOLKIT_NAME}") +ANALYTICS_LOGGER.propagate = False +ANALYTICS_LOGGER.setLevel(logging.DEBUG) +ANALYTICS_LOGGER.addHandler(handler) diff --git a/Python_Engine/Python/src/python_toolkit/bhom/util.py b/Python_Engine/Python/src/python_toolkit/bhom/util.py new file mode 100644 index 0000000..3200384 --- /dev/null +++ b/Python_Engine/Python/src/python_toolkit/bhom/util.py @@ -0,0 +1,24 @@ +"""General utility functions.""" +# pylint: disable=E0401 +from datetime import datetime + +# pylint: enable=E0401 + + +def csharp_ticks(date_time: datetime = datetime.utcnow(), short: bool = False) -> int: + """Python implementation of C# DateTime.UtcNow.Ticks. + + Args: + date_time (datetime, optional): The datetime to convert to ticks. Defaults to datetime.utcnow(). + short (bool, optional): Whether to return the short ticks. Defaults to False. + + Returns: + int: The ticks. + """ + + _ticks = (date_time - datetime(1, 1, 1)).total_seconds() + + if short: + return int(_ticks) + + return int(_ticks * (10**7)) diff --git a/Python_Engine/Python/src/python_toolkit/bhomutil/__init__.py b/Python_Engine/Python/src/python_toolkit/bhomutil/__init__.py deleted file mode 100644 index 5f28270..0000000 --- a/Python_Engine/Python/src/python_toolkit/bhomutil/__init__.py +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Python_Engine/Python/src/python_toolkit/helpers/__init__.py b/Python_Engine/Python/src/python_toolkit/helpers/__init__.py new file mode 100644 index 0000000..b0ee9a8 --- /dev/null +++ b/Python_Engine/Python/src/python_toolkit/helpers/__init__.py @@ -0,0 +1,22 @@ +from .timeseries import ( + validate_timeseries, + timeseries_summary_monthly +) +from .cardinality import ( + cardinality, + angle_from_cardinal, + angle_from_north, + angle_to_vector +) +from .decay_rate import ( + DecayMethod, + proximity_decay, + decay_rate_smoother +) +from .helpers import ( + sanitise_string, + convert_keys_to_snake_case, + remove_leap_days, + timedelta_tostring, + safe_filename +) \ No newline at end of file diff --git a/Python_Engine/Python/src/python_toolkit/helpers/cardinality.py b/Python_Engine/Python/src/python_toolkit/helpers/cardinality.py new file mode 100644 index 0000000..1bf6473 --- /dev/null +++ b/Python_Engine/Python/src/python_toolkit/helpers/cardinality.py @@ -0,0 +1,179 @@ +import numpy as np + +from ..bhom.analytics import bhom_analytics + +@bhom_analytics() +def cardinality(direction_angle: float, directions: int = 16): + """Returns the cardinal orientation of a given angle, where that angle is related to north at + 0 degrees. + Args: + direction_angle (float): + The angle to north in degrees (+Ve is interpreted as clockwise from north at 0.0 + degrees). + directions (int): + The number of cardinal directions into which angles shall be binned (This value should + be one of 4, 8, 16 or 32, and is centred about "north"). + Returns: + int: + The cardinal direction the angle represents. + """ + + if direction_angle > 360 or direction_angle < 0: + raise ValueError( + "The angle entered is beyond the normally expected range for an orientation in degrees." + ) + + cardinal_directions = { + 4: ["N", "E", "S", "W"], + 8: ["N", "NE", "E", "SE", "S", "SW", "W", "NW"], + 16: [ + "N", + "NNE", + "NE", + "ENE", + "E", + "ESE", + "SE", + "SSE", + "S", + "SSW", + "SW", + "WSW", + "W", + "WNW", + "NW", + "NNW", + ], + 32: [ + "N", + "NbE", + "NNE", + "NEbN", + "NE", + "NEbE", + "ENE", + "EbN", + "E", + "EbS", + "ESE", + "SEbE", + "SE", + "SEbS", + "SSE", + "SbE", + "S", + "SbW", + "SSW", + "SWbS", + "SW", + "SWbW", + "WSW", + "WbS", + "W", + "WbN", + "WNW", + "NWbW", + "NW", + "NWbN", + "NNW", + "NbW", + ], + } + + if directions not in cardinal_directions: + raise ValueError( + f'The input "directions" must be one of {list(cardinal_directions.keys())}.' + ) + + val = int((direction_angle / (360 / directions)) + 0.5) + + arr = cardinal_directions[directions] + + return arr[(val % directions)] + +@bhom_analytics() +def angle_from_cardinal(cardinal_direction: str) -> float: + """ + For a given cardinal direction, return the corresponding angle in degrees. + + Args: + cardinal_direction (str): + The cardinal direction. + Returns: + float: + The angle associated with the cardinal direction. + """ + cardinal_directions = [ + "N", + "NbE", + "NNE", + "NEbN", + "NE", + "NEbE", + "ENE", + "EbN", + "E", + "EbS", + "ESE", + "SEbE", + "SE", + "SEbS", + "SSE", + "SbE", + "S", + "SbW", + "SSW", + "SWbS", + "SW", + "SWbW", + "WSW", + "WbS", + "W", + "WbN", + "WNW", + "NWbW", + "NW", + "NWbN", + "NNW", + "NbW", + ] + if cardinal_direction not in cardinal_directions: + raise ValueError(f"{cardinal_direction} is not a known cardinal_direction.") + angles = np.arange(0, 360, 11.25) + + lookup = dict(zip(cardinal_directions, angles)) + + return lookup[cardinal_direction] + +def angle_from_north(vector: list[float]) -> float: + """For an X, Y vector, determine the clockwise angle to north at [0, 1]. + + Args: + vector (list[float]): + A vector of length 2. + + Returns: + float: + The angle between vector and north in degrees clockwise from [0, 1]. + """ + north = [0, 1] + angle1 = np.arctan2(*north[::-1]) + angle2 = np.arctan2(*vector[::-1]) + return np.rad2deg((angle1 - angle2) % (2 * np.pi)) + +def angle_to_vector(clockwise_angle_from_north: float) -> list[float]: + """Return the X, Y vector from of an angle from north at 0-degrees. + + Args: + clockwise_angle_from_north (float): + The angle from north in degrees clockwise from [0, 360], though + any number can be input here for angles greater than a full circle. + + Returns: + list[float]: + A vector of length 2. + """ + + clockwise_angle_from_north = np.radians(clockwise_angle_from_north) + + return np.sin(clockwise_angle_from_north), np.cos(clockwise_angle_from_north) diff --git a/Python_Engine/Python/src/python_toolkit/helpers/decay_rate.py b/Python_Engine/Python/src/python_toolkit/helpers/decay_rate.py new file mode 100644 index 0000000..99f2e65 --- /dev/null +++ b/Python_Engine/Python/src/python_toolkit/helpers/decay_rate.py @@ -0,0 +1,100 @@ +import re +from enum import Enum, auto + +import numpy as np +import pandas as pd + +from ..bhom.analytics import bhom_analytics + +class DecayMethod(Enum): + """An enumeration of decay methods.""" + + LINEAR = auto() + PARABOLIC = auto() + SIGMOID = auto() + +@bhom_analytics() +def proximity_decay( + value: float, + distance_to_value: float, + max_distance: float, + decay_method: DecayMethod = DecayMethod.LINEAR, +) -> float: + """Calculate the "decayed" value based on proximity (up to a maximum distance). + + Args: + value (float): + The value to be distributed. + distance_to_value (float): + A distance at which to return the magnitude. + max_distance (float): + The maximum distance to which magnitude is to be distributed. Beyond this, the input + value is 0. + decay_method (DecayMethod, optional): + A type of distribution (the shape of the distribution profile). Defaults to "DecayMethod.LINEAR". + + Returns: + float: + The value at the given distance. + """ + + distance_to_value = np.interp(distance_to_value, [0, max_distance], [0, 1]) + + if decay_method == DecayMethod.LINEAR: + return (1 - distance_to_value) * value + if decay_method == DecayMethod.PARABOLIC: + return (-(distance_to_value**2) + 1) * value + if decay_method == DecayMethod.SIGMOID: + return (1 - (0.5 * (np.sin(distance_to_value * np.pi - np.pi / 2) + 1))) * value + + raise ValueError(f"Unknown curve type: {decay_method}") + +@bhom_analytics() +def decay_rate_smoother( + series: pd.Series, + difference_threshold: float = -10, + transition_window: int = 4, + ewm_span: float = 1.25, +) -> pd.Series: + """Helper function that adds a decay rate to a time-series for values dropping significantly + below the previous values. + + Args: + series (pd.Series): + The series to modify + difference_threshold (float, optional): + The difference between current/previous values which class as a "transition". + Defaults to -10. + transition_window (int, optional): + The number of values after the "transition" within which an exponentially weighted mean + should be applied. Defaults to 4. + ewm_span (float, optional): + The rate of decay. Defaults to 1.25. + + Returns: + pd.Series: + A modified series + """ + + # Find periods of major transition (where values vary significantly) + transition_index = series.diff() < difference_threshold + + # Get boolean index for all periods within window from the transition indices + ewm_mask = [] + n = 0 + for i in transition_index: + if i: + n = 0 + if n < transition_window: + ewm_mask.append(True) + else: + ewm_mask.append(False) + n += 1 + + # Run an EWM to get the smoothed values following changes to values + ewm_smoothed: pd.Series = series.ewm(span=ewm_span).mean() + + # Choose from ewm or original values based on ewm mask + new_series = ewm_smoothed.where(ewm_mask, series) + + return new_series diff --git a/Python_Engine/Python/src/python_toolkit/helpers/helpers.py b/Python_Engine/Python/src/python_toolkit/helpers/helpers.py new file mode 100644 index 0000000..7f8cad9 --- /dev/null +++ b/Python_Engine/Python/src/python_toolkit/helpers/helpers.py @@ -0,0 +1,113 @@ +import re +from datetime import timedelta +from typing import Any + +import pandas as pd +from caseconverter import snakecase + +from ..bhom.analytics import bhom_analytics + +def sanitise_string(string: str) -> str: + """Sanitise a string so that only path-safe characters remain.""" + + keep_characters = r"[^.A-Za-z0-9_-]" + + return re.sub(keep_characters, "_", string).replace("__", "_").rstrip() + +def convert_keys_to_snake_case(d: dict | list | Any): + """Given a dictionary, convert all keys to snake_case.""" + keys_to_skip = ["_t"] + if isinstance(d, dict): + return { + snakecase(k) if k not in keys_to_skip else k: convert_keys_to_snake_case(v) + for k, v in d.items() + } + if isinstance(d, list): + return [convert_keys_to_snake_case(x) for x in d] + + return d + +@bhom_analytics() +def timedelta_tostring(time_delta: timedelta) -> str: + """timedelta objects don't have a nice string representation, so this function converts them. + + Args: + time_delta (datetime.timedelta): + The timedelta object to convert. + Returns: + str: + A string representation of the timedelta object. + """ + s = time_delta.seconds + hours, remainder = divmod(s, 3600) + minutes, _ = divmod(remainder, 60) + return f"{hours:02d}:{minutes:02d}" + +@bhom_analytics() +def decay_rate_smoother( + series: pd.Series, + difference_threshold: float = -10, + transition_window: int = 4, + ewm_span: float = 1.25, +) -> pd.Series: + """Helper function that adds a decay rate to a time-series for values dropping significantly + below the previous values. + + Args: + series (pd.Series): + The series to modify + difference_threshold (float, optional): + The difference between current/previous values which class as a "transition". + Defaults to -10. + transition_window (int, optional): + The number of values after the "transition" within which an exponentially weighted mean + should be applied. Defaults to 4. + ewm_span (float, optional): + The rate of decay. Defaults to 1.25. + + Returns: + pd.Series: + A modified series + """ + + # Find periods of major transition (where values vary significantly) + transition_index = series.diff() < difference_threshold + + # Get boolean index for all periods within window from the transition indices + ewm_mask = [] + n = 0 + for i in transition_index: + if i: + n = 0 + if n < transition_window: + ewm_mask.append(True) + else: + ewm_mask.append(False) + n += 1 + + # Run an EWM to get the smoothed values following changes to values + ewm_smoothed: pd.Series = series.ewm(span=ewm_span).mean() + + # Choose from ewm or original values based on ewm mask + new_series = ewm_smoothed.where(ewm_mask, series) + + return new_series + +@bhom_analytics() +def remove_leap_days(pd_object: pd.DataFrame | pd.Series) -> pd.DataFrame | pd.Series: + """A removal of all timesteps within a time-indexed pandas + object where the day is the 29th of February.""" + + if not isinstance(pd_object.index, pd.DatetimeIndex): + raise ValueError("The object provided should be datetime-indexed.") + + mask = (pd_object.index.month == 2) & (pd_object.index.day == 29) + + return pd_object[~mask] + +@bhom_analytics() +def safe_filename(filename: str) -> str: + """Remove all non-alphanumeric characters from a filename.""" + return "".join( + [c for c in filename if c.isalpha() or c.isdigit() or c == " "] + ).strip() diff --git a/Python_Engine/Python/src/python_toolkit/helpers/timeseries.py b/Python_Engine/Python/src/python_toolkit/helpers/timeseries.py new file mode 100644 index 0000000..ea02a46 --- /dev/null +++ b/Python_Engine/Python/src/python_toolkit/helpers/timeseries.py @@ -0,0 +1,69 @@ +from typing import Any +import pandas as pd + +from ..bhom.analytics import bhom_analytics + +@bhom_analytics() +def validate_timeseries( + obj: Any, + is_annual: bool = False, + is_hourly: bool = False, + is_contiguous: bool = False, +) -> None: + """Check if the input object is a pandas Series, and has a datetime index. + + Args: + obj (Any): + The object to check. + is_annual (bool, optional): + If True, check that the series is annual. Defaults to False. + is_hourly (bool, optional): + If True, check that the series is hourly. Defaults to False. + is_contiguous (bool, optional): + If True, check that the series is contiguous. Defaults to False. + + Raises: + TypeError: If the object is not a pandas Series. + TypeError: If the series does not have a datetime index. + ValueError: If the series is not annual. + ValueError: If the series is not hourly. + ValueError: If the series is not contiguous. + """ + if not isinstance(obj, pd.Series): + raise TypeError("series must be a pandas Series") + if not isinstance(obj.index, pd.DatetimeIndex): + raise TypeError("series must have a datetime index") + if is_annual: + if (obj.index.day_of_year.nunique() != 365) or ( + obj.index.day_of_year.nunique() != 366 + ): + raise ValueError("series is not annual") + if is_hourly: + if obj.index.hour.nunique() != 24: + raise ValueError("series is not hourly") + if is_contiguous: + if not obj.index.is_monotonic_increasing: + raise ValueError("series is not contiguous") + + +@bhom_analytics() +def timeseries_summary_monthly(series: pd.Series, bins: list[float], bin_names: list[str] = None, density: bool = False): + if not isinstance(series, pd.Series): + raise ValueError("The series must be a pandas series.") + + if not isinstance(series.index, pd.DatetimeIndex): + raise ValueError("The series must have a time series.") + + df = pd.cut(series, bins=bins, labels=bin_names, include_lowest=True) + + if df.isna().any(): + raise ValueError( + f"The input value/s are outside the range of the given bins ({bins[0]} <= x <= {bins[-1]})." + ) + + counts = df.groupby(series.index.month).value_counts().unstack().sort_index(axis=0) + counts.columns.name = None + counts.index.name = "Month" + if density: + return counts.div(counts.sum(axis=1), axis=0) + return counts \ No newline at end of file diff --git a/Python_Engine/Python/src/python_toolkit/plot/diurnal.py b/Python_Engine/Python/src/python_toolkit/plot/diurnal.py new file mode 100644 index 0000000..17b41f0 --- /dev/null +++ b/Python_Engine/Python/src/python_toolkit/plot/diurnal.py @@ -0,0 +1,290 @@ +"""Methods for plotting diurnal profiles from time-indexed data.""" + +import calendar +import textwrap + +import matplotlib.collections as mcollections +import matplotlib.lines as mlines +import matplotlib.patches as mpatches +import matplotlib.pyplot as plt +import matplotlib.ticker as mticker +import numpy as np +import pandas as pd + +from ..bhom.analytics import bhom_analytics +from .utilities import create_title + + +@bhom_analytics() +def diurnal( + series: pd.Series, + ax: plt.Axes = None, + period: str = "daily", + **kwargs, +) -> plt.Axes: + """Plot a profile aggregated across days in the specified timeframe. + + Args: + series (pd.Series): + A time-indexed Pandas Series object. + ax (plt.Axes, optional): + A matplotlib Axes object. Defaults to None. + period (str, optional): + The period to aggregate over. Must be one of "dailyy", "weekly", or "monthly". Defaults to "daily". + **kwargs (Dict[str, Any], optional): + Additional keyword arguments to pass to the matplotlib plotting function. + legend (bool, optional): + If True, show the legend. Defaults to True. + + Returns: + plt.Axes: + A matplotlib Axes object. + """ + + if ax is None: + ax = plt.gca() + + if not isinstance(series.index, pd.DatetimeIndex): + raise ValueError("Series passed is not datetime indexed.") + + show_legend = kwargs.pop("legend", True) + + # NOTE - no checks here for missing days, weeks, or months, it should be evident from the plot + + # obtain plotting parameters + minmax_range = kwargs.pop("minmax_range", [0.0001, 0.9999]) + if minmax_range[0] > minmax_range[1]: + raise ValueError("minmax_range must be increasing.") + minmax_alpha = kwargs.pop("minmax_alpha", 0.1) + + quantile_range = kwargs.pop("quantile_range", [0.05, 0.95]) + if quantile_range[0] > quantile_range[1]: + raise ValueError("quantile_range must be increasing.") + if quantile_range[0] < minmax_range[0] or quantile_range[1] > minmax_range[1]: + raise ValueError("quantile_range must be within minmax_range.") + quantile_alpha = kwargs.pop("quantile_alpha", 0.3) + + color = kwargs.pop("color", "slategray") + + # resample to hourly to ensuure hour alignment + # TODO - for now we only resample to hourly, but this could be made more flexible by allowing any subset of period + series = series.resample("h").mean() + + # remove nan/inf + series = series.replace([-np.inf, np.inf], np.nan).dropna() + + # Remove outliers + series = series[ + (series >= series.quantile(minmax_range[0])) + & (series <= series.quantile(minmax_range[1])) + ] + + # group data + if period == "daily": + group = series.groupby(series.index.hour) + target_idx = range(24) + major_ticks = target_idx[::3] + minor_ticks = target_idx + major_ticklabels = [f"{i:02d}:00" for i in major_ticks] + elif period == "weekly": + group = series.groupby([series.index.dayofweek, series.index.hour]) + target_idx = pd.MultiIndex.from_product([range(7), range(24)]) + major_ticks = range(len(target_idx))[::12] + minor_ticks = range(len(target_idx))[::3] + major_ticklabels = [] + for i in target_idx: + if i[1] == 0: + major_ticklabels.append(f"{calendar.day_abbr[i[0]]}") + elif i[1] == 12: + major_ticklabels.append("") + elif period == "monthly": + group = series.groupby([series.index.month, series.index.hour]) + target_idx = pd.MultiIndex.from_product([range(1, 13, 1), range(24)]) + major_ticks = range(len(target_idx))[::12] + minor_ticks = range(len(target_idx))[::6] + major_ticklabels = [] + for i in target_idx: + if i[1] == 0: + major_ticklabels.append(f"{calendar.month_abbr[i[0]]}") + elif i[1] == 12: + major_ticklabels.append("") + else: + raise ValueError("period must be one of 'daily', 'weekly', or 'monthly'") + + samples_per_timestep = group.count().mean() + ax.set_title( + create_title( + kwargs.pop("title", None), + f"Average {period} diurnal profile (≈{samples_per_timestep:0.0f} samples per timestep)", + ) + ) + + # Get values to plot + minima = group.min() + lower = group.quantile(quantile_range[0]) + median = group.median() + mean = group.mean() + upper = group.quantile(quantile_range[1]) + maxima = group.max() + + # create df for re-indexing + df = pd.concat( + [minima, lower, median, mean, upper, maxima], + axis=1, + keys=["minima", "lower", "median", "mean", "upper", "maxima"], + ).reindex(target_idx) + + # populate plot + for n, i in enumerate(range(len(df) + 1)[::24]): + if n == len(range(len(df) + 1)[::24]) - 1: + continue + # q-q + ax.fill_between( + range(len(df) + 1)[i : i + 25], + (df["lower"].tolist() + [df["lower"].values[0]])[i : i + 24] + + [(df["lower"].tolist() + [df["lower"].values[0]])[i : i + 24][0]], + (df["upper"].tolist() + [df["upper"].values[0]])[i : i + 24] + + [(df["upper"].tolist() + [df["upper"].values[0]])[i : i + 24][0]], + alpha=quantile_alpha, + color=color, + lw=None, + ec=None, + label=f"{quantile_range[0]:0.0%}-{quantile_range[1]:0.0%}ile" + if n == 0 + else "_nolegend_", + ) + # q-extreme + ax.fill_between( + range(len(df) + 1)[i : i + 25], + (df["lower"].tolist() + [df["lower"].values[0]])[i : i + 24] + + [(df["lower"].tolist() + [df["lower"].values[0]])[i : i + 24][0]], + (df["minima"].tolist() + [df["minima"].values[0]])[i : i + 24] + + [(df["minima"].tolist() + [df["minima"].values[0]])[i : i + 24][0]], + alpha=minmax_alpha, + color=color, + lw=None, + ec=None, + label="Range" if n == 0 else "_nolegend_", + ) + ax.fill_between( + range(len(df) + 1)[i : i + 25], + (df["upper"].tolist() + [df["upper"].values[0]])[i : i + 24] + + [(df["upper"].tolist() + [df["upper"].values[0]])[i : i + 24][0]], + (df["maxima"].tolist() + [df["maxima"].values[0]])[i : i + 24] + + [(df["maxima"].tolist() + [df["maxima"].values[0]])[i : i + 24][0]], + alpha=minmax_alpha, + color=color, + lw=None, + ec=None, + label="_nolegend_", + ) + # mean/median + ax.plot( + range(len(df) + 1)[i : i + 25], + (df["mean"].tolist() + [df["mean"].values[0]])[i : i + 24] + + [(df["mean"].tolist() + [df["mean"].values[0]])[i : i + 24][0]], + c=color, + ls="-", + lw=1, + label="Average" if n == 0 else "_nolegend_", + ) + ax.plot( + range(len(df) + 1)[i : i + 25], + (df["median"].tolist() + [df["median"].values[0]])[i : i + 24] + + [(df["median"].tolist() + [df["median"].values[0]])[i : i + 24][0]], + c=color, + ls="--", + lw=1, + label="Median" if n == 0 else "_nolegend_", + ) + + # format axes + ax.set_xlim(0, len(df)) + ax.xaxis.set_major_locator(mticker.FixedLocator(major_ticks)) + ax.xaxis.set_minor_locator(mticker.FixedLocator(minor_ticks)) + ax.set_xticklabels( + major_ticklabels, + minor=False, + ha="left", + ) + if show_legend: + ax.legend( + bbox_to_anchor=(0.5, -0.2), + loc=8, + ncol=6, + borderaxespad=0, + ) + + ax.set_ylabel(series.name) + + return ax + + +@bhom_analytics() +def stacked_diurnals( + datasets: list[pd.Series], period: str = "monthly", **kwargs +) -> plt.Figure: + """Create a matplotlib figure with stacked diurnal profiles. + + Args: + datasets (list[pd.Series]): + A list of time-indexed Pandas Series objects. + period (str, optional): + The period to aggregate over. Must be one of "dailyy", "weekly", or "monthly". Defaults to "monthly". + **kwargs (Dict[str, Any], optional): + Additional keyword arguments to pass to the matplotlib plotting function. + colors (list[str], optional): + A list of colors to use for the plots. Defaults to None, which uses the default diurnal color. + + Returns: + plt.Figure: + A matplotlib Figure object. + """ + + if len(datasets) <= 1: + raise ValueError("stacked_diurnals requires at least two datasets.") + + fig, axes = plt.subplots( + len(datasets), 1, figsize=(12, 2 * len(datasets)), sharex=True + ) + + for n, (ax, series) in enumerate(zip(axes, datasets)): + if "colors" in kwargs: + kwargs["color"] = kwargs["colors"][n] + diurnal(series, ax=ax, period=period, **kwargs) + ax.set_title(None) + ax.get_legend().remove() + ax.set_ylabel(textwrap.fill(ax.get_ylabel(), 20)) + + handles, labels = axes[-1].get_legend_handles_labels() + new_handles = [] + for handle in handles: + if isinstance(handle, mcollections.PolyCollection): + new_handles.append( + mpatches.Patch( + color="slategray", alpha=handle.get_alpha(), edgecolor=None + ) + ) + if isinstance(handle, mlines.Line2D): + new_handles.append( + mlines.Line2D( + (0,), (0,), color="slategray", linestyle=handle.get_linestyle() + ) + ) + + plt.legend( + new_handles, labels, bbox_to_anchor=(0.5, -0.12), loc="upper center", ncol=4 + ) + + fig.suptitle( + create_title( + kwargs.pop("title", None), + f"Average {period} diurnal profile" + "s" if len(datasets) > 1 else "", + ), + x=fig.subplotpars.left, + ha="left", + ) + + plt.tight_layout() + + return fig diff --git a/Python_Engine/Python/src/python_toolkit/plot/heatmap.py b/Python_Engine/Python/src/python_toolkit/plot/heatmap.py new file mode 100644 index 0000000..c252eaa --- /dev/null +++ b/Python_Engine/Python/src/python_toolkit/plot/heatmap.py @@ -0,0 +1,112 @@ +"""Methods for plotting heatmaps from time-indexed data.""" + +import matplotlib.dates as mdates +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd + +from ..bhom.analytics import bhom_analytics +from ..helpers.timeseries import validate_timeseries + + +@bhom_analytics() +def heatmap( + series: pd.Series, + ax: plt.Axes = None, + **kwargs, +) -> plt.Axes: + """Create a heatmap of a pandas Series. + + Args: + series (pd.Series): + The pandas Series to plot. Must have a datetime index. + ax (plt.Axes, optional): + An optional plt.Axes object to populate. Defaults to None, which creates a new plt.Axes object. + **kwargs: + Additional keyword arguments to pass to plt.pcolormesh(). + show_colorbar (bool, optional): + If True, show the colorbar. Defaults to True. + title (str, optional): + The title of the plot. Defaults to None. + mask (List[bool], optional): + A list of booleans to mask the data. Defaults to None. + + Returns: + plt.Axes: + The populated plt.Axes object. + """ + + validate_timeseries(series) + + if ax is None: + ax = plt.gca() + + day_time_matrix = ( + series.dropna() + .to_frame() + .pivot_table(columns=series.index.date, index=series.index.time) + ) + x = mdates.date2num(day_time_matrix.columns.get_level_values(1)) + y = mdates.date2num( + pd.to_datetime([f"2017-01-01 {i}" for i in day_time_matrix.index]) + ) + z = day_time_matrix.values + + if "mask" in kwargs: + if len(kwargs["mask"]) != len(series): + raise ValueError( + f"Length of mask ({len(kwargs['mask'])}) must match length of data ({len(series)})." + ) + z = np.ma.masked_array(z, mask=kwargs.pop("mask")) + + # handle non-standard kwargs + extend = kwargs.pop("extend", "neither") + title = kwargs.pop("title", series.name) + show_colorbar = kwargs.pop("show_colorbar", True) + + # Plot data + pcm = ax.pcolormesh( + x, + y, + z[:-1, :-1], + **kwargs, + ) + + ax.xaxis_date() + if len(set(series.index.year)) > 1: + date_formatter = mdates.DateFormatter("%b %Y") + else: + date_formatter = mdates.DateFormatter("%b") + ax.xaxis.set_major_formatter(date_formatter) + + ax.yaxis_date() + ax.yaxis.set_major_formatter(mdates.DateFormatter("%H:%M")) + + ax.tick_params(labelleft=True, labelbottom=True) + plt.setp(ax.get_xticklabels(), ha="left") + + for spine in ["top", "bottom", "left", "right"]: + ax.spines[spine].set_visible(False) + + for i in ax.get_xticks(): + ax.axvline(i, color="w", ls=":", lw=0.5, alpha=0.5) + for i in ax.get_yticks(): + ax.axhline(i, color="w", ls=":", lw=0.5, alpha=0.5) + + if show_colorbar: + cb = plt.colorbar( + pcm, + ax=ax, + orientation="horizontal", + drawedges=False, + fraction=0.05, + aspect=100, + pad=0.075, + extend=extend, + label=series.name, + ) + cb.outline.set_visible(False) + + ax.set_title(title) + + return ax \ No newline at end of file diff --git a/Python_Engine/Python/src/python_toolkit/plot/histogram.py b/Python_Engine/Python/src/python_toolkit/plot/histogram.py new file mode 100644 index 0000000..cc2ecb7 --- /dev/null +++ b/Python_Engine/Python/src/python_toolkit/plot/histogram.py @@ -0,0 +1,147 @@ +"""Methods for plotting binned data""" + +import calendar +import pandas as pd +import numpy as np +import matplotlib.pyplot as plt +import matplotlib.ticker as mticker + +from ..bhom.analytics import bhom_analytics +from ..helpers.timeseries import validate_timeseries, timeseries_summary_monthly +from .utilities import contrasting_colour + +@bhom_analytics() +def histogram( + series: pd.Series, + ax: plt.Axes = None, + bins: list[float] | list[int] = None, + **kwargs, + ) -> plt.Axes: + """Create a histogram of a pandas series + + Args: + series (pd.Series): + The pandas Series to plot. Must have a datetime index. + ax (plt.Axes, optional): + An optional plt.Axes object to populate. Defaults to None, which creates a new plt.Axes object. + bins (list[float]): + The bins to use for the histogram. + show_legend (bool, optional): + Whether to show the legend. Defaults to False. + **kwargs: + Additional keyword arguments to pass to plt.hist. + + Returns: + plt.Axes: + The populated plt.Axes object. + """ + if bins is None: + bins = np.linspace(series.values.min(), series.values.max(), 31) + elif len(bins) <= 1: + bins = np.linspace(series.values.min(), series.values.max(), 31) + + if ax is None: + ax = plt.gca() + + show_legend = kwargs.pop("show_legend", True) + + ax.hist(series.values, bins=bins, label = series.name, density=False, **kwargs) + + if show_legend: + ax.legend() + + return ax + +@bhom_analytics() +def monthly_proportional_histogram( + series: pd.Series, + bins: list[float], + ax: plt.Axes = None, + labels: list[str] = None, + show_year_in_label: bool = False, + show_labels: bool = False, + show_legend: bool = False, + **kwargs, +) -> plt.Axes: + """Create a monthly histogram of a pandas Series. + + Args: + series (pd.Series): + The pandas Series to plot. Must have a datetime index. + bins (list[float]): + The bins to use for the histogram. + ax (plt.Axes, optional): + An optional plt.Axes object to populate. Defaults to None, which creates a new plt.Axes object. + labels (list[str], optional): + The labels to use for the histogram. Defaults to None, which uses the bin edges. + show_year_in_label (bool, optional): + Whether to show the year in the x-axis label. Defaults to False. + show_labels (bool, optional): + Whether to show the labels on the bars. Defaults to False. + show_legend (bool, optional): + Whether to show the legend. Defaults to False. + **kwargs: + Additional keyword arguments to pass to plt.bar. + + Returns: + plt.Axes: + The populated plt.Axes object. + """ + + validate_timeseries(series) + + if ax is None: + ax = plt.gca() + + counts = timeseries_summary_monthly(series, bins, labels, density=True) + + if show_year_in_label: + counts.columns = [ + f"{year}\n{calendar.month_abbr[month]}" for year, month in counts.columns.values + ] + + counts.plot( + ax = ax, + kind = "bar", + stacked = True, + width = kwargs.pop("width", 1), + legend = False, + **kwargs + ) + + ax.set_xlim(-0.5, len(counts) - 0.5) + ax.set_ylim(0, 1) + + ax.set_xticklabels( + [calendar.month_abbr[int(i._text)] for i in ax.get_xticklabels()], + ha="center", + rotation=0, + ) + + for spine in ["top", "right", "left", "bottom"]: + ax.spines[spine].set_visible(False) + ax.yaxis.set_major_formatter(mticker.PercentFormatter(1)) + + if show_legend: + ax.legend( + bbox_to_anchor=(1, 1), + loc="upper left", + borderaxespad=0.0, + frameon=False, + ) + + if show_labels: + for i, c in enumerate(ax.containers): + label_colors = [contrasting_colour(i.get_facecolor()) for i in c.patches] + labels = [ + f"{v.get_height():0.1%}" if v.get_height() > 0.15 else "" for v in c + ] + ax.bar_label( + c, + labels=labels, + label_type="center", + color=label_colors[i], + fontsize="x-small", + ) + + return ax \ No newline at end of file diff --git a/Python_Engine/Python/src/python_toolkit/plot/spatial_heatmap.py b/Python_Engine/Python/src/python_toolkit/plot/spatial_heatmap.py new file mode 100644 index 0000000..0e205c2 --- /dev/null +++ b/Python_Engine/Python/src/python_toolkit/plot/spatial_heatmap.py @@ -0,0 +1,169 @@ +"""Methods for plotting spatial heatmaps.""" + +import matplotlib.pyplot as plt +import numpy as np +from matplotlib.colors import BoundaryNorm, Colormap +from matplotlib.figure import Figure +from matplotlib.tri import Triangulation +from mpl_toolkits.axes_grid1 import make_axes_locatable + +from ..bhom.analytics import bhom_analytics + + +@bhom_analytics() +def spatial_heatmap( + triangulations: list[Triangulation], + values: list[list[float]], + levels: list[float] | int = None, + contours: list[float] = None, + contour_colors: list[str] = None, + contour_widths: list[float] = None, + cmap: Colormap = "viridis", + extend: str = "neither", + norm: BoundaryNorm = None, + xlims: list[float] = None, + ylims: list[float] = None, + colorbar_label: str = "", + title: str = "", + highlight_pts: dict[str, tuple[int]] = None, + show_legend_title: bool = True, + clabels: bool = False, +) -> Figure: + """Plot a spatial map of a variable using a triangulation and associated values. + + Args: + triangulations (list[Triangulation]): + A list of triangulations to plot. + values (list[list[float]]): + A list of values, corresponding with the triangulations and their respective indices. + levels (list[float] | int, optional): + The number of levels to include in the colorbar. Defaults to None which will use + 10-steps between the min/max for all given values. + contours (list[float], optional): + Add contours at the given values to the spatial plot. Defaults to None. + contour_colors (list[str], optional): + Color each of the listed contours. Defaults to None. + contour_widths (list[float], optional): + The width each of the listed contours. Defaults to None. + cmap (Colormap, optional): + The colormap to use for this plot. Defaults to "viridis". + extend (str, optional): + Define how to handle the end-points of the colorbar. Defaults to "neither". + norm (BoundaryNorm, optional): + A matplotlib BoundaryNorm object containing colormap boundary mapping information. + Defaults to None. + xlims (list[float], optional): + The x-limit for the plot. Defaults to None. + ylims (list[float], optional): + The y-limit for the plot. Defaults to None. + colorbar_label (str, optional): + A label to be placed next to the colorbar. Defaults to "". + title (str, optional): + The title to be placed on the plot. Defaults to "". + highlight_pts (dict[str, int], optional): + A set of points (and their names) to indicate on the spatial plot. Value is the int + index of the highlighted point. + show_legend_title (bool, optional): + A convenient flag to hide the legend and title. + clabels (bool, optional): + A flag to show contour labels. Defaults to False. + + Returns: + Figure: A matplotlib Figure object. + """ + for tri, zs in list(zip(*[triangulations, values])): + if len(tri.x) != len(zs): + raise ValueError( + "The shape of the triangulations and values given do not match." + ) + + if levels is None: + levels = np.linspace( + min(np.amin(i) for i in values), max(np.amax(i) for i in values), 10 + ) + + if xlims is None: + xlims = [ + min(i.x.min() for i in triangulations), + max(i.x.max() for i in triangulations), + ] + + if ylims is None: + ylims = [ + min(i.y.min() for i in triangulations), + max(i.y.max() for i in triangulations), + ] + + fig, ax = plt.subplots(1, 1, figsize=(8, 8)) + + ax.set_aspect("equal") + ax.axis("off") + + ax.set_xlim(xlims) + ax.set_ylim(ylims) + + tcls = [] + for tri, zs in list(zip(*[triangulations, values])): + tcf = ax.tricontourf( + tri, zs, extend=extend, cmap=cmap, levels=levels, norm=norm + ) + # add contour lines + if contours is not None: + if not ( + all(i < np.amin(zs) for i in contours) + or all(i > np.amax(zs) for i in contours) + ): + if contour_widths is None: + contour_widths = [1.5] * len(contours) + if contour_colors is None: + contour_colors = ["k"] * len(contours) + if len(contour_colors) != len(contours) != len(contour_widths): + raise ValueError("contour vars must be same length") + tcl = ax.tricontour( + tri, + zs, + levels=contours, + colors=contour_colors, + linewidths=contour_widths, + ) + if clabels: + ax.clabel(tcl, inline=1, fontsize="small", colors=contour_colors) + tcls.append(tcl) + + if highlight_pts is not None: + if len(triangulations) > 1: + raise ValueError( + "Point highlighting is only possible for 1-length triangulations." + ) + pt_size = (xlims[1] - xlims[0]) / 5 + for k, v in highlight_pts.items(): + ax.scatter( + triangulations[0].x[v], triangulations[0].y[v], s=pt_size, c="red" + ) + ax.text( + triangulations[0].x[v] + (pt_size / 10), + triangulations[0].y[v], + k, + ha="left", + va="center", + ) + + if show_legend_title: + # Plot colorbar + divider = make_axes_locatable(ax) + cax = divider.append_axes("right", size="5%", pad=0.1, aspect=20) + + cbar = plt.colorbar( + tcf, cax=cax # , format=mticker.StrMethodFormatter("{x:04.1f}") + ) + cbar.outline.set_visible(False) + cbar.set_label(colorbar_label) + + for tcl in tcls: + cbar.add_lines(tcl) + + ax.set_title(title, ha="left", va="bottom", x=0) + + plt.tight_layout() + + return fig diff --git a/Python_Engine/Python/src/python_toolkit/plot/timeseries.py b/Python_Engine/Python/src/python_toolkit/plot/timeseries.py new file mode 100644 index 0000000..c0cedb0 --- /dev/null +++ b/Python_Engine/Python/src/python_toolkit/plot/timeseries.py @@ -0,0 +1,57 @@ +"""Methods for plotting time-indexed data.""" + +from datetime import datetime +import matplotlib.pyplot as plt +import pandas as pd + +from ..bhom.analytics import bhom_analytics +from ..helpers.timeseries import validate_timeseries + + +@bhom_analytics() +def timeseries( + series: pd.Series, + ax: plt.Axes = None, + xlims: tuple[datetime] = None, + ylims: tuple[datetime] = None, + **kwargs, +) -> plt.Axes: + """Create a timeseries plot of a pandas Series. + + Args: + series (pd.Series): + The pandas Series to plot. Must have a datetime index. + ax (plt.Axes, optional): + An optional plt.Axes object to populate. Defaults to None, which creates a new plt.Axes object. + xlims (tuple[datetime], optional): + Set the x-limits. Defaults to None. + ylims (tuple[datetime], optional): + Set the y-limits. Defaults to None. + **kwargs: + Additional keyword arguments to pass to the plt.plot() function. + + Returns: + plt.Axes: + The populated plt.Axes object. + """ + + validate_timeseries(series) + + if ax is None: + ax = plt.gca() + + ax.plot(series.index, series.values, **kwargs) ## example plot here + + # TODO - add cmap arg to color line by y value - + # https://matplotlib.org/stable/gallery/lines_bars_and_markers/multicolored_line.html + + if xlims is None: + ax.set_xlim(series.index.min(), series.index.max()) + else: + ax.set_xlim(xlims) + if ylims is None: + ax.set_ylim(ax.get_ylim()) + else: + ax.set_ylim(ylims) + + return ax \ No newline at end of file diff --git a/Python_Engine/Python/src/python_toolkit/plot/utilities.py b/Python_Engine/Python/src/python_toolkit/plot/utilities.py new file mode 100644 index 0000000..5b1f458 --- /dev/null +++ b/Python_Engine/Python/src/python_toolkit/plot/utilities.py @@ -0,0 +1,596 @@ +"""Text and colour utility methods for plotting""" + +import base64 +import colorsys +from pathlib import Path +from typing import Any +import copy + +import numpy as np +from matplotlib.colors import ( + LinearSegmentedColormap, + cnames, + colorConverter, + is_color_like, + rgb2hex, + to_hex, + to_rgb, + to_rgba_array, +) +import matplotlib.image as mimage +import matplotlib.pyplot as plt +import matplotlib.ticker as mticker +from matplotlib.tri import Triangulation +from PIL import Image +from ..bhom.analytics import bhom_analytics + +@bhom_analytics() +def average_color(colors: Any, keep_alpha: bool = False) -> str: + """Return the average color from a list of colors. + + Args: + colors (Any): + A list of colors. + keep_alpha (bool, optional): + If True, the alpha value of the color is kept. Defaults to False. + + Returns: + color: str + The average color in hex format. + """ + + if not isinstance(colors, (list, tuple)): + raise ValueError("colors must be a list") + + for i in colors: + if not is_color_like(i): + raise ValueError( + f"colors must be a list of valid colors - '{i}' is not valid." + ) + + if len(colors) == 1: + return colors[0] + + return rgb2hex(to_rgba_array(colors).mean(axis=0), keep_alpha=keep_alpha) + +@bhom_analytics() +def animation( + images: list[str | Path | Image.Image], + output_gif: str | Path, + ms_per_image: int = 333, + transparency_idx: int = 0, +) -> Path: + """Create an animated gif from a set of images. + + Args: + images (list[str | Path | Image.Image]): + A list of image files or PIL Image objects. + output_gif (str | Path): + The output gif file to be created. + ms_per_image (int, optional): + Number of milliseconds per image. Default is 333, for 3 images per second. + transparency_idx (int, optional): + The index of the color to be used as the transparent color. Default is 0. + + Returns: + Path: + The animated gif. + + """ + _images = [] + for i in images: + if isinstance(i, (str, Path)): + _images.append(Image.open(i)) + elif isinstance(i, Image.Image): + _images.append(i) + else: + raise ValueError( + f"images must be a list of strings, Paths or PIL Image objects - {i} is not valid." + ) + + # create white background + background = Image.new("RGBA", _images[0].size, (255, 255, 255)) + + _images = [Image.alpha_composite(background, i) for i in _images] + + _images[0].save( + output_gif, + save_all=True, + append_images=_images[1:], + optimize=False, + duration=ms_per_image, + loop=0, + disposal=2, + transparency=transparency_idx, + ) + + return output_gif + +def create_title(text: str, plot_type: str) -> str: + """Create a title for a plot. + + Args: + text (str): + The title of the plot. + plot_type (str): + The type of plot. + + Returns: + str: + The title of the plot. + """ + return "\n".join( + [ + i + for i in [ + text, + plot_type, + ] + if i is not None + ] + ) + +def contrasting_colour(color: Any): + """Calculate the contrasting color for a given color. + + Args: + color (Any): + matplotlib color or sequence of matplotlib colors - Hex code, + rgb-tuple, or html color name. + + Returns: + str: + String code of the contrasting color. + """ + return ".15" if relative_luminance(color) > 0.408 else "w" + +def relative_luminance(color: Any): + """Calculate the relative luminance of a color according to W3C standards + + Args: + color (Any): + matplotlib color or sequence of matplotlib colors - Hex code, + rgb-tuple, or html color name. + + Returns: + float: + Luminance value between 0 and 1. + """ + rgb = colorConverter.to_rgba_array(color)[:, :3] + rgb = np.where(rgb <= 0.03928, rgb / 12.92, ((rgb + 0.055) / 1.055) ** 2.4) + lum = rgb.dot([0.2126, 0.7152, 0.0722]) + try: + return lum.item() + except ValueError: + return lum + +def colormap_sequential( + *colors: str | float | int | tuple, N: int = 256 +) -> LinearSegmentedColormap: + """ + Create a sequential colormap from a list of input colors. + + Args: + *colors (str | float | int | tuple): + A list of colors according to their hex-code, string name, character code or + RGBA values. + N (int, optional): + The number of colors in the colormap. Defaults to 256. + + Returns: + LinearSegmentedColormap: + A matplotlib colormap. + + Examples: + >> colormap_sequential( + (0.89411764705, 0.01176470588, 0.01176470588), + "darkorange", + "#FFED00", + "#008026", + (36/255, 64/255, 142/255), + "#732982" + ) + """ + + if len(colors) < 2: + raise KeyError("Not enough colors input to create a colormap.") + + fixed_colors = [] + for color in colors: + fixed_colors.append(to_hex(color)) + + return LinearSegmentedColormap.from_list( + name=f"{'_'.join(fixed_colors)}", + colors=fixed_colors, + N=N, + ) + +def annotate_imshow( + im: mimage.AxesImage, + data: list[float] = None, + valfmt: str = "{x:.2f}", + textcolors: tuple[str] = ("black", "white"), + threshold: float = None, + exclude_vals: list[float] = None, + **text_kw, +) -> list[str]: + """A function to annotate a heatmap. + + Args: + im (AxesImage): + The AxesImage to be labeled. + data (list[float], optional): + Data used to annotate. If None, the image's data is used. Defaults to None. + valfmt (_type_, optional): + The format of the annotations inside the heatmap. This should either use the string + format method, e.g. "$ {x:.2f}", or be a `matplotlib.ticker.Formatter`. + Defaults to "{x:.2f}". + textcolors (tuple[str], optional): + A pair of colors. The first is used for values below a threshold, the second for + those above.. Defaults to ("black", "white"). + threshold (float, optional): + Value in data units according to which the colors from textcolors are applied. If None + (the default) uses the middle of the colormap as separation. Defaults to None. + exclude_vals (float, optional): + A list of values where text should not be added. Defaults to None. + **text_kw (dict, optional): + All other keyword arguments are passed on to the created `~matplotlib.text.Text` + + Returns: + list[str]: + The texts added to the AxesImage. + """ + + if not isinstance(data, (list, np.ndarray)): + data = im.get_array() + + # Normalize the threshold to the images color range. + if threshold is not None: + threshold = im.norm(threshold) + else: + threshold = im.norm(data.max()) / 2.0 + + # Set default alignment to center, but allow it to be overwritten by textkw. + text_kw = {"ha": "center", "va": "center"} + text_kw.update({"ha": "center", "va": "center"}) + + # Get the formatter in case a string is supplied + if isinstance(valfmt, str): + valfmt = mticker.StrMethodFormatter(valfmt) + + # Loop over the data and create a `Text` for each "pixel". + # Change the text's color depending on the data. + texts = [] + for i in range(data.shape[0]): + for j in range(data.shape[1]): + if data[i, j] in exclude_vals: + pass + else: + text_kw.update(color=textcolors[int(im.norm(data[i, j]) > threshold)]) + text = im.axes.text(j, i, valfmt(data[i, j], None), **text_kw) + texts.append(text) + + return texts + +def lighten_color(color: str | tuple, amount: float = 0.5) -> tuple[float]: + """ + Lightens the given color by multiplying (1-luminosity) by the given amount. + + Args: + color (str): + A color-like string. + amount (float): + The amount of lightening to apply. + + Returns: + tuple[float]: + An RGB value. + + Examples: + >> lighten_color('g', 0.3) + >> lighten_color('#F034A3', 0.6) + >> lighten_color((.3,.55,.1), 0.5) + """ + try: + c = cnames[color] + except KeyError: + c = color + c = colorsys.rgb_to_hls(*to_rgb(c)) + return colorsys.hls_to_rgb(c[0], 1 - amount * (1 - c[1]), c[2]) + + +@bhom_analytics() +def base64_to_image(base64_string: str, image_path: Path) -> Path: + """Convert a base64 encoded image into a file on disk. + + Arguments: + base64_string (str): + A base64 string encoding of an image file. + image_path (Path): + The location where the image should be stored. + + Returns: + Path: + The path to the image file. + """ + + # remove html pre-amble, if necessary + if base64_string.startswith("data:image"): + base64_string = base64_string.split(";")[-1] + + with open(Path(image_path), "wb") as fp: + fp.write(base64.decodebytes(base64_string)) + + return image_path + +@bhom_analytics() +def image_to_base64(image_path: Path, html: bool = False) -> str: + """Load an image file from disk and convert to base64 string. + + Arguments: + image_path (Path): + The file path for the image to be converted. + html (bool, optional): + Set to True to include the HTML preamble for a base64 encoded image. Default is False. + + Returns: + str: + A base64 string encoding of the input image file. + """ + + # convert path string to Path object + image_path = Path(image_path).absolute() + + # ensure format is supported + supported_formats = [".png", ".jpg", ".jpeg"] + if image_path.suffix not in supported_formats: + raise ValueError( + f"'{image_path.suffix}' format not supported. Use one of {supported_formats}" + ) + + # load image and convert to base64 string + with open(image_path, "rb") as image_file: + base64_string = base64.b64encode(image_file.read()).decode("utf-8") + + if html: + content_type = f"data:image/{image_path.suffix.replace('.', '')}" + content_encoding = "utf-8" + return f"{content_type};charset={content_encoding};base64,{base64_string}" + + return base64_string + +@bhom_analytics() +def figure_to_base64(figure: plt.Figure, html: bool = False, transparent: bool = True) -> str: + """Convert a matplotlib figure object into a base64 string. + + Arguments: + figure (Figure): + A matplotlib figure object. + html (bool, optional): + Set to True to include the HTML preamble for a base64 encoded image. Default is False. + + Returns: + str: + A base64 string encoding of the input figure object. + """ + + buffer = io.BytesIO() + figure.savefig(buffer, transparent=transparent) + buffer.seek(0) + base64_string = base64.b64encode(buffer.read()).decode("utf-8") + + if html: + content_type = "data:image/png" + content_encoding = "utf-8" + return f"{content_type};charset={content_encoding};base64,{base64_string}" + + return base64_string + +@bhom_analytics() +def figure_to_image(fig: plt.Figure) -> Image: + """Convert a matplotlib Figure object into a PIL Image. + + Args: + fig (Figure): + A matplotlib Figure object. + + Returns: + Image: + A PIL Image. + """ + + # draw the renderer + fig.canvas.draw() + + # Get the RGBA buffer from the figure + w, h = fig.canvas.get_width_height() + buf = np.frombuffer(fig.canvas.tostring_argb(), dtype=np.uint8) + buf.shape = (w, h, 4) + buf = np.roll(buf, 3, axis=2) + + return Image.fromarray(buf) + +@bhom_analytics() +def tile_images( + imgs: list[Path] | list[Image.Image], rows: int, cols: int +) -> Image.Image: + """Tile a set of images into a grid. + + Args: + imgs (Union[list[Path], list[Image.Image]]): + A list of images to tile. + rows (int): + The number of rows in the grid. + cols (int): + The number of columns in the grid. + + Returns: + Image.Image: + A PIL image of the tiled images. + """ + + imgs = np.array([Path(i) for i in np.array(imgs).flatten()]) + + # open images if paths passed + imgs = [Image.open(img) if isinstance(img, Path) else img for img in imgs] + + if len(imgs) != rows * cols: + raise ValueError( + f"The number of images given ({len(imgs)}) does not equal ({rows}*{cols})" + ) + + # ensure each image has the same dimensions + w, h = imgs[0].size + for img in imgs: + if img.size != (w, h): + raise ValueError("All images must have the same dimensions") + + w, h = imgs[0].size + grid = Image.new("RGBA", size=(cols * w, rows * h)) + + for i, img in enumerate(imgs): + grid.paste(img, box=(i % cols * w, i // cols * h)) + img.close() + + return grid + +@bhom_analytics() +def triangulation_area(triang: Triangulation) -> float: + """Calculate the area of a matplotlib Triangulation. + + Args: + triang (Triangulation): + A matplotlib Triangulation object. + + Returns: + float: + The area of the Triangulation in the units given. + """ + + triangles = triang.triangles + x, y = triang.x, triang.y + a, _ = triangles.shape + i = np.arange(a) + area = np.sum( + np.abs( + 0.5 + * ( + (x[triangles[i, 1]] - x[triangles[i, 0]]) + * (y[triangles[i, 2]] - y[triangles[i, 0]]) + - (x[triangles[i, 2]] - x[triangles[i, 0]]) + * (y[triangles[i, 1]] - y[triangles[i, 0]]) + ) + ) + ) + + return area + +@bhom_analytics() +def create_triangulation( + x: list[float], + y: list[float], + alpha: float = None, + max_iterations: int = 250, + increment: float = 0.01, +) -> Triangulation: + """Create a matplotlib Triangulation from a list of x and y coordinates, including a mask to + remove elements with edges larger than alpha. + + Args: + x (list[float]): + A list of x coordinates. + y (list[float]): + A list of y coordinates. + alpha (float, optional): + A value to start alpha at. + Defaults to None, with an estimate made for a suitable starting point. + max_iterations (int, optional): + The number of iterations to run to check against triangulation validity. + Defaults to 250. + increment (int, optional): + The value by which to increment alpha by when searching for a valid triangulation. + Defaults to 0.01. + + Returns: + Triangulation: + A matplotlib Triangulation object. + """ + + if alpha is None: + # TODO - add method here to automatically determine appropriate alpha value + alpha = 1.1 + + if len(x) != len(y): + raise ValueError("x and y must be the same length") + + # Triangulate X, Y locations + triang = Triangulation(x, y) + + xtri = x[triang.triangles] - np.roll(x[triang.triangles], 1, axis=1) + ytri = y[triang.triangles] - np.roll(y[triang.triangles], 1, axis=1) + maxi = np.max(np.sqrt(xtri**2 + ytri**2), axis=1) + + # Iterate triangulation masking until a possible mask is found + count = 0 + fig, ax = plt.subplots(1, 1) + synthetic_values = range(len(x)) + success = False + while not success: + count += 1 + try: + tr = copy.deepcopy(triang) + tr.set_mask(maxi > alpha) + ax.tricontour(tr, synthetic_values) + success = True + except ValueError: + alpha += increment + else: + break + if count > max_iterations: + plt.close(fig) + raise ValueError( + f"Could not create a valid triangulation mask within {max_iterations}" + ) + plt.close(fig) + triang.set_mask(maxi > alpha) + return triang + +@bhom_analytics() +def format_polar_plot(ax: plt.Axes, yticklabels: bool = True) -> plt.Axes: + """Format a polar plot, to save on having to write this every time!""" + ax.set_theta_zero_location("N") + ax.set_theta_direction(-1) + + # format plot area + ax.spines["polar"].set_visible(False) + ax.grid(True, which="both", ls="--", zorder=0, alpha=0.3) + ax.yaxis.set_major_locator(plt.MaxNLocator(6)) + plt.setp(ax.get_yticklabels(), fontsize="small") + ax.set_xticks(np.radians((0, 90, 180, 270)), minor=False) + ax.set_xticklabels(("N", "E", "S", "W"), minor=False, **{"fontsize": "medium"}) + ax.set_xticks( + np.radians( + (22.5, 45, 67.5, 112.5, 135, 157.5, 202.5, 225, 247.5, 292.5, 315, 337.5) + ), + minor=True, + ) + ax.set_xticklabels( + ( + "NNE", + "NE", + "ENE", + "ESE", + "SE", + "SSE", + "SSW", + "SW", + "WSW", + "WNW", + "NW", + "NNW", + ), + minor=True, + **{"fontsize": "x-small"}, + ) + if not yticklabels: + ax.set_yticklabels([]) diff --git a/Python_Engine/Python/tests/__init__.py b/Python_Engine/Python/tests/__init__.py new file mode 100644 index 0000000..54360af --- /dev/null +++ b/Python_Engine/Python/tests/__init__.py @@ -0,0 +1,12 @@ +from pathlib import Path +import pandas as pd + +# identifier for all downstream processes +BASE_IDENTIFIER = "PythonBHoM_pytest" + +def get_timeseries(): + df = pd.read_csv(Path(__file__).parent / "assets" / "example_timeseries.csv", index_col="Timestamp") + df = df.set_index(pd.to_datetime(df.index)) + return pd.Series(df["Value"], index=df.index) + +TIMESERIES_COLLECTION = get_timeseries() \ No newline at end of file diff --git a/Python_Engine/Python/tests/assets/example_timeseries.csv b/Python_Engine/Python/tests/assets/example_timeseries.csv new file mode 100644 index 0000000..cec5b49 --- /dev/null +++ b/Python_Engine/Python/tests/assets/example_timeseries.csv @@ -0,0 +1,8761 @@ +Timestamp,Value +2023-01-01 00:00:00,26.671274041326747 +2023-01-01 01:00:00,25.737655245610785 +2023-01-01 02:00:00,26.654791839873543 +2023-01-01 03:00:00,21.62376943541548 +2023-01-01 04:00:00,23.97713023497657 +2023-01-01 05:00:00,18.29513184321908 +2023-01-01 06:00:00,20.65370658952132 +2023-01-01 07:00:00,5.3552583449115065 +2023-01-01 08:00:00,24.401930747413708 +2023-01-01 09:00:00,5.000146515045349 +2023-01-01 10:00:00,25.545045749449525 +2023-01-01 11:00:00,14.304545034467166 +2023-01-01 12:00:00,10.085799691775714 +2023-01-01 13:00:00,5.61138865310638 +2023-01-01 14:00:00,11.453374793506285 +2023-01-01 15:00:00,22.75980881136543 +2023-01-01 16:00:00,24.4440804293828 +2023-01-01 17:00:00,1.9470061522637103 +2023-01-01 18:00:00,24.16279220111037 +2023-01-01 19:00:00,10.340734815878468 +2023-01-01 20:00:00,6.111429100974023 +2023-01-01 21:00:00,25.46427976233384 +2023-01-01 22:00:00,25.14769931530715 +2023-01-01 23:00:00,28.62119519197615 +2023-01-02 00:00:00,2.011823508385259 +2023-01-02 01:00:00,11.978585486290926 +2023-01-02 02:00:00,6.728451845522892 +2023-01-02 03:00:00,19.02014018467065 +2023-01-02 04:00:00,21.519047146588008 +2023-01-02 05:00:00,19.201487732160164 +2023-01-02 06:00:00,19.28668229769301 +2023-01-02 07:00:00,28.828638446701657 +2023-01-02 08:00:00,16.094798525282872 +2023-01-02 09:00:00,8.917919312774933 +2023-01-02 10:00:00,12.135370045411346 +2023-01-02 11:00:00,28.86032521204573 +2023-01-02 12:00:00,22.117765177849947 +2023-01-02 13:00:00,0.9883909917348732 +2023-01-02 14:00:00,8.300702152957662 +2023-01-02 15:00:00,7.083659405462156 +2023-01-02 16:00:00,7.792105719368484 +2023-01-02 17:00:00,29.75381065672249 +2023-01-02 18:00:00,24.892158020989925 +2023-01-02 19:00:00,18.937283700191557 +2023-01-02 20:00:00,10.82928512896702 +2023-01-02 21:00:00,2.4534821893424343 +2023-01-02 22:00:00,26.65979897762356 +2023-01-02 23:00:00,12.479427006610438 +2023-01-03 00:00:00,18.76628174625228 +2023-01-03 01:00:00,2.5272894523837497 +2023-01-03 02:00:00,5.431803178763776 +2023-01-03 03:00:00,17.19001869957476 +2023-01-03 04:00:00,20.734351267945 +2023-01-03 05:00:00,12.565918437871188 +2023-01-03 06:00:00,29.427556602901863 +2023-01-03 07:00:00,17.804259540294712 +2023-01-03 08:00:00,9.748549774396434 +2023-01-03 09:00:00,0.4886830061863478 +2023-01-03 10:00:00,21.452782659237062 +2023-01-03 11:00:00,21.202274832958317 +2023-01-03 12:00:00,7.296186670284389 +2023-01-03 13:00:00,26.58997436572484 +2023-01-03 14:00:00,1.4639197593307895 +2023-01-03 15:00:00,0.5002526226605986 +2023-01-03 16:00:00,6.259972497237882 +2023-01-03 17:00:00,27.703000120955757 +2023-01-03 18:00:00,13.540075500982994 +2023-01-03 19:00:00,17.976695314958096 +2023-01-03 20:00:00,28.348139865665843 +2023-01-03 21:00:00,5.647133148975369 +2023-01-03 22:00:00,20.01828521069652 +2023-01-03 23:00:00,28.47847736511912 +2023-01-04 00:00:00,2.7467018211185845 +2023-01-04 01:00:00,2.4091321629808404 +2023-01-04 02:00:00,21.62542412630545 +2023-01-04 03:00:00,10.147796714659767 +2023-01-04 04:00:00,13.77880534666183 +2023-01-04 05:00:00,13.110530084113927 +2023-01-04 06:00:00,26.941996153076804 +2023-01-04 07:00:00,22.71210620985531 +2023-01-04 08:00:00,22.343639478204818 +2023-01-04 09:00:00,29.69257371664232 +2023-01-04 10:00:00,29.06389182198948 +2023-01-04 11:00:00,6.641793880592653 +2023-01-04 12:00:00,28.30546885878262 +2023-01-04 13:00:00,15.23579718832412 +2023-01-04 14:00:00,1.0887074863017332 +2023-01-04 15:00:00,24.15571877024831 +2023-01-04 16:00:00,7.145913172445489 +2023-01-04 17:00:00,26.508806133249657 +2023-01-04 18:00:00,22.55174044135668 +2023-01-04 19:00:00,17.793420440686532 +2023-01-04 20:00:00,1.589039998520091 +2023-01-04 21:00:00,5.867894691443002 +2023-01-04 22:00:00,29.63557374679672 +2023-01-04 23:00:00,18.67996150486057 +2023-01-05 00:00:00,16.01934426166116 +2023-01-05 01:00:00,22.208006770948156 +2023-01-05 02:00:00,8.592882271698615 +2023-01-05 03:00:00,28.456559756676715 +2023-01-05 04:00:00,7.767820860674817 +2023-01-05 05:00:00,10.63692176594424 +2023-01-05 06:00:00,29.865685800613257 +2023-01-05 07:00:00,28.813756851661797 +2023-01-05 08:00:00,11.287668022842448 +2023-01-05 09:00:00,14.76588404489254 +2023-01-05 10:00:00,26.60403846546097 +2023-01-05 11:00:00,26.227569395275435 +2023-01-05 12:00:00,7.817117691537946 +2023-01-05 13:00:00,4.316373292247184 +2023-01-05 14:00:00,10.847481932962276 +2023-01-05 15:00:00,15.07808016162318 +2023-01-05 16:00:00,7.480276177495302 +2023-01-05 17:00:00,2.650136693353331 +2023-01-05 18:00:00,24.644866610978 +2023-01-05 19:00:00,9.492381428757366 +2023-01-05 20:00:00,2.429572694045948 +2023-01-05 21:00:00,11.216432754993996 +2023-01-05 22:00:00,2.194517132633147 +2023-01-05 23:00:00,26.52637177040293 +2023-01-06 00:00:00,16.664196429289955 +2023-01-06 01:00:00,3.7706672122613543 +2023-01-06 02:00:00,14.405169739520252 +2023-01-06 03:00:00,1.277503959665658 +2023-01-06 04:00:00,11.717520666486314 +2023-01-06 05:00:00,19.173800960669297 +2023-01-06 06:00:00,4.5845836383223295 +2023-01-06 07:00:00,10.123042570555132 +2023-01-06 08:00:00,16.25455925286096 +2023-01-06 09:00:00,2.10778940644446 +2023-01-06 10:00:00,9.221824307078824 +2023-01-06 11:00:00,23.02984834555008 +2023-01-06 12:00:00,18.16868321711455 +2023-01-06 13:00:00,17.87449712908857 +2023-01-06 14:00:00,5.469846357283148 +2023-01-06 15:00:00,14.403779284604706 +2023-01-06 16:00:00,29.03522159267719 +2023-01-06 17:00:00,26.2889865004406 +2023-01-06 18:00:00,1.5880803009917075 +2023-01-06 19:00:00,26.846919883495403 +2023-01-06 20:00:00,9.745032894798037 +2023-01-06 21:00:00,6.701503246110971 +2023-01-06 22:00:00,8.520450684057598 +2023-01-06 23:00:00,14.147856592203912 +2023-01-07 00:00:00,11.795676030009544 +2023-01-07 01:00:00,14.835319269427613 +2023-01-07 02:00:00,15.28589242328458 +2023-01-07 03:00:00,15.531680909405324 +2023-01-07 04:00:00,3.64483960574632 +2023-01-07 05:00:00,21.518346132098294 +2023-01-07 06:00:00,24.29524463181439 +2023-01-07 07:00:00,9.884463034009809 +2023-01-07 08:00:00,27.481782999938574 +2023-01-07 09:00:00,7.827321776712149 +2023-01-07 10:00:00,17.189726275243437 +2023-01-07 11:00:00,11.862540885304105 +2023-01-07 12:00:00,6.865780260219665 +2023-01-07 13:00:00,1.018293270875612 +2023-01-07 14:00:00,13.842339318701178 +2023-01-07 15:00:00,7.65652211200041 +2023-01-07 16:00:00,24.583489641758447 +2023-01-07 17:00:00,9.329230663135649 +2023-01-07 18:00:00,3.032325198766354 +2023-01-07 19:00:00,7.969112977361505 +2023-01-07 20:00:00,3.623483345801773 +2023-01-07 21:00:00,10.154529454746417 +2023-01-07 22:00:00,12.52586230460982 +2023-01-07 23:00:00,11.623761587348897 +2023-01-08 00:00:00,24.85887975028757 +2023-01-08 01:00:00,24.796280392299984 +2023-01-08 02:00:00,28.795638329372625 +2023-01-08 03:00:00,16.694579215039926 +2023-01-08 04:00:00,13.104588365746956 +2023-01-08 05:00:00,6.592039774066624 +2023-01-08 06:00:00,8.105223242887666 +2023-01-08 07:00:00,3.604666611860401 +2023-01-08 08:00:00,14.135992175240998 +2023-01-08 09:00:00,8.342790527113435 +2023-01-08 10:00:00,7.472589435116249 +2023-01-08 11:00:00,26.581403480102065 +2023-01-08 12:00:00,13.559401333686234 +2023-01-08 13:00:00,0.8823322786239252 +2023-01-08 14:00:00,18.3469174222662 +2023-01-08 15:00:00,13.371267623437063 +2023-01-08 16:00:00,7.375568683085399 +2023-01-08 17:00:00,17.953146777764942 +2023-01-08 18:00:00,22.821678344928 +2023-01-08 19:00:00,12.55871924554856 +2023-01-08 20:00:00,1.63004758584251 +2023-01-08 21:00:00,21.47077892989152 +2023-01-08 22:00:00,3.9866021971621537 +2023-01-08 23:00:00,11.325938758068505 +2023-01-09 00:00:00,11.625518036474643 +2023-01-09 01:00:00,12.557115902336507 +2023-01-09 02:00:00,18.944317508285167 +2023-01-09 03:00:00,19.33684979546204 +2023-01-09 04:00:00,26.41131176212764 +2023-01-09 05:00:00,4.5350455870563895 +2023-01-09 06:00:00,22.717751110234992 +2023-01-09 07:00:00,25.217041669779054 +2023-01-09 08:00:00,18.166590713743894 +2023-01-09 09:00:00,5.647822024105039 +2023-01-09 10:00:00,20.75536901451866 +2023-01-09 11:00:00,13.174675978156564 +2023-01-09 12:00:00,20.82554439897128 +2023-01-09 13:00:00,18.644055109994124 +2023-01-09 14:00:00,25.83424802210375 +2023-01-09 15:00:00,8.456640318975527 +2023-01-09 16:00:00,0.3672105938066528 +2023-01-09 17:00:00,8.80780946728226 +2023-01-09 18:00:00,15.863679427863405 +2023-01-09 19:00:00,26.07783346981556 +2023-01-09 20:00:00,21.504339853897044 +2023-01-09 21:00:00,13.59045579445844 +2023-01-09 22:00:00,0.2596157915411734 +2023-01-09 23:00:00,7.14893917047256 +2023-01-10 00:00:00,13.785936104758951 +2023-01-10 01:00:00,15.54512664903226 +2023-01-10 02:00:00,23.247539691636124 +2023-01-10 03:00:00,18.75702811524332 +2023-01-10 04:00:00,20.61841122511441 +2023-01-10 05:00:00,24.2743822136762 +2023-01-10 06:00:00,2.6223390521999934 +2023-01-10 07:00:00,18.48253904163661 +2023-01-10 08:00:00,22.685833463544157 +2023-01-10 09:00:00,7.542874492276974 +2023-01-10 10:00:00,27.503261493918167 +2023-01-10 11:00:00,27.28085683463743 +2023-01-10 12:00:00,8.483220334421617 +2023-01-10 13:00:00,26.088036139259124 +2023-01-10 14:00:00,7.358267120380661 +2023-01-10 15:00:00,5.723543014798755 +2023-01-10 16:00:00,5.281605953029884 +2023-01-10 17:00:00,15.593165488588594 +2023-01-10 18:00:00,27.22705446952932 +2023-01-10 19:00:00,29.555504088195963 +2023-01-10 20:00:00,18.435487814193696 +2023-01-10 21:00:00,1.3702635177922495 +2023-01-10 22:00:00,15.010612575131246 +2023-01-10 23:00:00,10.50982008633807 +2023-01-11 00:00:00,25.746711620247183 +2023-01-11 01:00:00,2.7680693733810315 +2023-01-11 02:00:00,26.573199797202875 +2023-01-11 03:00:00,26.190496086585703 +2023-01-11 04:00:00,14.914001314478917 +2023-01-11 05:00:00,17.71646599120036 +2023-01-11 06:00:00,19.73046947090025 +2023-01-11 07:00:00,13.072318427394537 +2023-01-11 08:00:00,13.40361246416164 +2023-01-11 09:00:00,9.116006569395068 +2023-01-11 10:00:00,29.00087086818906 +2023-01-11 11:00:00,21.74787667432025 +2023-01-11 12:00:00,15.069336534739849 +2023-01-11 13:00:00,16.966472280023655 +2023-01-11 14:00:00,6.919726361176258 +2023-01-11 15:00:00,22.91074359514145 +2023-01-11 16:00:00,11.81935450845753 +2023-01-11 17:00:00,20.361259615812926 +2023-01-11 18:00:00,13.545469882285904 +2023-01-11 19:00:00,3.968167694792478 +2023-01-11 20:00:00,8.871476816916946 +2023-01-11 21:00:00,16.855826147148118 +2023-01-11 22:00:00,9.385984848413218 +2023-01-11 23:00:00,3.3451561829432364 +2023-01-12 00:00:00,17.4262905455495 +2023-01-12 01:00:00,27.141704223533992 +2023-01-12 02:00:00,10.690798759916015 +2023-01-12 03:00:00,8.445934955810351 +2023-01-12 04:00:00,18.542906567580324 +2023-01-12 05:00:00,13.085486961291013 +2023-01-12 06:00:00,2.299907005963455 +2023-01-12 07:00:00,9.755357473781904 +2023-01-12 08:00:00,20.6837948459722 +2023-01-12 09:00:00,14.622981960958075 +2023-01-12 10:00:00,23.259698782075 +2023-01-12 11:00:00,18.310690132502614 +2023-01-12 12:00:00,2.234626451102306 +2023-01-12 13:00:00,17.106412564751086 +2023-01-12 14:00:00,4.072167697108734 +2023-01-12 15:00:00,5.8835614103504525 +2023-01-12 16:00:00,18.46162170718219 +2023-01-12 17:00:00,23.959618534239222 +2023-01-12 18:00:00,4.4772804836758615 +2023-01-12 19:00:00,24.73150345648468 +2023-01-12 20:00:00,10.541572655686318 +2023-01-12 21:00:00,2.211516198007042 +2023-01-12 22:00:00,7.018549860816026 +2023-01-12 23:00:00,27.34398661723124 +2023-01-13 00:00:00,8.865007689765545 +2023-01-13 01:00:00,25.9303768861777 +2023-01-13 02:00:00,23.35229185349567 +2023-01-13 03:00:00,2.300703724310668 +2023-01-13 04:00:00,23.137642927028576 +2023-01-13 05:00:00,19.16949113663653 +2023-01-13 06:00:00,11.647026554146525 +2023-01-13 07:00:00,18.141900104238665 +2023-01-13 08:00:00,20.31297778993421 +2023-01-13 09:00:00,22.1154646586354 +2023-01-13 10:00:00,6.209620318246225 +2023-01-13 11:00:00,19.549048371930688 +2023-01-13 12:00:00,14.05990904484234 +2023-01-13 13:00:00,26.21190978150012 +2023-01-13 14:00:00,15.49491039918353 +2023-01-13 15:00:00,27.58910139708107 +2023-01-13 16:00:00,8.72062006120521 +2023-01-13 17:00:00,7.093607190578232 +2023-01-13 18:00:00,19.570701377961168 +2023-01-13 19:00:00,0.1046458209168399 +2023-01-13 20:00:00,2.434847261371333 +2023-01-13 21:00:00,14.610918260663103 +2023-01-13 22:00:00,17.083611203386898 +2023-01-13 23:00:00,15.88449050093979 +2023-01-14 00:00:00,24.702055218596435 +2023-01-14 01:00:00,13.18743987279496 +2023-01-14 02:00:00,2.5404123006668247 +2023-01-14 03:00:00,22.79076169700265 +2023-01-14 04:00:00,11.85280710035837 +2023-01-14 05:00:00,0.6497247729951183 +2023-01-14 06:00:00,0.2678935255277781 +2023-01-14 07:00:00,1.4025547451764977 +2023-01-14 08:00:00,11.967604457481093 +2023-01-14 09:00:00,19.19202969369065 +2023-01-14 10:00:00,4.794646116369532 +2023-01-14 11:00:00,10.588672131247796 +2023-01-14 12:00:00,23.780003163675666 +2023-01-14 13:00:00,4.249210852933435 +2023-01-14 14:00:00,12.681637107525608 +2023-01-14 15:00:00,26.859617682163737 +2023-01-14 16:00:00,25.96369492407904 +2023-01-14 17:00:00,9.166661574829774 +2023-01-14 18:00:00,21.424793622897877 +2023-01-14 19:00:00,9.676902204630512 +2023-01-14 20:00:00,19.9784560444818 +2023-01-14 21:00:00,0.5076124086459055 +2023-01-14 22:00:00,9.512801883088452 +2023-01-14 23:00:00,13.080562188313683 +2023-01-15 00:00:00,16.636539222326675 +2023-01-15 01:00:00,6.337019562973909 +2023-01-15 02:00:00,5.071112715448516 +2023-01-15 03:00:00,23.521671309643164 +2023-01-15 04:00:00,26.81060105921077 +2023-01-15 05:00:00,21.603424893396724 +2023-01-15 06:00:00,28.431699032730265 +2023-01-15 07:00:00,9.787210461867073 +2023-01-15 08:00:00,4.841289464000659 +2023-01-15 09:00:00,28.28167710790336 +2023-01-15 10:00:00,17.615000298951117 +2023-01-15 11:00:00,16.256705091471602 +2023-01-15 12:00:00,1.931735687713676 +2023-01-15 13:00:00,14.998533344714692 +2023-01-15 14:00:00,3.0785894208884814 +2023-01-15 15:00:00,25.09122350314619 +2023-01-15 16:00:00,2.947236744099383 +2023-01-15 17:00:00,27.01859648097331 +2023-01-15 18:00:00,21.456437881607624 +2023-01-15 19:00:00,22.413384379037737 +2023-01-15 20:00:00,20.408915928738427 +2023-01-15 21:00:00,22.614636217454144 +2023-01-15 22:00:00,18.531634158285435 +2023-01-15 23:00:00,25.260810392194745 +2023-01-16 00:00:00,9.08291694045935 +2023-01-16 01:00:00,22.683558996252536 +2023-01-16 02:00:00,19.801165716288125 +2023-01-16 03:00:00,17.902712551744838 +2023-01-16 04:00:00,4.311822537914801 +2023-01-16 05:00:00,27.767245393594383 +2023-01-16 06:00:00,0.077534969830656 +2023-01-16 07:00:00,10.787457962429766 +2023-01-16 08:00:00,5.260859624298737 +2023-01-16 09:00:00,10.249513441507071 +2023-01-16 10:00:00,11.4691903669207 +2023-01-16 11:00:00,23.680877730573396 +2023-01-16 12:00:00,29.552840332071856 +2023-01-16 13:00:00,25.21504605780856 +2023-01-16 14:00:00,20.61111992889096 +2023-01-16 15:00:00,29.73039379015643 +2023-01-16 16:00:00,9.120559910451592 +2023-01-16 17:00:00,19.424705793171725 +2023-01-16 18:00:00,15.0824964579551 +2023-01-16 19:00:00,3.749628526002624 +2023-01-16 20:00:00,4.529992359264837 +2023-01-16 21:00:00,28.13371417212677 +2023-01-16 22:00:00,15.978989153300038 +2023-01-16 23:00:00,20.567170062592453 +2023-01-17 00:00:00,6.58468016012015 +2023-01-17 01:00:00,10.094556258200422 +2023-01-17 02:00:00,19.9097068319496 +2023-01-17 03:00:00,15.574130124678756 +2023-01-17 04:00:00,27.21998599610109 +2023-01-17 05:00:00,14.912823325894058 +2023-01-17 06:00:00,6.04398491298919 +2023-01-17 07:00:00,10.781571306275715 +2023-01-17 08:00:00,6.379112402877296 +2023-01-17 09:00:00,25.936833014280264 +2023-01-17 10:00:00,19.262878114315303 +2023-01-17 11:00:00,27.17580397337544 +2023-01-17 12:00:00,17.396002973168248 +2023-01-17 13:00:00,16.061961763766348 +2023-01-17 14:00:00,27.307318644056 +2023-01-17 15:00:00,14.926960430667156 +2023-01-17 16:00:00,11.204191788658925 +2023-01-17 17:00:00,6.136255435572254 +2023-01-17 18:00:00,16.06284435072233 +2023-01-17 19:00:00,28.349404718042017 +2023-01-17 20:00:00,0.5176818265613037 +2023-01-17 21:00:00,11.662853915309896 +2023-01-17 22:00:00,5.0036532889452525 +2023-01-17 23:00:00,24.688128694369617 +2023-01-18 00:00:00,23.607045979040542 +2023-01-18 01:00:00,15.61100955175728 +2023-01-18 02:00:00,17.66874898380921 +2023-01-18 03:00:00,20.60503774292796 +2023-01-18 04:00:00,5.713613422521922 +2023-01-18 05:00:00,24.59588669549597 +2023-01-18 06:00:00,20.42037019227112 +2023-01-18 07:00:00,3.2246805012809765 +2023-01-18 08:00:00,13.663465355133331 +2023-01-18 09:00:00,2.7545992386527485 +2023-01-18 10:00:00,24.304289779899143 +2023-01-18 11:00:00,15.34354490255257 +2023-01-18 12:00:00,22.64830630712501 +2023-01-18 13:00:00,7.03804205657942 +2023-01-18 14:00:00,8.791614846452426 +2023-01-18 15:00:00,25.62683929641761 +2023-01-18 16:00:00,4.091980941772347 +2023-01-18 17:00:00,27.100327204790403 +2023-01-18 18:00:00,20.39465726057104 +2023-01-18 19:00:00,15.80291973233464 +2023-01-18 20:00:00,25.977342309478395 +2023-01-18 21:00:00,9.686697388677386 +2023-01-18 22:00:00,1.3162667001477546 +2023-01-18 23:00:00,25.934819175368627 +2023-01-19 00:00:00,25.00982211880777 +2023-01-19 01:00:00,9.312088732791016 +2023-01-19 02:00:00,17.649735471119524 +2023-01-19 03:00:00,1.092220192776835 +2023-01-19 04:00:00,7.863968411399101 +2023-01-19 05:00:00,18.284777061321986 +2023-01-19 06:00:00,17.82515072241136 +2023-01-19 07:00:00,14.729383483709896 +2023-01-19 08:00:00,15.13007968005802 +2023-01-19 09:00:00,28.16404076564383 +2023-01-19 10:00:00,22.87184682623683 +2023-01-19 11:00:00,22.870107810350003 +2023-01-19 12:00:00,1.2881627080401192 +2023-01-19 13:00:00,29.2438229080827 +2023-01-19 14:00:00,0.1979685617301241 +2023-01-19 15:00:00,28.606237070567843 +2023-01-19 16:00:00,16.079245764313374 +2023-01-19 17:00:00,22.346227435616346 +2023-01-19 18:00:00,5.785768928123575 +2023-01-19 19:00:00,27.632457658967866 +2023-01-19 20:00:00,9.469197242114088 +2023-01-19 21:00:00,17.041249600613412 +2023-01-19 22:00:00,24.97957410697196 +2023-01-19 23:00:00,11.562685021515836 +2023-01-20 00:00:00,1.4338743649234031 +2023-01-20 01:00:00,24.39927733306928 +2023-01-20 02:00:00,13.066465807957716 +2023-01-20 03:00:00,19.468100511511143 +2023-01-20 04:00:00,0.8773053143234233 +2023-01-20 05:00:00,24.27973474410624 +2023-01-20 06:00:00,8.318327230951436 +2023-01-20 07:00:00,26.52047272770655 +2023-01-20 08:00:00,2.704288733781256 +2023-01-20 09:00:00,15.594176182277542 +2023-01-20 10:00:00,22.637642426455187 +2023-01-20 11:00:00,0.1495003897482871 +2023-01-20 12:00:00,14.814017129748876 +2023-01-20 13:00:00,22.396562789114395 +2023-01-20 14:00:00,16.159292742481362 +2023-01-20 15:00:00,14.616656841730432 +2023-01-20 16:00:00,14.30317566703712 +2023-01-20 17:00:00,22.381975886471725 +2023-01-20 18:00:00,0.4960871422456681 +2023-01-20 19:00:00,21.57595007539781 +2023-01-20 20:00:00,6.713629889950062 +2023-01-20 21:00:00,3.6075684152349896 +2023-01-20 22:00:00,16.470232300000507 +2023-01-20 23:00:00,22.242215155510547 +2023-01-21 00:00:00,7.829844970002174 +2023-01-21 01:00:00,25.977117600613823 +2023-01-21 02:00:00,17.85402858177339 +2023-01-21 03:00:00,16.768745907535628 +2023-01-21 04:00:00,25.68563036550256 +2023-01-21 05:00:00,13.624195292629032 +2023-01-21 06:00:00,22.97834762202788 +2023-01-21 07:00:00,0.4239154598942574 +2023-01-21 08:00:00,20.733742551127463 +2023-01-21 09:00:00,9.2640570978912 +2023-01-21 10:00:00,8.861783233977285 +2023-01-21 11:00:00,14.83363987147296 +2023-01-21 12:00:00,15.24036777983042 +2023-01-21 13:00:00,10.505264861577382 +2023-01-21 14:00:00,14.644399460012767 +2023-01-21 15:00:00,8.905139867551995 +2023-01-21 16:00:00,2.807070035948924 +2023-01-21 17:00:00,1.5444778035704487 +2023-01-21 18:00:00,15.505045934031346 +2023-01-21 19:00:00,5.572444439102413 +2023-01-21 20:00:00,3.5081275866868555 +2023-01-21 21:00:00,7.135474315490158 +2023-01-21 22:00:00,23.459262681012845 +2023-01-21 23:00:00,9.802915115964696 +2023-01-22 00:00:00,5.576701948147557 +2023-01-22 01:00:00,25.38499637024651 +2023-01-22 02:00:00,23.79115634562697 +2023-01-22 03:00:00,3.235468804516337 +2023-01-22 04:00:00,18.18112994621884 +2023-01-22 05:00:00,0.7825465421342537 +2023-01-22 06:00:00,4.888554936819752 +2023-01-22 07:00:00,26.791680837938376 +2023-01-22 08:00:00,14.29243948021266 +2023-01-22 09:00:00,15.644703334189456 +2023-01-22 10:00:00,6.624635721510737 +2023-01-22 11:00:00,24.71804039436904 +2023-01-22 12:00:00,9.662796805536786 +2023-01-22 13:00:00,25.72703929677329 +2023-01-22 14:00:00,2.840861045251206 +2023-01-22 15:00:00,28.137176640942247 +2023-01-22 16:00:00,26.14883094532978 +2023-01-22 17:00:00,11.84708415534378 +2023-01-22 18:00:00,15.7650641606469 +2023-01-22 19:00:00,28.80813708635183 +2023-01-22 20:00:00,0.9419214552827926 +2023-01-22 21:00:00,20.036933297600143 +2023-01-22 22:00:00,18.06204463803726 +2023-01-22 23:00:00,16.243196418694577 +2023-01-23 00:00:00,26.6617402643248 +2023-01-23 01:00:00,3.100962646816225 +2023-01-23 02:00:00,7.8144576755747375 +2023-01-23 03:00:00,10.371817515583423 +2023-01-23 04:00:00,8.473893906033947 +2023-01-23 05:00:00,9.568654124582752 +2023-01-23 06:00:00,4.742081612132786 +2023-01-23 07:00:00,17.544111347218013 +2023-01-23 08:00:00,3.049976864393247 +2023-01-23 09:00:00,26.71418802066985 +2023-01-23 10:00:00,29.21689408473649 +2023-01-23 11:00:00,9.211331477999414 +2023-01-23 12:00:00,1.3266669068056802 +2023-01-23 13:00:00,17.7141748840697 +2023-01-23 14:00:00,17.888574560806312 +2023-01-23 15:00:00,15.15708595264737 +2023-01-23 16:00:00,4.55443713516504 +2023-01-23 17:00:00,9.475188868998275 +2023-01-23 18:00:00,21.976885593274584 +2023-01-23 19:00:00,28.499691587224746 +2023-01-23 20:00:00,14.60787342986798 +2023-01-23 21:00:00,28.352986569584907 +2023-01-23 22:00:00,26.335160621280817 +2023-01-23 23:00:00,22.87947044929678 +2023-01-24 00:00:00,14.84612502376964 +2023-01-24 01:00:00,16.44186994592393 +2023-01-24 02:00:00,19.49615040253589 +2023-01-24 03:00:00,16.407292900553426 +2023-01-24 04:00:00,20.7951776593341 +2023-01-24 05:00:00,18.10750283617548 +2023-01-24 06:00:00,20.372929321667375 +2023-01-24 07:00:00,27.35369350464399 +2023-01-24 08:00:00,16.331091915913724 +2023-01-24 09:00:00,25.881870881802303 +2023-01-24 10:00:00,10.419412241556737 +2023-01-24 11:00:00,10.81625727457894 +2023-01-24 12:00:00,9.496075069042032 +2023-01-24 13:00:00,14.845759553544047 +2023-01-24 14:00:00,3.1980129572264127 +2023-01-24 15:00:00,20.85159368482181 +2023-01-24 16:00:00,14.195453817202482 +2023-01-24 17:00:00,24.128881357361102 +2023-01-24 18:00:00,25.65392869820945 +2023-01-24 19:00:00,26.636991792248903 +2023-01-24 20:00:00,15.21347726817206 +2023-01-24 21:00:00,23.37354699083821 +2023-01-24 22:00:00,1.2298522900105846 +2023-01-24 23:00:00,10.144114785269352 +2023-01-25 00:00:00,26.170109262917464 +2023-01-25 01:00:00,1.9211741698315787 +2023-01-25 02:00:00,26.055535685227568 +2023-01-25 03:00:00,4.154517951108368 +2023-01-25 04:00:00,29.096258712635823 +2023-01-25 05:00:00,2.55007496414632 +2023-01-25 06:00:00,26.53738182439085 +2023-01-25 07:00:00,24.88181098021913 +2023-01-25 08:00:00,5.795884915440785 +2023-01-25 09:00:00,17.10807557618885 +2023-01-25 10:00:00,5.513103191403714 +2023-01-25 11:00:00,29.737348005536912 +2023-01-25 12:00:00,20.39546609746311 +2023-01-25 13:00:00,19.978788135241075 +2023-01-25 14:00:00,23.758429657103832 +2023-01-25 15:00:00,19.197398952274693 +2023-01-25 16:00:00,9.136642399977555 +2023-01-25 17:00:00,20.24975843313906 +2023-01-25 18:00:00,17.465686448107 +2023-01-25 19:00:00,22.99948691989219 +2023-01-25 20:00:00,23.87405888657745 +2023-01-25 21:00:00,29.903287269135603 +2023-01-25 22:00:00,10.853734861729494 +2023-01-25 23:00:00,23.38700963143987 +2023-01-26 00:00:00,4.728612495940322 +2023-01-26 01:00:00,24.48952940085217 +2023-01-26 02:00:00,0.3407916100517483 +2023-01-26 03:00:00,23.343870513472137 +2023-01-26 04:00:00,13.919273295089264 +2023-01-26 05:00:00,28.9710296911752 +2023-01-26 06:00:00,27.784981972919173 +2023-01-26 07:00:00,5.224088190654577 +2023-01-26 08:00:00,26.239372546203487 +2023-01-26 09:00:00,1.0537510385207316 +2023-01-26 10:00:00,24.601697280695653 +2023-01-26 11:00:00,2.547533542024341 +2023-01-26 12:00:00,12.180258801685946 +2023-01-26 13:00:00,6.3044614897659805 +2023-01-26 14:00:00,6.702610866036819 +2023-01-26 15:00:00,24.658391767428757 +2023-01-26 16:00:00,19.657630070676827 +2023-01-26 17:00:00,21.67077631784858 +2023-01-26 18:00:00,5.693428358187743 +2023-01-26 19:00:00,27.83054220880637 +2023-01-26 20:00:00,11.595507645117808 +2023-01-26 21:00:00,13.327082105880288 +2023-01-26 22:00:00,16.474872282562007 +2023-01-26 23:00:00,8.9020375908315 +2023-01-27 00:00:00,29.045961476730294 +2023-01-27 01:00:00,10.126573311823671 +2023-01-27 02:00:00,8.8706959023887 +2023-01-27 03:00:00,28.002082398854903 +2023-01-27 04:00:00,5.65022904933363 +2023-01-27 05:00:00,12.984046167868584 +2023-01-27 06:00:00,12.955123494880548 +2023-01-27 07:00:00,21.260559650845277 +2023-01-27 08:00:00,28.51761912016544 +2023-01-27 09:00:00,5.360412303491751 +2023-01-27 10:00:00,18.43023798082928 +2023-01-27 11:00:00,6.290695872611743 +2023-01-27 12:00:00,20.32565799494635 +2023-01-27 13:00:00,21.03191003369282 +2023-01-27 14:00:00,19.45959003471236 +2023-01-27 15:00:00,16.24389466026861 +2023-01-27 16:00:00,13.30295460719711 +2023-01-27 17:00:00,13.733165633489769 +2023-01-27 18:00:00,22.471023121934504 +2023-01-27 19:00:00,27.49501597211064 +2023-01-27 20:00:00,20.20871822744425 +2023-01-27 21:00:00,13.576950297973006 +2023-01-27 22:00:00,21.68465211571343 +2023-01-27 23:00:00,14.924870705873213 +2023-01-28 00:00:00,19.57331732631087 +2023-01-28 01:00:00,17.080891399169776 +2023-01-28 02:00:00,4.1945177661076265 +2023-01-28 03:00:00,24.706293806259904 +2023-01-28 04:00:00,21.72654989248905 +2023-01-28 05:00:00,14.499730548065466 +2023-01-28 06:00:00,20.326007761532075 +2023-01-28 07:00:00,14.707375100280093 +2023-01-28 08:00:00,9.542881415751518 +2023-01-28 09:00:00,21.33721573341852 +2023-01-28 10:00:00,25.2415119675175 +2023-01-28 11:00:00,11.13536437521216 +2023-01-28 12:00:00,19.4246887305028 +2023-01-28 13:00:00,20.76985585483034 +2023-01-28 14:00:00,16.53962317934462 +2023-01-28 15:00:00,4.407854275217623 +2023-01-28 16:00:00,0.3409388263200807 +2023-01-28 17:00:00,19.090393333084847 +2023-01-28 18:00:00,25.07510690666765 +2023-01-28 19:00:00,9.593905292758372 +2023-01-28 20:00:00,26.743874768426775 +2023-01-28 21:00:00,22.77493173914691 +2023-01-28 22:00:00,14.520845910887717 +2023-01-28 23:00:00,25.47673178826201 +2023-01-29 00:00:00,19.54945763246128 +2023-01-29 01:00:00,14.380438860966176 +2023-01-29 02:00:00,22.016852992537157 +2023-01-29 03:00:00,12.499796899841062 +2023-01-29 04:00:00,29.04290326291158 +2023-01-29 05:00:00,14.44227640575409 +2023-01-29 06:00:00,4.491011478638898 +2023-01-29 07:00:00,28.34731411293328 +2023-01-29 08:00:00,26.171513029111544 +2023-01-29 09:00:00,0.4909665700519727 +2023-01-29 10:00:00,9.795813933366034 +2023-01-29 11:00:00,28.577981346222103 +2023-01-29 12:00:00,29.627723464044944 +2023-01-29 13:00:00,8.499231946837654 +2023-01-29 14:00:00,16.493395264185626 +2023-01-29 15:00:00,20.992547234186937 +2023-01-29 16:00:00,18.930812447381594 +2023-01-29 17:00:00,3.4513121554723902 +2023-01-29 18:00:00,17.432617409775293 +2023-01-29 19:00:00,18.27802096768496 +2023-01-29 20:00:00,16.137192915455238 +2023-01-29 21:00:00,8.970629977364776 +2023-01-29 22:00:00,17.964572679341163 +2023-01-29 23:00:00,7.32748274487845 +2023-01-30 00:00:00,20.70142251499957 +2023-01-30 01:00:00,16.373771753142183 +2023-01-30 02:00:00,20.37047355794904 +2023-01-30 03:00:00,22.40749011721216 +2023-01-30 04:00:00,7.183146680504548 +2023-01-30 05:00:00,25.598663721347307 +2023-01-30 06:00:00,2.5672726458974457 +2023-01-30 07:00:00,13.962586693922193 +2023-01-30 08:00:00,13.77619031656866 +2023-01-30 09:00:00,25.11304042694879 +2023-01-30 10:00:00,19.16706254926887 +2023-01-30 11:00:00,21.492650566144217 +2023-01-30 12:00:00,18.25559178902225 +2023-01-30 13:00:00,22.07377918504458 +2023-01-30 14:00:00,26.384499395184186 +2023-01-30 15:00:00,22.50711353905157 +2023-01-30 16:00:00,27.58792779098817 +2023-01-30 17:00:00,12.922697278577322 +2023-01-30 18:00:00,7.092026330898676 +2023-01-30 19:00:00,6.127141158422259 +2023-01-30 20:00:00,5.776116909137357 +2023-01-30 21:00:00,5.188484944825128 +2023-01-30 22:00:00,21.88001130920869 +2023-01-30 23:00:00,28.242641829301213 +2023-01-31 00:00:00,23.686522886948595 +2023-01-31 01:00:00,11.126032593929212 +2023-01-31 02:00:00,27.142597678799337 +2023-01-31 03:00:00,14.711345381431633 +2023-01-31 04:00:00,23.378645112268224 +2023-01-31 05:00:00,21.00465985063185 +2023-01-31 06:00:00,14.11491707396998 +2023-01-31 07:00:00,14.955632460072328 +2023-01-31 08:00:00,7.913395088567939 +2023-01-31 09:00:00,13.771455265868992 +2023-01-31 10:00:00,1.0371471220081518 +2023-01-31 11:00:00,11.81240620258909 +2023-01-31 12:00:00,6.470702000941514 +2023-01-31 13:00:00,20.34871497027492 +2023-01-31 14:00:00,22.103316628627432 +2023-01-31 15:00:00,11.387903918001054 +2023-01-31 16:00:00,8.84372624372119 +2023-01-31 17:00:00,13.904457633202153 +2023-01-31 18:00:00,13.038816116206384 +2023-01-31 19:00:00,15.371213046244453 +2023-01-31 20:00:00,13.671545417203694 +2023-01-31 21:00:00,23.17163178056718 +2023-01-31 22:00:00,14.549420695881617 +2023-01-31 23:00:00,19.92736818418917 +2023-02-01 00:00:00,20.444812738870983 +2023-02-01 01:00:00,28.09897951115372 +2023-02-01 02:00:00,25.032423493485695 +2023-02-01 03:00:00,3.470773744831427 +2023-02-01 04:00:00,2.438811100922828 +2023-02-01 05:00:00,6.667419073304989 +2023-02-01 06:00:00,4.869066552245967 +2023-02-01 07:00:00,25.77068319767227 +2023-02-01 08:00:00,9.358085742370832 +2023-02-01 09:00:00,7.403912001906901 +2023-02-01 10:00:00,12.240000313041364 +2023-02-01 11:00:00,12.741285715363986 +2023-02-01 12:00:00,7.187894127066138 +2023-02-01 13:00:00,0.8429527457403885 +2023-02-01 14:00:00,4.832831170585909 +2023-02-01 15:00:00,0.3122103113824515 +2023-02-01 16:00:00,28.749024787641773 +2023-02-01 17:00:00,25.44003261933255 +2023-02-01 18:00:00,27.84326681621907 +2023-02-01 19:00:00,2.17863710904282 +2023-02-01 20:00:00,14.13449338217127 +2023-02-01 21:00:00,19.78408834657199 +2023-02-01 22:00:00,24.156215709756204 +2023-02-01 23:00:00,9.131354511432416 +2023-02-02 00:00:00,6.900126025411949 +2023-02-02 01:00:00,0.7312252748111914 +2023-02-02 02:00:00,22.74832685262216 +2023-02-02 03:00:00,29.824414123582063 +2023-02-02 04:00:00,9.731921178760835 +2023-02-02 05:00:00,28.41205175703033 +2023-02-02 06:00:00,25.30699332021939 +2023-02-02 07:00:00,11.48579896911303 +2023-02-02 08:00:00,21.061737901751087 +2023-02-02 09:00:00,5.132568001298083 +2023-02-02 10:00:00,20.124083477960024 +2023-02-02 11:00:00,28.54000660323392 +2023-02-02 12:00:00,16.772850129655716 +2023-02-02 13:00:00,2.418864793283321 +2023-02-02 14:00:00,15.493683762505324 +2023-02-02 15:00:00,8.19818650142909 +2023-02-02 16:00:00,11.452499652631534 +2023-02-02 17:00:00,15.719625102061965 +2023-02-02 18:00:00,28.779482065685 +2023-02-02 19:00:00,13.036123318446764 +2023-02-02 20:00:00,13.641246310225489 +2023-02-02 21:00:00,5.140168507349104 +2023-02-02 22:00:00,26.558687565015827 +2023-02-02 23:00:00,22.40563981252996 +2023-02-03 00:00:00,29.3016756516602 +2023-02-03 01:00:00,26.725160770821407 +2023-02-03 02:00:00,29.911830397657337 +2023-02-03 03:00:00,17.58499740326768 +2023-02-03 04:00:00,7.185322068263913 +2023-02-03 05:00:00,2.061394800300681 +2023-02-03 06:00:00,8.520782027722184 +2023-02-03 07:00:00,27.01568077824294 +2023-02-03 08:00:00,7.485981799465239 +2023-02-03 09:00:00,8.43883289594321 +2023-02-03 10:00:00,17.61177018484875 +2023-02-03 11:00:00,0.140172041548845 +2023-02-03 12:00:00,26.23214476364477 +2023-02-03 13:00:00,11.89994812955748 +2023-02-03 14:00:00,6.328363384061934 +2023-02-03 15:00:00,22.08743352743381 +2023-02-03 16:00:00,29.777674519962183 +2023-02-03 17:00:00,15.028931788646082 +2023-02-03 18:00:00,0.2217389932153801 +2023-02-03 19:00:00,18.458207122973093 +2023-02-03 20:00:00,24.312526084740515 +2023-02-03 21:00:00,7.796164488760703 +2023-02-03 22:00:00,7.481978552533319 +2023-02-03 23:00:00,28.77242901816964 +2023-02-04 00:00:00,6.715352523780807 +2023-02-04 01:00:00,1.0749421225025737 +2023-02-04 02:00:00,6.3012844024579024 +2023-02-04 03:00:00,8.331223569849644 +2023-02-04 04:00:00,9.393803890412192 +2023-02-04 05:00:00,11.780224322229577 +2023-02-04 06:00:00,1.2689385685141086 +2023-02-04 07:00:00,23.61077265737399 +2023-02-04 08:00:00,5.413709034492362 +2023-02-04 09:00:00,8.138552689391553 +2023-02-04 10:00:00,19.96504385129286 +2023-02-04 11:00:00,22.659743442227413 +2023-02-04 12:00:00,20.275894307468445 +2023-02-04 13:00:00,17.31638709551924 +2023-02-04 14:00:00,14.782976842473357 +2023-02-04 15:00:00,21.171548146853723 +2023-02-04 16:00:00,8.271883329205766 +2023-02-04 17:00:00,11.48478358532154 +2023-02-04 18:00:00,6.0525983233541485 +2023-02-04 19:00:00,12.494564376586064 +2023-02-04 20:00:00,5.509446993006245 +2023-02-04 21:00:00,3.367922166984336 +2023-02-04 22:00:00,7.221415604821758 +2023-02-04 23:00:00,2.524835429595588 +2023-02-05 00:00:00,6.343453658198518 +2023-02-05 01:00:00,7.161837038296476 +2023-02-05 02:00:00,19.34521301905273 +2023-02-05 03:00:00,20.84976450576705 +2023-02-05 04:00:00,9.648486054021276 +2023-02-05 05:00:00,9.185984676665967 +2023-02-05 06:00:00,2.479586850467771 +2023-02-05 07:00:00,24.073801475645872 +2023-02-05 08:00:00,13.794163775141037 +2023-02-05 09:00:00,1.6743291661746396 +2023-02-05 10:00:00,20.80860893799605 +2023-02-05 11:00:00,20.693278890872698 +2023-02-05 12:00:00,26.412136316177204 +2023-02-05 13:00:00,20.46706237011314 +2023-02-05 14:00:00,10.160999228782636 +2023-02-05 15:00:00,29.085319876614985 +2023-02-05 16:00:00,2.430265591884837 +2023-02-05 17:00:00,19.310224713799677 +2023-02-05 18:00:00,16.32286489214511 +2023-02-05 19:00:00,3.72454506298466 +2023-02-05 20:00:00,22.218065998856645 +2023-02-05 21:00:00,16.559003866408595 +2023-02-05 22:00:00,7.0565236683626384 +2023-02-05 23:00:00,10.337725074722064 +2023-02-06 00:00:00,3.238867028086979 +2023-02-06 01:00:00,12.64658391164415 +2023-02-06 02:00:00,29.264403698506037 +2023-02-06 03:00:00,14.402940259739644 +2023-02-06 04:00:00,24.32358005714746 +2023-02-06 05:00:00,2.4178851280590505 +2023-02-06 06:00:00,6.453938677665512 +2023-02-06 07:00:00,27.6468371037094 +2023-02-06 08:00:00,16.43999725454396 +2023-02-06 09:00:00,25.243609698954277 +2023-02-06 10:00:00,6.019299599470259 +2023-02-06 11:00:00,28.537151911177844 +2023-02-06 12:00:00,13.42382738090886 +2023-02-06 13:00:00,16.716599631721795 +2023-02-06 14:00:00,10.596480011381308 +2023-02-06 15:00:00,3.601959326214963 +2023-02-06 16:00:00,29.91445972311722 +2023-02-06 17:00:00,21.698516288540603 +2023-02-06 18:00:00,22.5611198819832 +2023-02-06 19:00:00,24.748101008044756 +2023-02-06 20:00:00,7.8163922439527 +2023-02-06 21:00:00,21.965491409780864 +2023-02-06 22:00:00,14.362423805329056 +2023-02-06 23:00:00,29.61303189617396 +2023-02-07 00:00:00,8.349675902026128 +2023-02-07 01:00:00,1.191763760906115 +2023-02-07 02:00:00,15.012571590494987 +2023-02-07 03:00:00,26.01025994278253 +2023-02-07 04:00:00,2.165950578952973 +2023-02-07 05:00:00,11.981788745524245 +2023-02-07 06:00:00,9.94183964912376 +2023-02-07 07:00:00,6.73249015395665 +2023-02-07 08:00:00,9.527840991684457 +2023-02-07 09:00:00,12.817918842289084 +2023-02-07 10:00:00,19.50845529210278 +2023-02-07 11:00:00,21.935862812352365 +2023-02-07 12:00:00,14.4068119518288 +2023-02-07 13:00:00,12.37531421782182 +2023-02-07 14:00:00,8.32433813596688 +2023-02-07 15:00:00,11.424232937560046 +2023-02-07 16:00:00,26.08416492945888 +2023-02-07 17:00:00,19.769013172481 +2023-02-07 18:00:00,24.140194308765228 +2023-02-07 19:00:00,7.724145238591572 +2023-02-07 20:00:00,25.81633024291096 +2023-02-07 21:00:00,28.11892120183401 +2023-02-07 22:00:00,20.50425409855882 +2023-02-07 23:00:00,15.475761660913829 +2023-02-08 00:00:00,12.468989072560245 +2023-02-08 01:00:00,21.77922591224376 +2023-02-08 02:00:00,25.299137158310163 +2023-02-08 03:00:00,25.338992968132303 +2023-02-08 04:00:00,28.70906247220137 +2023-02-08 05:00:00,0.4513595057002761 +2023-02-08 06:00:00,0.602933230507795 +2023-02-08 07:00:00,28.32397565334421 +2023-02-08 08:00:00,16.64996640684931 +2023-02-08 09:00:00,1.853984338280651 +2023-02-08 10:00:00,21.940493028433675 +2023-02-08 11:00:00,15.681252563968988 +2023-02-08 12:00:00,18.10541787634271 +2023-02-08 13:00:00,23.20780502504663 +2023-02-08 14:00:00,25.82871082022493 +2023-02-08 15:00:00,16.6596210419899 +2023-02-08 16:00:00,8.227555927356477 +2023-02-08 17:00:00,19.37565034819537 +2023-02-08 18:00:00,7.426316072145841 +2023-02-08 19:00:00,17.77277853547517 +2023-02-08 20:00:00,20.75215017548432 +2023-02-08 21:00:00,10.140760377369055 +2023-02-08 22:00:00,13.380943298513952 +2023-02-08 23:00:00,9.100689726935975 +2023-02-09 00:00:00,25.46262533622481 +2023-02-09 01:00:00,6.012748613130507 +2023-02-09 02:00:00,24.51280057502656 +2023-02-09 03:00:00,17.31723297428041 +2023-02-09 04:00:00,9.199370062514266 +2023-02-09 05:00:00,23.823839808619383 +2023-02-09 06:00:00,22.49301696950217 +2023-02-09 07:00:00,2.753552336068985 +2023-02-09 08:00:00,16.473142856260637 +2023-02-09 09:00:00,23.98172359433773 +2023-02-09 10:00:00,23.913913216602158 +2023-02-09 11:00:00,24.566751975684586 +2023-02-09 12:00:00,1.027141767212676 +2023-02-09 13:00:00,15.483625185012006 +2023-02-09 14:00:00,28.141657605715704 +2023-02-09 15:00:00,27.85310663243888 +2023-02-09 16:00:00,25.388278860319787 +2023-02-09 17:00:00,11.569643011687164 +2023-02-09 18:00:00,4.192281140805541 +2023-02-09 19:00:00,22.54088406694364 +2023-02-09 20:00:00,2.360512344111909 +2023-02-09 21:00:00,21.620186680647137 +2023-02-09 22:00:00,17.70872559842023 +2023-02-09 23:00:00,24.24466174789709 +2023-02-10 00:00:00,4.283531069896077 +2023-02-10 01:00:00,21.19200168951069 +2023-02-10 02:00:00,1.840201072230273 +2023-02-10 03:00:00,11.6537582321212 +2023-02-10 04:00:00,26.225956792305368 +2023-02-10 05:00:00,2.008233708610303 +2023-02-10 06:00:00,25.896805184618888 +2023-02-10 07:00:00,27.27866483422948 +2023-02-10 08:00:00,14.054834538293004 +2023-02-10 09:00:00,26.28933070131855 +2023-02-10 10:00:00,27.378165539217328 +2023-02-10 11:00:00,27.01510484686729 +2023-02-10 12:00:00,26.246256426885505 +2023-02-10 13:00:00,20.781306289260534 +2023-02-10 14:00:00,27.87003314193557 +2023-02-10 15:00:00,6.364387974275112 +2023-02-10 16:00:00,15.963955453458814 +2023-02-10 17:00:00,19.07940502324348 +2023-02-10 18:00:00,8.012789690322338 +2023-02-10 19:00:00,17.86070575039403 +2023-02-10 20:00:00,4.241302303834008 +2023-02-10 21:00:00,16.385992754736577 +2023-02-10 22:00:00,22.46700326625611 +2023-02-10 23:00:00,28.276712457919785 +2023-02-11 00:00:00,17.192437697408327 +2023-02-11 01:00:00,18.298224357179908 +2023-02-11 02:00:00,13.159221264811524 +2023-02-11 03:00:00,13.494093373995844 +2023-02-11 04:00:00,25.945263207039265 +2023-02-11 05:00:00,27.945379808308523 +2023-02-11 06:00:00,14.06909545264202 +2023-02-11 07:00:00,27.32612946079657 +2023-02-11 08:00:00,6.939871729132814 +2023-02-11 09:00:00,26.601735808210027 +2023-02-11 10:00:00,17.645745547837294 +2023-02-11 11:00:00,8.713577548940846 +2023-02-11 12:00:00,20.205483681821764 +2023-02-11 13:00:00,21.925651018894467 +2023-02-11 14:00:00,9.018179985482458 +2023-02-11 15:00:00,12.004362506342453 +2023-02-11 16:00:00,20.52118297938381 +2023-02-11 17:00:00,19.97106603051792 +2023-02-11 18:00:00,10.349953776128247 +2023-02-11 19:00:00,1.1065612552126136 +2023-02-11 20:00:00,3.7853777942140985 +2023-02-11 21:00:00,24.83506163067268 +2023-02-11 22:00:00,21.205304148613504 +2023-02-11 23:00:00,3.4063017440590477 +2023-02-12 00:00:00,29.645483278579047 +2023-02-12 01:00:00,14.7162127542229 +2023-02-12 02:00:00,3.706261376515809 +2023-02-12 03:00:00,6.40429128581437 +2023-02-12 04:00:00,17.224225431253714 +2023-02-12 05:00:00,13.523962559918072 +2023-02-12 06:00:00,29.83353404383579 +2023-02-12 07:00:00,28.38623423588225 +2023-02-12 08:00:00,28.479134394860107 +2023-02-12 09:00:00,9.73945175908212 +2023-02-12 10:00:00,24.76539996969856 +2023-02-12 11:00:00,0.4355880019710223 +2023-02-12 12:00:00,25.12824331016889 +2023-02-12 13:00:00,11.120906352803557 +2023-02-12 14:00:00,12.715137729365564 +2023-02-12 15:00:00,28.682110185405826 +2023-02-12 16:00:00,21.84077799439677 +2023-02-12 17:00:00,3.703093900616554 +2023-02-12 18:00:00,14.606702891040776 +2023-02-12 19:00:00,18.271829856198615 +2023-02-12 20:00:00,16.340861326453833 +2023-02-12 21:00:00,13.152067306782309 +2023-02-12 22:00:00,16.060798100958998 +2023-02-12 23:00:00,9.86447529638303 +2023-02-13 00:00:00,17.74373916471 +2023-02-13 01:00:00,12.532723923558915 +2023-02-13 02:00:00,21.12118518264612 +2023-02-13 03:00:00,15.214340997268426 +2023-02-13 04:00:00,20.66451213759296 +2023-02-13 05:00:00,10.508897726980388 +2023-02-13 06:00:00,0.3073706993962155 +2023-02-13 07:00:00,1.5718331071591796 +2023-02-13 08:00:00,0.7058887185357854 +2023-02-13 09:00:00,20.108826970013062 +2023-02-13 10:00:00,22.000932675239277 +2023-02-13 11:00:00,22.077242039466924 +2023-02-13 12:00:00,15.724273772762144 +2023-02-13 13:00:00,16.70702961476643 +2023-02-13 14:00:00,23.558609073892985 +2023-02-13 15:00:00,1.9133460922041112 +2023-02-13 16:00:00,9.042625208215265 +2023-02-13 17:00:00,8.333229794855109 +2023-02-13 18:00:00,29.8076282062173 +2023-02-13 19:00:00,5.443099157068899 +2023-02-13 20:00:00,29.85600221893629 +2023-02-13 21:00:00,26.82553782394013 +2023-02-13 22:00:00,21.324334143692603 +2023-02-13 23:00:00,9.257850291706024 +2023-02-14 00:00:00,9.762230686985498 +2023-02-14 01:00:00,22.581369491396455 +2023-02-14 02:00:00,13.684684033278808 +2023-02-14 03:00:00,26.335385938228125 +2023-02-14 04:00:00,26.911456891651955 +2023-02-14 05:00:00,1.2158027181192677 +2023-02-14 06:00:00,4.535152119799044 +2023-02-14 07:00:00,9.533311486157952 +2023-02-14 08:00:00,3.908060950317922 +2023-02-14 09:00:00,10.38056407380682 +2023-02-14 10:00:00,8.579946298902886 +2023-02-14 11:00:00,13.262732773835396 +2023-02-14 12:00:00,0.4181715195421531 +2023-02-14 13:00:00,23.95457447572604 +2023-02-14 14:00:00,2.5480150273060653 +2023-02-14 15:00:00,11.375676062343452 +2023-02-14 16:00:00,13.8001360464424 +2023-02-14 17:00:00,23.10918865311839 +2023-02-14 18:00:00,4.149931395683588 +2023-02-14 19:00:00,25.727400591265617 +2023-02-14 20:00:00,6.85715455839457 +2023-02-14 21:00:00,4.3910398265414745 +2023-02-14 22:00:00,13.034739407028136 +2023-02-14 23:00:00,19.546343381874014 +2023-02-15 00:00:00,28.09602467993791 +2023-02-15 01:00:00,12.538042566248643 +2023-02-15 02:00:00,27.540635595212883 +2023-02-15 03:00:00,7.313028751059473 +2023-02-15 04:00:00,19.01389031981387 +2023-02-15 05:00:00,13.720559866422766 +2023-02-15 06:00:00,4.453943599108449 +2023-02-15 07:00:00,10.053763822077975 +2023-02-15 08:00:00,6.826260389950529 +2023-02-15 09:00:00,8.476547397502339 +2023-02-15 10:00:00,17.62245758427023 +2023-02-15 11:00:00,10.09953403905073 +2023-02-15 12:00:00,15.76470903974879 +2023-02-15 13:00:00,3.026070575098218 +2023-02-15 14:00:00,15.602406677386297 +2023-02-15 15:00:00,16.983178145001574 +2023-02-15 16:00:00,0.4199890052140753 +2023-02-15 17:00:00,1.7471490080746863 +2023-02-15 18:00:00,3.5297507599261118 +2023-02-15 19:00:00,25.229299757394763 +2023-02-15 20:00:00,18.05598979904025 +2023-02-15 21:00:00,5.648683577483245 +2023-02-15 22:00:00,11.192832528905589 +2023-02-15 23:00:00,4.903635770772407 +2023-02-16 00:00:00,15.907108038477498 +2023-02-16 01:00:00,21.610834224486155 +2023-02-16 02:00:00,12.4202181157346 +2023-02-16 03:00:00,12.079746306328053 +2023-02-16 04:00:00,1.10902152134147 +2023-02-16 05:00:00,7.925970837430074 +2023-02-16 06:00:00,14.350280195127882 +2023-02-16 07:00:00,16.54998484791679 +2023-02-16 08:00:00,0.6597971668570557 +2023-02-16 09:00:00,11.975907760115414 +2023-02-16 10:00:00,1.3961465257928785 +2023-02-16 11:00:00,26.7344545822344 +2023-02-16 12:00:00,23.70372748025592 +2023-02-16 13:00:00,28.83130417301627 +2023-02-16 14:00:00,23.3230398050859 +2023-02-16 15:00:00,29.944241834926203 +2023-02-16 16:00:00,27.277496686782865 +2023-02-16 17:00:00,28.41601316055461 +2023-02-16 18:00:00,21.396540025536385 +2023-02-16 19:00:00,3.193154879068735 +2023-02-16 20:00:00,3.7200269823356056 +2023-02-16 21:00:00,12.824066567820791 +2023-02-16 22:00:00,25.261764414972674 +2023-02-16 23:00:00,23.28472393698158 +2023-02-17 00:00:00,8.190694600921987 +2023-02-17 01:00:00,19.26475758352173 +2023-02-17 02:00:00,3.2835328057631608 +2023-02-17 03:00:00,29.2484430720518 +2023-02-17 04:00:00,8.307098227093864 +2023-02-17 05:00:00,20.509908610134215 +2023-02-17 06:00:00,7.757486373504553 +2023-02-17 07:00:00,8.504709149684563 +2023-02-17 08:00:00,12.652722255780414 +2023-02-17 09:00:00,20.873163021161552 +2023-02-17 10:00:00,6.940566058474379 +2023-02-17 11:00:00,5.614519746166393 +2023-02-17 12:00:00,20.374290775809403 +2023-02-17 13:00:00,13.623071495346068 +2023-02-17 14:00:00,21.120815528696323 +2023-02-17 15:00:00,8.748722719362679 +2023-02-17 16:00:00,16.240032699835314 +2023-02-17 17:00:00,23.090644406726124 +2023-02-17 18:00:00,0.1390528148765668 +2023-02-17 19:00:00,5.801796213250885 +2023-02-17 20:00:00,25.830991384327533 +2023-02-17 21:00:00,22.292250859582687 +2023-02-17 22:00:00,25.01831487957392 +2023-02-17 23:00:00,18.99627674344589 +2023-02-18 00:00:00,21.703325998183004 +2023-02-18 01:00:00,12.467276918125172 +2023-02-18 02:00:00,27.62788335877648 +2023-02-18 03:00:00,26.90234469312368 +2023-02-18 04:00:00,20.653613165592212 +2023-02-18 05:00:00,18.90972963000461 +2023-02-18 06:00:00,4.2823562753194375 +2023-02-18 07:00:00,17.91639525884146 +2023-02-18 08:00:00,1.2499706805458444 +2023-02-18 09:00:00,19.74665464580137 +2023-02-18 10:00:00,6.353889369365399 +2023-02-18 11:00:00,29.34305614362173 +2023-02-18 12:00:00,15.342402427788892 +2023-02-18 13:00:00,18.250276622595667 +2023-02-18 14:00:00,16.811376098714103 +2023-02-18 15:00:00,15.737069104475864 +2023-02-18 16:00:00,13.490611740404637 +2023-02-18 17:00:00,10.418288158648824 +2023-02-18 18:00:00,19.589506295918987 +2023-02-18 19:00:00,21.84445552407816 +2023-02-18 20:00:00,26.807709059365948 +2023-02-18 21:00:00,28.44527483146014 +2023-02-18 22:00:00,6.303632800837288 +2023-02-18 23:00:00,10.413881266647332 +2023-02-19 00:00:00,19.93243659065723 +2023-02-19 01:00:00,17.919278752870767 +2023-02-19 02:00:00,12.427901104061467 +2023-02-19 03:00:00,13.331016973707664 +2023-02-19 04:00:00,3.8314838496675927 +2023-02-19 05:00:00,3.694838737617019 +2023-02-19 06:00:00,12.668144118424095 +2023-02-19 07:00:00,28.48287838200365 +2023-02-19 08:00:00,19.23522889222957 +2023-02-19 09:00:00,13.221947109645033 +2023-02-19 10:00:00,16.820647437367896 +2023-02-19 11:00:00,28.673607115623582 +2023-02-19 12:00:00,26.503346548206743 +2023-02-19 13:00:00,2.1252272117582907 +2023-02-19 14:00:00,9.790352659407043 +2023-02-19 15:00:00,16.29820401727354 +2023-02-19 16:00:00,8.724520772205718 +2023-02-19 17:00:00,10.89597862093112 +2023-02-19 18:00:00,8.077131963754278 +2023-02-19 19:00:00,0.7241038981622006 +2023-02-19 20:00:00,24.609227718391733 +2023-02-19 21:00:00,27.795271455689846 +2023-02-19 22:00:00,11.574720033853565 +2023-02-19 23:00:00,12.119958459982042 +2023-02-20 00:00:00,16.11547966891384 +2023-02-20 01:00:00,28.03119572005807 +2023-02-20 02:00:00,23.09702397705779 +2023-02-20 03:00:00,8.079780925564144 +2023-02-20 04:00:00,24.40596614288724 +2023-02-20 05:00:00,8.46761165844074 +2023-02-20 06:00:00,6.568660053082863 +2023-02-20 07:00:00,3.702164577071676 +2023-02-20 08:00:00,23.120025547615946 +2023-02-20 09:00:00,13.225995296928444 +2023-02-20 10:00:00,18.43009454397997 +2023-02-20 11:00:00,23.18930426087704 +2023-02-20 12:00:00,16.741794366396668 +2023-02-20 13:00:00,24.55679308742557 +2023-02-20 14:00:00,12.438869108507884 +2023-02-20 15:00:00,17.734726400758035 +2023-02-20 16:00:00,28.223308692032383 +2023-02-20 17:00:00,21.14736200430721 +2023-02-20 18:00:00,1.8206350700427432 +2023-02-20 19:00:00,10.301979700147331 +2023-02-20 20:00:00,1.83445359135617 +2023-02-20 21:00:00,2.87538171083114 +2023-02-20 22:00:00,3.4085898593180906 +2023-02-20 23:00:00,15.575393160338608 +2023-02-21 00:00:00,11.07211492276106 +2023-02-21 01:00:00,25.979982684813248 +2023-02-21 02:00:00,19.308966506761976 +2023-02-21 03:00:00,20.554360837134844 +2023-02-21 04:00:00,1.0372278844422922 +2023-02-21 05:00:00,9.243440048869388 +2023-02-21 06:00:00,14.66473380259283 +2023-02-21 07:00:00,13.727271620881512 +2023-02-21 08:00:00,4.356566099812533 +2023-02-21 09:00:00,29.22735649379829 +2023-02-21 10:00:00,14.793886053232296 +2023-02-21 11:00:00,11.670557995412226 +2023-02-21 12:00:00,19.054637789174546 +2023-02-21 13:00:00,9.368350298024668 +2023-02-21 14:00:00,15.45495436074922 +2023-02-21 15:00:00,26.708937207120705 +2023-02-21 16:00:00,15.760959666857357 +2023-02-21 17:00:00,25.420326886608493 +2023-02-21 18:00:00,1.4581563529031605 +2023-02-21 19:00:00,20.397564960230994 +2023-02-21 20:00:00,20.500838632368147 +2023-02-21 21:00:00,6.701104680057007 +2023-02-21 22:00:00,16.428146801379075 +2023-02-21 23:00:00,19.987703089610267 +2023-02-22 00:00:00,2.387381145152566 +2023-02-22 01:00:00,27.36651139977721 +2023-02-22 02:00:00,29.25501310897248 +2023-02-22 03:00:00,26.29256222808707 +2023-02-22 04:00:00,27.205667168049736 +2023-02-22 05:00:00,26.925433762458503 +2023-02-22 06:00:00,27.15906878404123 +2023-02-22 07:00:00,24.05621689966388 +2023-02-22 08:00:00,5.460671854281147 +2023-02-22 09:00:00,21.04271505574204 +2023-02-22 10:00:00,22.14965653925539 +2023-02-22 11:00:00,29.44336811067042 +2023-02-22 12:00:00,15.37764461146553 +2023-02-22 13:00:00,11.974640786923487 +2023-02-22 14:00:00,23.217383662567755 +2023-02-22 15:00:00,15.909180757834095 +2023-02-22 16:00:00,27.44881399340251 +2023-02-22 17:00:00,28.672467772488325 +2023-02-22 18:00:00,29.054811954537318 +2023-02-22 19:00:00,17.991856798014858 +2023-02-22 20:00:00,20.32295346990773 +2023-02-22 21:00:00,11.125073147055817 +2023-02-22 22:00:00,6.449276818830207 +2023-02-22 23:00:00,2.974531258873209 +2023-02-23 00:00:00,21.24707429142354 +2023-02-23 01:00:00,20.562747815960247 +2023-02-23 02:00:00,2.4445488861471345 +2023-02-23 03:00:00,3.087446518259843 +2023-02-23 04:00:00,16.593486119124403 +2023-02-23 05:00:00,1.2176946370475183 +2023-02-23 06:00:00,14.956096683970918 +2023-02-23 07:00:00,13.412017692377868 +2023-02-23 08:00:00,26.45437765353813 +2023-02-23 09:00:00,27.716944647258195 +2023-02-23 10:00:00,3.112415275948732 +2023-02-23 11:00:00,9.072334295952372 +2023-02-23 12:00:00,26.19073989695728 +2023-02-23 13:00:00,26.30999801928098 +2023-02-23 14:00:00,7.147169808846703 +2023-02-23 15:00:00,25.2131835466852 +2023-02-23 16:00:00,11.478922836337718 +2023-02-23 17:00:00,26.684009099710472 +2023-02-23 18:00:00,2.703935458126483 +2023-02-23 19:00:00,15.993123585589563 +2023-02-23 20:00:00,13.51104278005467 +2023-02-23 21:00:00,7.271071104117696 +2023-02-23 22:00:00,20.491750967271877 +2023-02-23 23:00:00,11.579362103937116 +2023-02-24 00:00:00,29.11462839058733 +2023-02-24 01:00:00,15.961405714439357 +2023-02-24 02:00:00,13.892448004401125 +2023-02-24 03:00:00,4.023778519594021 +2023-02-24 04:00:00,11.24453361114054 +2023-02-24 05:00:00,5.843246382759201 +2023-02-24 06:00:00,15.163750776077531 +2023-02-24 07:00:00,19.64275008295293 +2023-02-24 08:00:00,15.437991305223733 +2023-02-24 09:00:00,3.829687299737048 +2023-02-24 10:00:00,3.706609183669757 +2023-02-24 11:00:00,25.259524813559054 +2023-02-24 12:00:00,8.669008841086377 +2023-02-24 13:00:00,4.432206788135003 +2023-02-24 14:00:00,22.303331180091018 +2023-02-24 15:00:00,1.132355365982339 +2023-02-24 16:00:00,3.8808816694382697 +2023-02-24 17:00:00,4.93184780470047 +2023-02-24 18:00:00,23.87560814136987 +2023-02-24 19:00:00,27.90539357424251 +2023-02-24 20:00:00,21.07041613248894 +2023-02-24 21:00:00,17.60995416840132 +2023-02-24 22:00:00,26.348063488852304 +2023-02-24 23:00:00,7.848957067166603 +2023-02-25 00:00:00,20.35901631574855 +2023-02-25 01:00:00,8.891808007691434 +2023-02-25 02:00:00,14.561349119506104 +2023-02-25 03:00:00,17.687483049785875 +2023-02-25 04:00:00,22.28680427029907 +2023-02-25 05:00:00,10.672003974684118 +2023-02-25 06:00:00,21.67996563490196 +2023-02-25 07:00:00,20.381034134894083 +2023-02-25 08:00:00,21.252594867808494 +2023-02-25 09:00:00,12.576311487535802 +2023-02-25 10:00:00,10.67961967004184 +2023-02-25 11:00:00,1.147996096194498 +2023-02-25 12:00:00,7.784883741171754 +2023-02-25 13:00:00,29.72179069388265 +2023-02-25 14:00:00,10.928060588239727 +2023-02-25 15:00:00,17.25571434579026 +2023-02-25 16:00:00,4.848660705658813 +2023-02-25 17:00:00,6.399316389681555 +2023-02-25 18:00:00,28.63690645216874 +2023-02-25 19:00:00,21.07635136451931 +2023-02-25 20:00:00,14.93525359597956 +2023-02-25 21:00:00,26.808096050867043 +2023-02-25 22:00:00,12.393163940693189 +2023-02-25 23:00:00,4.330015905474584 +2023-02-26 00:00:00,7.955055459495146 +2023-02-26 01:00:00,2.7680877387765057 +2023-02-26 02:00:00,13.419921032569444 +2023-02-26 03:00:00,19.89341150262787 +2023-02-26 04:00:00,4.424413059136097 +2023-02-26 05:00:00,6.3200661756728485 +2023-02-26 06:00:00,16.07608306768718 +2023-02-26 07:00:00,22.128400620907684 +2023-02-26 08:00:00,17.785026154021892 +2023-02-26 09:00:00,20.290753181666712 +2023-02-26 10:00:00,6.571112005383131 +2023-02-26 11:00:00,15.012921839451453 +2023-02-26 12:00:00,24.2326772221486 +2023-02-26 13:00:00,15.909473750855712 +2023-02-26 14:00:00,19.982482282041765 +2023-02-26 15:00:00,24.61628638989791 +2023-02-26 16:00:00,24.206992066545045 +2023-02-26 17:00:00,10.383356454700545 +2023-02-26 18:00:00,10.70213218009035 +2023-02-26 19:00:00,7.076528620106675 +2023-02-26 20:00:00,2.916494881350604 +2023-02-26 21:00:00,25.963763272316857 +2023-02-26 22:00:00,2.5850206460774663 +2023-02-26 23:00:00,17.719712053352776 +2023-02-27 00:00:00,5.824377609576579 +2023-02-27 01:00:00,29.476758089285774 +2023-02-27 02:00:00,26.891455119911 +2023-02-27 03:00:00,20.935598573074955 +2023-02-27 04:00:00,21.801500048717703 +2023-02-27 05:00:00,0.5078446033650208 +2023-02-27 06:00:00,5.807325896448091 +2023-02-27 07:00:00,26.9218701416156 +2023-02-27 08:00:00,2.545406721119743 +2023-02-27 09:00:00,28.157129061007417 +2023-02-27 10:00:00,3.6878572775178102 +2023-02-27 11:00:00,17.044208194175415 +2023-02-27 12:00:00,15.139191477944914 +2023-02-27 13:00:00,28.84828416857966 +2023-02-27 14:00:00,13.724753329036693 +2023-02-27 15:00:00,12.634716788836204 +2023-02-27 16:00:00,1.7486431283629156 +2023-02-27 17:00:00,0.7175893990837268 +2023-02-27 18:00:00,8.32765262284639 +2023-02-27 19:00:00,29.92650541526745 +2023-02-27 20:00:00,11.545067924855104 +2023-02-27 21:00:00,20.70716394341778 +2023-02-27 22:00:00,27.736272776565947 +2023-02-27 23:00:00,12.833970397563467 +2023-02-28 00:00:00,25.1862872831322 +2023-02-28 01:00:00,17.375929839053203 +2023-02-28 02:00:00,7.5699665211247265 +2023-02-28 03:00:00,9.045185214160824 +2023-02-28 04:00:00,2.05139564153579 +2023-02-28 05:00:00,3.163369190445003 +2023-02-28 06:00:00,28.18815542736083 +2023-02-28 07:00:00,24.219490243209258 +2023-02-28 08:00:00,1.4609872732111329 +2023-02-28 09:00:00,26.44018554553185 +2023-02-28 10:00:00,25.621440958350405 +2023-02-28 11:00:00,15.37040600126562 +2023-02-28 12:00:00,10.264949953314666 +2023-02-28 13:00:00,25.62451808782656 +2023-02-28 14:00:00,8.899741968285603 +2023-02-28 15:00:00,12.492717512900558 +2023-02-28 16:00:00,26.208057261082057 +2023-02-28 17:00:00,9.987720160577195 +2023-02-28 18:00:00,16.886875573366297 +2023-02-28 19:00:00,20.26167927108588 +2023-02-28 20:00:00,10.009557973576849 +2023-02-28 21:00:00,17.88383089563018 +2023-02-28 22:00:00,17.33910541179778 +2023-02-28 23:00:00,29.167627449258564 +2023-03-01 00:00:00,23.67668647743084 +2023-03-01 01:00:00,1.8194977406536597 +2023-03-01 02:00:00,7.956965976244364 +2023-03-01 03:00:00,3.167916321433988 +2023-03-01 04:00:00,19.830940811041025 +2023-03-01 05:00:00,7.262250677472609 +2023-03-01 06:00:00,10.664816496002471 +2023-03-01 07:00:00,18.160050712720476 +2023-03-01 08:00:00,21.962586904253484 +2023-03-01 09:00:00,24.878955116866788 +2023-03-01 10:00:00,27.15959830737194 +2023-03-01 11:00:00,15.012469304465448 +2023-03-01 12:00:00,27.86849821999043 +2023-03-01 13:00:00,5.136666052202705 +2023-03-01 14:00:00,7.668431420486044 +2023-03-01 15:00:00,10.917257008422393 +2023-03-01 16:00:00,6.438796736204885 +2023-03-01 17:00:00,13.072555967521872 +2023-03-01 18:00:00,13.29195026217159 +2023-03-01 19:00:00,23.802135294421586 +2023-03-01 20:00:00,12.167946333767327 +2023-03-01 21:00:00,14.207822973219097 +2023-03-01 22:00:00,5.601141813194284 +2023-03-01 23:00:00,9.755634234941438 +2023-03-02 00:00:00,8.36519081411471 +2023-03-02 01:00:00,9.688809195451238 +2023-03-02 02:00:00,17.471213101563713 +2023-03-02 03:00:00,0.4099014557509306 +2023-03-02 04:00:00,7.5495346304023165 +2023-03-02 05:00:00,6.786917230688488 +2023-03-02 06:00:00,5.4616734271991065 +2023-03-02 07:00:00,7.264907212550499 +2023-03-02 08:00:00,5.05962542358124 +2023-03-02 09:00:00,13.909594145825336 +2023-03-02 10:00:00,11.268402597518108 +2023-03-02 11:00:00,23.419779126900387 +2023-03-02 12:00:00,28.34618216689126 +2023-03-02 13:00:00,24.607834736625737 +2023-03-02 14:00:00,13.257168249845677 +2023-03-02 15:00:00,27.301547918649312 +2023-03-02 16:00:00,23.900083099633225 +2023-03-02 17:00:00,17.169202092623774 +2023-03-02 18:00:00,15.942948348753756 +2023-03-02 19:00:00,29.666332301935977 +2023-03-02 20:00:00,17.528997724678227 +2023-03-02 21:00:00,17.650961876697696 +2023-03-02 22:00:00,17.15227868692605 +2023-03-02 23:00:00,16.50340560502603 +2023-03-03 00:00:00,27.985617794449432 +2023-03-03 01:00:00,13.927900634462985 +2023-03-03 02:00:00,6.654845894525342 +2023-03-03 03:00:00,16.730275573054843 +2023-03-03 04:00:00,10.163463550154791 +2023-03-03 05:00:00,25.89740250795568 +2023-03-03 06:00:00,26.614443644961103 +2023-03-03 07:00:00,8.214232632855387 +2023-03-03 08:00:00,9.069177981410766 +2023-03-03 09:00:00,20.048824010693828 +2023-03-03 10:00:00,28.3019692478876 +2023-03-03 11:00:00,6.167498593475839 +2023-03-03 12:00:00,17.637356894012445 +2023-03-03 13:00:00,2.500604944319252 +2023-03-03 14:00:00,20.544445743966374 +2023-03-03 15:00:00,20.73510962993875 +2023-03-03 16:00:00,1.899838644860801 +2023-03-03 17:00:00,13.480868553732495 +2023-03-03 18:00:00,11.601307316026965 +2023-03-03 19:00:00,17.75123012345053 +2023-03-03 20:00:00,0.7698982686454015 +2023-03-03 21:00:00,11.871792958416927 +2023-03-03 22:00:00,19.14105902050585 +2023-03-03 23:00:00,0.1558691890211205 +2023-03-04 00:00:00,3.447522933237779 +2023-03-04 01:00:00,14.187047766451991 +2023-03-04 02:00:00,4.393675390655361 +2023-03-04 03:00:00,6.694027133993215 +2023-03-04 04:00:00,24.270761822894286 +2023-03-04 05:00:00,20.78410573625394 +2023-03-04 06:00:00,23.683472492817128 +2023-03-04 07:00:00,20.69562147600611 +2023-03-04 08:00:00,17.120954554038327 +2023-03-04 09:00:00,29.126281326009977 +2023-03-04 10:00:00,22.78362419116504 +2023-03-04 11:00:00,26.875551774018387 +2023-03-04 12:00:00,24.483237570139657 +2023-03-04 13:00:00,28.988347979942517 +2023-03-04 14:00:00,26.39806659103905 +2023-03-04 15:00:00,14.62401923472186 +2023-03-04 16:00:00,7.916806764047315 +2023-03-04 17:00:00,7.920764800786552 +2023-03-04 18:00:00,29.43595077690293 +2023-03-04 19:00:00,3.833556895710907 +2023-03-04 20:00:00,9.952647768333817 +2023-03-04 21:00:00,7.607432561553072 +2023-03-04 22:00:00,4.048793808817086 +2023-03-04 23:00:00,24.508357151756616 +2023-03-05 00:00:00,17.95887969674937 +2023-03-05 01:00:00,2.8048317306669635 +2023-03-05 02:00:00,9.076879805361054 +2023-03-05 03:00:00,4.598070974528001 +2023-03-05 04:00:00,24.62751798477808 +2023-03-05 05:00:00,9.47035033739996 +2023-03-05 06:00:00,25.316896725937493 +2023-03-05 07:00:00,19.799793041389705 +2023-03-05 08:00:00,11.25144098513837 +2023-03-05 09:00:00,10.291054020839796 +2023-03-05 10:00:00,25.11501346695187 +2023-03-05 11:00:00,22.431527173701813 +2023-03-05 12:00:00,27.499294606370785 +2023-03-05 13:00:00,0.6622176912302258 +2023-03-05 14:00:00,15.556921375724382 +2023-03-05 15:00:00,20.862391564130768 +2023-03-05 16:00:00,2.838296570413408 +2023-03-05 17:00:00,20.1699356675194 +2023-03-05 18:00:00,20.08349733933939 +2023-03-05 19:00:00,19.63861293890105 +2023-03-05 20:00:00,13.5631748834842 +2023-03-05 21:00:00,9.239802347456482 +2023-03-05 22:00:00,25.110516414854867 +2023-03-05 23:00:00,23.417350823356458 +2023-03-06 00:00:00,24.658099625796638 +2023-03-06 01:00:00,20.23769465761708 +2023-03-06 02:00:00,8.763681898832816 +2023-03-06 03:00:00,17.144365344060287 +2023-03-06 04:00:00,1.963632548412606 +2023-03-06 05:00:00,6.0848156810416265 +2023-03-06 06:00:00,19.38284076124739 +2023-03-06 07:00:00,1.8250499046530224 +2023-03-06 08:00:00,19.632383579517864 +2023-03-06 09:00:00,21.94085002814301 +2023-03-06 10:00:00,13.384358566869444 +2023-03-06 11:00:00,29.78988817237269 +2023-03-06 12:00:00,16.13254772877729 +2023-03-06 13:00:00,10.86118755558964 +2023-03-06 14:00:00,3.4514405736601272 +2023-03-06 15:00:00,21.668965983333603 +2023-03-06 16:00:00,12.818966208288089 +2023-03-06 17:00:00,12.242758832239844 +2023-03-06 18:00:00,10.581726154940672 +2023-03-06 19:00:00,16.489898153799075 +2023-03-06 20:00:00,26.983475517190847 +2023-03-06 21:00:00,1.0245874831761337 +2023-03-06 22:00:00,21.685228702487898 +2023-03-06 23:00:00,24.81998396435901 +2023-03-07 00:00:00,0.3713824007972965 +2023-03-07 01:00:00,13.607345063715137 +2023-03-07 02:00:00,12.500622661458376 +2023-03-07 03:00:00,11.830718612277227 +2023-03-07 04:00:00,29.283040719233476 +2023-03-07 05:00:00,8.06055413131232 +2023-03-07 06:00:00,22.67175664236228 +2023-03-07 07:00:00,2.096147282966375 +2023-03-07 08:00:00,18.81009623856548 +2023-03-07 09:00:00,26.92136215727264 +2023-03-07 10:00:00,22.36052279645948 +2023-03-07 11:00:00,29.23431778641984 +2023-03-07 12:00:00,9.944430087484267 +2023-03-07 13:00:00,6.0571403066999245 +2023-03-07 14:00:00,20.947423913432683 +2023-03-07 15:00:00,11.73544188905211 +2023-03-07 16:00:00,4.1714556189710885 +2023-03-07 17:00:00,17.307083962395065 +2023-03-07 18:00:00,12.060392317313244 +2023-03-07 19:00:00,27.873709872956383 +2023-03-07 20:00:00,29.38115285113473 +2023-03-07 21:00:00,12.274718980650796 +2023-03-07 22:00:00,20.072786840041665 +2023-03-07 23:00:00,27.826841356958354 +2023-03-08 00:00:00,28.65125917844892 +2023-03-08 01:00:00,8.34868409949374 +2023-03-08 02:00:00,21.193596173443694 +2023-03-08 03:00:00,23.27682001417644 +2023-03-08 04:00:00,11.386583661973807 +2023-03-08 05:00:00,4.848488195360822 +2023-03-08 06:00:00,1.2576978195508948 +2023-03-08 07:00:00,28.70212766563068 +2023-03-08 08:00:00,6.256239218280156 +2023-03-08 09:00:00,24.898838019981422 +2023-03-08 10:00:00,10.75077152733232 +2023-03-08 11:00:00,5.085862248281748 +2023-03-08 12:00:00,17.08139547657382 +2023-03-08 13:00:00,28.6407098954024 +2023-03-08 14:00:00,29.015746579173733 +2023-03-08 15:00:00,0.3509035877268163 +2023-03-08 16:00:00,7.633554238724221 +2023-03-08 17:00:00,9.301336360101816 +2023-03-08 18:00:00,11.715251108288122 +2023-03-08 19:00:00,2.524728282782399 +2023-03-08 20:00:00,11.251123617427364 +2023-03-08 21:00:00,8.406035810482173 +2023-03-08 22:00:00,14.249530641634658 +2023-03-08 23:00:00,3.138414603222838 +2023-03-09 00:00:00,12.403897400511648 +2023-03-09 01:00:00,12.376111005742244 +2023-03-09 02:00:00,17.93486800096537 +2023-03-09 03:00:00,21.40016385713248 +2023-03-09 04:00:00,28.72608867249637 +2023-03-09 05:00:00,14.221735527415577 +2023-03-09 06:00:00,7.642432762702928 +2023-03-09 07:00:00,18.664703477422297 +2023-03-09 08:00:00,9.80496305308249 +2023-03-09 09:00:00,23.941939310717707 +2023-03-09 10:00:00,26.846631477930057 +2023-03-09 11:00:00,23.099622059440705 +2023-03-09 12:00:00,22.935591343598567 +2023-03-09 13:00:00,13.1944298002381 +2023-03-09 14:00:00,16.768458828036465 +2023-03-09 15:00:00,5.087372248725464 +2023-03-09 16:00:00,6.454209299943479 +2023-03-09 17:00:00,19.25265819254197 +2023-03-09 18:00:00,3.198487718541161 +2023-03-09 19:00:00,18.894860702198542 +2023-03-09 20:00:00,13.797853645865397 +2023-03-09 21:00:00,5.700981184635259 +2023-03-09 22:00:00,24.674343238205047 +2023-03-09 23:00:00,23.905767164355048 +2023-03-10 00:00:00,1.3856308459748223 +2023-03-10 01:00:00,22.039447907079712 +2023-03-10 02:00:00,26.277546788339617 +2023-03-10 03:00:00,1.1635691070549037 +2023-03-10 04:00:00,14.277503866726708 +2023-03-10 05:00:00,24.212123748948905 +2023-03-10 06:00:00,8.410642690603172 +2023-03-10 07:00:00,23.89776021686607 +2023-03-10 08:00:00,10.881143237304448 +2023-03-10 09:00:00,14.943831237340868 +2023-03-10 10:00:00,28.42923829693493 +2023-03-10 11:00:00,28.66609357882417 +2023-03-10 12:00:00,2.1054395727388164 +2023-03-10 13:00:00,27.687544478216456 +2023-03-10 14:00:00,23.32353332701079 +2023-03-10 15:00:00,21.298124752815607 +2023-03-10 16:00:00,3.1892487301679773 +2023-03-10 17:00:00,27.47759093005965 +2023-03-10 18:00:00,27.551373966158824 +2023-03-10 19:00:00,10.591107862316951 +2023-03-10 20:00:00,3.7871040206866233 +2023-03-10 21:00:00,8.743257160760503 +2023-03-10 22:00:00,14.813392481582891 +2023-03-10 23:00:00,25.28094651749306 +2023-03-11 00:00:00,25.091181935626537 +2023-03-11 01:00:00,0.7109238257226258 +2023-03-11 02:00:00,23.318666593817163 +2023-03-11 03:00:00,29.670601304259986 +2023-03-11 04:00:00,9.485501672830566 +2023-03-11 05:00:00,2.4787412050250337 +2023-03-11 06:00:00,1.0984371552546146 +2023-03-11 07:00:00,10.315735216581396 +2023-03-11 08:00:00,8.287576436458563 +2023-03-11 09:00:00,4.283908368433833 +2023-03-11 10:00:00,2.169375597579516 +2023-03-11 11:00:00,28.263343980081014 +2023-03-11 12:00:00,11.417447439742777 +2023-03-11 13:00:00,19.09747960960226 +2023-03-11 14:00:00,24.529475826012323 +2023-03-11 15:00:00,22.54645935589108 +2023-03-11 16:00:00,12.984458804760893 +2023-03-11 17:00:00,13.27081385954603 +2023-03-11 18:00:00,23.49649704014861 +2023-03-11 19:00:00,10.393972549874732 +2023-03-11 20:00:00,27.102473643744904 +2023-03-11 21:00:00,20.66296302492671 +2023-03-11 22:00:00,2.8721211602131023 +2023-03-11 23:00:00,14.309572038819086 +2023-03-12 00:00:00,8.440217883007467 +2023-03-12 01:00:00,5.336501544473821 +2023-03-12 02:00:00,0.7850367108314649 +2023-03-12 03:00:00,3.977855762690502 +2023-03-12 04:00:00,19.13777449758784 +2023-03-12 05:00:00,0.822865275233956 +2023-03-12 06:00:00,5.245408352067372 +2023-03-12 07:00:00,14.004878942865956 +2023-03-12 08:00:00,27.126008973784227 +2023-03-12 09:00:00,6.950280954626145 +2023-03-12 10:00:00,29.138544535056248 +2023-03-12 11:00:00,0.6849763188654112 +2023-03-12 12:00:00,6.7543279374055 +2023-03-12 13:00:00,24.475481232773525 +2023-03-12 14:00:00,1.3268620464929393 +2023-03-12 15:00:00,10.79373946479668 +2023-03-12 16:00:00,23.25399353458101 +2023-03-12 17:00:00,22.75353184791511 +2023-03-12 18:00:00,12.109920206253564 +2023-03-12 19:00:00,15.460482127952128 +2023-03-12 20:00:00,14.045517791287365 +2023-03-12 21:00:00,17.750769647254266 +2023-03-12 22:00:00,4.59624967300598 +2023-03-12 23:00:00,26.30509124503192 +2023-03-13 00:00:00,10.025070154664222 +2023-03-13 01:00:00,22.00287401549129 +2023-03-13 02:00:00,6.981846753879427 +2023-03-13 03:00:00,6.74573382695402 +2023-03-13 04:00:00,17.77587956536365 +2023-03-13 05:00:00,25.602473087828624 +2023-03-13 06:00:00,29.507821483106667 +2023-03-13 07:00:00,13.305284806075813 +2023-03-13 08:00:00,10.068643284593255 +2023-03-13 09:00:00,27.60497815668561 +2023-03-13 10:00:00,23.83670181108558 +2023-03-13 11:00:00,18.710357111689856 +2023-03-13 12:00:00,3.145282285647254 +2023-03-13 13:00:00,25.680424741065394 +2023-03-13 14:00:00,15.299247811736484 +2023-03-13 15:00:00,22.9544909724315 +2023-03-13 16:00:00,21.3103454458772 +2023-03-13 17:00:00,18.88582106025264 +2023-03-13 18:00:00,14.390546980231695 +2023-03-13 19:00:00,26.814969428381712 +2023-03-13 20:00:00,24.38003489740172 +2023-03-13 21:00:00,22.3056882621297 +2023-03-13 22:00:00,27.887006448726677 +2023-03-13 23:00:00,13.830038454577757 +2023-03-14 00:00:00,15.5450584956851 +2023-03-14 01:00:00,1.6713086129228127 +2023-03-14 02:00:00,23.670346275666876 +2023-03-14 03:00:00,4.644217779817947 +2023-03-14 04:00:00,18.75743312032612 +2023-03-14 05:00:00,5.8920289257247855 +2023-03-14 06:00:00,3.6533648274984394 +2023-03-14 07:00:00,29.953346451929956 +2023-03-14 08:00:00,17.891577024086477 +2023-03-14 09:00:00,10.427223030167742 +2023-03-14 10:00:00,16.234382694607692 +2023-03-14 11:00:00,1.769517397954352 +2023-03-14 12:00:00,4.291099691705105 +2023-03-14 13:00:00,3.0690037602857547 +2023-03-14 14:00:00,2.5825757690122666 +2023-03-14 15:00:00,22.062508354190346 +2023-03-14 16:00:00,29.436383116131744 +2023-03-14 17:00:00,15.019250986411151 +2023-03-14 18:00:00,2.696021255763299 +2023-03-14 19:00:00,15.046345657837874 +2023-03-14 20:00:00,10.467121487931252 +2023-03-14 21:00:00,22.639429699741186 +2023-03-14 22:00:00,8.693516789186166 +2023-03-14 23:00:00,3.3256396784306483 +2023-03-15 00:00:00,23.83651984766492 +2023-03-15 01:00:00,27.65486263211976 +2023-03-15 02:00:00,13.852909986864178 +2023-03-15 03:00:00,1.0976382833896647 +2023-03-15 04:00:00,20.855414915920058 +2023-03-15 05:00:00,27.03566525390533 +2023-03-15 06:00:00,20.914539438456497 +2023-03-15 07:00:00,6.243777548375464 +2023-03-15 08:00:00,7.34206437854075 +2023-03-15 09:00:00,18.8800959229189 +2023-03-15 10:00:00,14.617670655749704 +2023-03-15 11:00:00,25.462747971062385 +2023-03-15 12:00:00,28.35352476972753 +2023-03-15 13:00:00,16.28228699167207 +2023-03-15 14:00:00,1.022508050231089 +2023-03-15 15:00:00,27.6103005775337 +2023-03-15 16:00:00,2.2717507887924326 +2023-03-15 17:00:00,5.908451298917918 +2023-03-15 18:00:00,20.540210387609683 +2023-03-15 19:00:00,28.965635736335813 +2023-03-15 20:00:00,13.753912210851716 +2023-03-15 21:00:00,18.77890383103315 +2023-03-15 22:00:00,2.57345768654466 +2023-03-15 23:00:00,19.87776553064641 +2023-03-16 00:00:00,2.5220068818596277 +2023-03-16 01:00:00,23.648022513391812 +2023-03-16 02:00:00,14.439210471297912 +2023-03-16 03:00:00,16.90977395572752 +2023-03-16 04:00:00,8.793550387480815 +2023-03-16 05:00:00,13.935278688475371 +2023-03-16 06:00:00,3.3833295365650797 +2023-03-16 07:00:00,2.654577752350998 +2023-03-16 08:00:00,1.7889277928962133 +2023-03-16 09:00:00,9.354253928030737 +2023-03-16 10:00:00,6.78920794517266 +2023-03-16 11:00:00,16.51798579633199 +2023-03-16 12:00:00,21.51709828732748 +2023-03-16 13:00:00,17.72080772389118 +2023-03-16 14:00:00,25.44991179490742 +2023-03-16 15:00:00,20.23884484900368 +2023-03-16 16:00:00,25.701460539765232 +2023-03-16 17:00:00,17.970230441278794 +2023-03-16 18:00:00,3.008486358888588 +2023-03-16 19:00:00,5.15781416066606 +2023-03-16 20:00:00,3.859341811969873 +2023-03-16 21:00:00,28.359493767883905 +2023-03-16 22:00:00,25.98565015635392 +2023-03-16 23:00:00,12.649910705813236 +2023-03-17 00:00:00,0.8021236630285888 +2023-03-17 01:00:00,18.22279990102404 +2023-03-17 02:00:00,24.60530660695033 +2023-03-17 03:00:00,25.138103612540696 +2023-03-17 04:00:00,6.906752479690084 +2023-03-17 05:00:00,0.3788808149320566 +2023-03-17 06:00:00,27.735649166089143 +2023-03-17 07:00:00,20.07098340344832 +2023-03-17 08:00:00,5.3772252142388055 +2023-03-17 09:00:00,11.671629693560842 +2023-03-17 10:00:00,15.131097880679317 +2023-03-17 11:00:00,25.396829056787865 +2023-03-17 12:00:00,24.33284310333713 +2023-03-17 13:00:00,23.22961183218476 +2023-03-17 14:00:00,14.311245690382082 +2023-03-17 15:00:00,2.201973008527517 +2023-03-17 16:00:00,2.3210246500897838 +2023-03-17 17:00:00,8.104048287112455 +2023-03-17 18:00:00,29.207823906786395 +2023-03-17 19:00:00,1.1376919795018836 +2023-03-17 20:00:00,24.98045159425975 +2023-03-17 21:00:00,18.589339741609702 +2023-03-17 22:00:00,19.074449738212397 +2023-03-17 23:00:00,21.71700273640383 +2023-03-18 00:00:00,19.58142457608445 +2023-03-18 01:00:00,24.55824430663394 +2023-03-18 02:00:00,29.30080962788329 +2023-03-18 03:00:00,24.540253630911863 +2023-03-18 04:00:00,23.40847195027754 +2023-03-18 05:00:00,18.69047342843325 +2023-03-18 06:00:00,10.231312249134133 +2023-03-18 07:00:00,11.708639021040362 +2023-03-18 08:00:00,19.166339101779545 +2023-03-18 09:00:00,11.388592079800748 +2023-03-18 10:00:00,23.12426813897765 +2023-03-18 11:00:00,20.225994332807197 +2023-03-18 12:00:00,4.797951382237625 +2023-03-18 13:00:00,8.653650347811933 +2023-03-18 14:00:00,8.213758142160366 +2023-03-18 15:00:00,26.643625234981464 +2023-03-18 16:00:00,1.8656471079505088 +2023-03-18 17:00:00,29.74127895927739 +2023-03-18 18:00:00,18.390187793165712 +2023-03-18 19:00:00,16.76936796464507 +2023-03-18 20:00:00,4.393653348441891 +2023-03-18 21:00:00,24.05336052968069 +2023-03-18 22:00:00,19.8845842099542 +2023-03-18 23:00:00,16.101295805422126 +2023-03-19 00:00:00,20.83901792655164 +2023-03-19 01:00:00,29.59104341754429 +2023-03-19 02:00:00,0.7333229365232652 +2023-03-19 03:00:00,27.169056731300586 +2023-03-19 04:00:00,0.7333858631685297 +2023-03-19 05:00:00,27.121344455807005 +2023-03-19 06:00:00,2.4805931208223333 +2023-03-19 07:00:00,28.86209447665566 +2023-03-19 08:00:00,6.566938862463396 +2023-03-19 09:00:00,9.95437702504526 +2023-03-19 10:00:00,13.895974963757826 +2023-03-19 11:00:00,14.374542277283812 +2023-03-19 12:00:00,14.265909240801577 +2023-03-19 13:00:00,27.19243628881636 +2023-03-19 14:00:00,27.622842193891174 +2023-03-19 15:00:00,11.313000183516053 +2023-03-19 16:00:00,18.61588894906161 +2023-03-19 17:00:00,14.529922103969376 +2023-03-19 18:00:00,17.303202521868304 +2023-03-19 19:00:00,0.3213547698916319 +2023-03-19 20:00:00,20.44904488133718 +2023-03-19 21:00:00,10.103812564075502 +2023-03-19 22:00:00,16.90756566786944 +2023-03-19 23:00:00,2.5775046826381764 +2023-03-20 00:00:00,29.20891810371516 +2023-03-20 01:00:00,14.05873300652274 +2023-03-20 02:00:00,15.54284352201085 +2023-03-20 03:00:00,20.36205250913202 +2023-03-20 04:00:00,13.469920821950724 +2023-03-20 05:00:00,7.849602944035277 +2023-03-20 06:00:00,7.063438808766861 +2023-03-20 07:00:00,24.35617816872392 +2023-03-20 08:00:00,21.628177826393227 +2023-03-20 09:00:00,5.281772099795656 +2023-03-20 10:00:00,15.472790657513803 +2023-03-20 11:00:00,20.157245568641244 +2023-03-20 12:00:00,6.28580772944818 +2023-03-20 13:00:00,27.20577464918495 +2023-03-20 14:00:00,16.341077414283117 +2023-03-20 15:00:00,6.853542711716692 +2023-03-20 16:00:00,27.023849144816825 +2023-03-20 17:00:00,4.09495066684692 +2023-03-20 18:00:00,29.723548404182672 +2023-03-20 19:00:00,15.210150252683976 +2023-03-20 20:00:00,20.609759390405248 +2023-03-20 21:00:00,11.996678636829628 +2023-03-20 22:00:00,5.121413176437942 +2023-03-20 23:00:00,13.223020044348946 +2023-03-21 00:00:00,26.255879402483032 +2023-03-21 01:00:00,17.295190373797723 +2023-03-21 02:00:00,15.07398246104148 +2023-03-21 03:00:00,28.69302029523389 +2023-03-21 04:00:00,21.530911102226085 +2023-03-21 05:00:00,28.20235305591476 +2023-03-21 06:00:00,24.38287543797212 +2023-03-21 07:00:00,1.5599202251248023 +2023-03-21 08:00:00,12.28415335103526 +2023-03-21 09:00:00,1.2483938789849702 +2023-03-21 10:00:00,13.715200197935728 +2023-03-21 11:00:00,12.718183558409198 +2023-03-21 12:00:00,24.904482517657517 +2023-03-21 13:00:00,9.077787762069963 +2023-03-21 14:00:00,17.809165281087182 +2023-03-21 15:00:00,29.02798321577113 +2023-03-21 16:00:00,5.783314411466858 +2023-03-21 17:00:00,25.5376486423851 +2023-03-21 18:00:00,22.17478777437016 +2023-03-21 19:00:00,28.378443147352808 +2023-03-21 20:00:00,29.879381704545157 +2023-03-21 21:00:00,27.043074291584063 +2023-03-21 22:00:00,1.3765875689425622 +2023-03-21 23:00:00,25.51224880986018 +2023-03-22 00:00:00,3.676821076625365 +2023-03-22 01:00:00,9.415038191345 +2023-03-22 02:00:00,13.457229370038553 +2023-03-22 03:00:00,3.58861695520372 +2023-03-22 04:00:00,7.566852986258722 +2023-03-22 05:00:00,3.763043451435615 +2023-03-22 06:00:00,25.753635979758563 +2023-03-22 07:00:00,26.554510581223024 +2023-03-22 08:00:00,24.965239831273383 +2023-03-22 09:00:00,5.884860462052944 +2023-03-22 10:00:00,2.977743404740465 +2023-03-22 11:00:00,0.2536886333893173 +2023-03-22 12:00:00,8.046763059596719 +2023-03-22 13:00:00,17.07810764432059 +2023-03-22 14:00:00,16.296661727607894 +2023-03-22 15:00:00,12.814649631641576 +2023-03-22 16:00:00,14.76926873890022 +2023-03-22 17:00:00,2.060467058102184 +2023-03-22 18:00:00,15.37842708936253 +2023-03-22 19:00:00,3.8325649033255216 +2023-03-22 20:00:00,16.819410282733955 +2023-03-22 21:00:00,23.33920770440735 +2023-03-22 22:00:00,28.633420734987237 +2023-03-22 23:00:00,13.850368258822126 +2023-03-23 00:00:00,10.130456715223785 +2023-03-23 01:00:00,14.13889837071158 +2023-03-23 02:00:00,11.502271214239352 +2023-03-23 03:00:00,0.8501911990737565 +2023-03-23 04:00:00,25.19575290711866 +2023-03-23 05:00:00,2.8560091158155645 +2023-03-23 06:00:00,17.924397281074857 +2023-03-23 07:00:00,29.2842616545158 +2023-03-23 08:00:00,24.75521196676803 +2023-03-23 09:00:00,3.3229221697417453 +2023-03-23 10:00:00,11.0717111594321 +2023-03-23 11:00:00,19.456397861751423 +2023-03-23 12:00:00,1.8013355797560149 +2023-03-23 13:00:00,13.48282240130063 +2023-03-23 14:00:00,24.88928201350952 +2023-03-23 15:00:00,18.10189791942921 +2023-03-23 16:00:00,5.541524829935157 +2023-03-23 17:00:00,17.40868195904661 +2023-03-23 18:00:00,16.07425091178764 +2023-03-23 19:00:00,2.012431477970717 +2023-03-23 20:00:00,4.982664407161895 +2023-03-23 21:00:00,20.46369384556111 +2023-03-23 22:00:00,12.325079494612028 +2023-03-23 23:00:00,5.770031060630658 +2023-03-24 00:00:00,17.654281484382125 +2023-03-24 01:00:00,20.493781164577342 +2023-03-24 02:00:00,7.607240685544023 +2023-03-24 03:00:00,20.65147808979573 +2023-03-24 04:00:00,23.751089273783823 +2023-03-24 05:00:00,28.286852022395905 +2023-03-24 06:00:00,12.296909132738282 +2023-03-24 07:00:00,5.048895212288472 +2023-03-24 08:00:00,2.7737187481786654 +2023-03-24 09:00:00,5.978488068829516 +2023-03-24 10:00:00,11.41958578774495 +2023-03-24 11:00:00,20.912558117104997 +2023-03-24 12:00:00,12.301920027001913 +2023-03-24 13:00:00,0.5570613263434654 +2023-03-24 14:00:00,26.249714803295625 +2023-03-24 15:00:00,16.484979895271298 +2023-03-24 16:00:00,5.5853040345721165 +2023-03-24 17:00:00,6.739871910295527 +2023-03-24 18:00:00,16.365140202751263 +2023-03-24 19:00:00,18.63388365753672 +2023-03-24 20:00:00,17.01842598662805 +2023-03-24 21:00:00,18.705355440135374 +2023-03-24 22:00:00,28.499184990020822 +2023-03-24 23:00:00,6.99516311855805 +2023-03-25 00:00:00,3.5342525740850608 +2023-03-25 01:00:00,0.999173227185316 +2023-03-25 02:00:00,0.6547630835831131 +2023-03-25 03:00:00,14.135804558344066 +2023-03-25 04:00:00,27.01311833546452 +2023-03-25 05:00:00,13.507334400336394 +2023-03-25 06:00:00,20.333765594468 +2023-03-25 07:00:00,17.35447522873992 +2023-03-25 08:00:00,5.968910838323444 +2023-03-25 09:00:00,9.559722044522422 +2023-03-25 10:00:00,16.006857930546158 +2023-03-25 11:00:00,25.05516821191327 +2023-03-25 12:00:00,1.7510980012505584 +2023-03-25 13:00:00,12.89334676650047 +2023-03-25 14:00:00,28.14962640341668 +2023-03-25 15:00:00,25.348690170556395 +2023-03-25 16:00:00,12.195266121427585 +2023-03-25 17:00:00,25.55491990083881 +2023-03-25 18:00:00,27.19179175348279 +2023-03-25 19:00:00,11.954961125276242 +2023-03-25 20:00:00,3.5657404350287605 +2023-03-25 21:00:00,5.683671100902224 +2023-03-25 22:00:00,25.28195899504084 +2023-03-25 23:00:00,24.49951392175185 +2023-03-26 00:00:00,16.656968886451388 +2023-03-26 01:00:00,28.649298300326347 +2023-03-26 02:00:00,7.609704961329133 +2023-03-26 03:00:00,24.03588054196898 +2023-03-26 04:00:00,27.771865219277828 +2023-03-26 05:00:00,8.758639484762462 +2023-03-26 06:00:00,26.41859220470351 +2023-03-26 07:00:00,21.67580661669785 +2023-03-26 08:00:00,17.63162040242292 +2023-03-26 09:00:00,18.289701625509117 +2023-03-26 10:00:00,25.3370029810834 +2023-03-26 11:00:00,27.051726636856976 +2023-03-26 12:00:00,16.348089323886324 +2023-03-26 13:00:00,29.85783406408877 +2023-03-26 14:00:00,26.7022272201278 +2023-03-26 15:00:00,22.144615361458342 +2023-03-26 16:00:00,5.188112142711246 +2023-03-26 17:00:00,5.075077925312747 +2023-03-26 18:00:00,12.402917329486831 +2023-03-26 19:00:00,19.851853749445997 +2023-03-26 20:00:00,14.041303237736509 +2023-03-26 21:00:00,2.54159693550015 +2023-03-26 22:00:00,21.36727231660808 +2023-03-26 23:00:00,13.44474107925093 +2023-03-27 00:00:00,5.679850942479717 +2023-03-27 01:00:00,14.614786327893212 +2023-03-27 02:00:00,2.2301603181462726 +2023-03-27 03:00:00,22.921349681012508 +2023-03-27 04:00:00,12.123479772043824 +2023-03-27 05:00:00,17.437962114941474 +2023-03-27 06:00:00,14.19035932581876 +2023-03-27 07:00:00,2.2245480276393903 +2023-03-27 08:00:00,15.256524474581076 +2023-03-27 09:00:00,18.648732979243416 +2023-03-27 10:00:00,12.62200219844714 +2023-03-27 11:00:00,6.586126664903606 +2023-03-27 12:00:00,23.752934037189164 +2023-03-27 13:00:00,13.635563595086218 +2023-03-27 14:00:00,26.799249030280848 +2023-03-27 15:00:00,2.875805638771025 +2023-03-27 16:00:00,21.757795042939627 +2023-03-27 17:00:00,25.963956695057497 +2023-03-27 18:00:00,29.53923004905651 +2023-03-27 19:00:00,12.496924701263277 +2023-03-27 20:00:00,15.261353000846151 +2023-03-27 21:00:00,14.13402136599692 +2023-03-27 22:00:00,15.4551146361797 +2023-03-27 23:00:00,5.548214769616933 +2023-03-28 00:00:00,15.8992401464663 +2023-03-28 01:00:00,19.11362790581642 +2023-03-28 02:00:00,25.48068715270685 +2023-03-28 03:00:00,6.292811107513074 +2023-03-28 04:00:00,26.798438482038044 +2023-03-28 05:00:00,6.34851188629336 +2023-03-28 06:00:00,14.268287577653036 +2023-03-28 07:00:00,28.15981744789932 +2023-03-28 08:00:00,12.00167061444925 +2023-03-28 09:00:00,3.643905080366822 +2023-03-28 10:00:00,0.8285345353950724 +2023-03-28 11:00:00,20.831458263020675 +2023-03-28 12:00:00,17.56230090869665 +2023-03-28 13:00:00,28.56027739928427 +2023-03-28 14:00:00,19.08919006406148 +2023-03-28 15:00:00,7.902828284288493 +2023-03-28 16:00:00,5.272512710333408 +2023-03-28 17:00:00,12.945678618156576 +2023-03-28 18:00:00,24.837861778042747 +2023-03-28 19:00:00,24.5495927498221 +2023-03-28 20:00:00,24.38589264724815 +2023-03-28 21:00:00,9.304559527819418 +2023-03-28 22:00:00,4.638967123978144 +2023-03-28 23:00:00,24.26147972400375 +2023-03-29 00:00:00,1.8401163455097904 +2023-03-29 01:00:00,21.23847318850051 +2023-03-29 02:00:00,20.26976619367427 +2023-03-29 03:00:00,9.09012085532825 +2023-03-29 04:00:00,4.572469106750567 +2023-03-29 05:00:00,25.316151645207288 +2023-03-29 06:00:00,28.735849842465868 +2023-03-29 07:00:00,5.996722104653838 +2023-03-29 08:00:00,15.74865617744239 +2023-03-29 09:00:00,24.029391268665343 +2023-03-29 10:00:00,12.26829492437452 +2023-03-29 11:00:00,23.32320643397117 +2023-03-29 12:00:00,7.9786953118920465 +2023-03-29 13:00:00,28.710739979137447 +2023-03-29 14:00:00,20.992189059634903 +2023-03-29 15:00:00,11.511607043387569 +2023-03-29 16:00:00,8.96194523934366 +2023-03-29 17:00:00,7.754326249291398 +2023-03-29 18:00:00,17.316232278890926 +2023-03-29 19:00:00,7.081820617649016 +2023-03-29 20:00:00,9.220941004784528 +2023-03-29 21:00:00,13.708752629786996 +2023-03-29 22:00:00,1.0579846870580056 +2023-03-29 23:00:00,6.576144978574368 +2023-03-30 00:00:00,17.419494670536007 +2023-03-30 01:00:00,21.410610006819347 +2023-03-30 02:00:00,15.40337896874553 +2023-03-30 03:00:00,8.971761537812439 +2023-03-30 04:00:00,5.74305665744396 +2023-03-30 05:00:00,11.612847297557884 +2023-03-30 06:00:00,18.92203926564973 +2023-03-30 07:00:00,0.3586869214249621 +2023-03-30 08:00:00,14.70541985442441 +2023-03-30 09:00:00,24.256067204205383 +2023-03-30 10:00:00,18.869329364266555 +2023-03-30 11:00:00,29.969031404043587 +2023-03-30 12:00:00,24.791972083612617 +2023-03-30 13:00:00,22.21172981263673 +2023-03-30 14:00:00,10.126427009215131 +2023-03-30 15:00:00,25.76969501729263 +2023-03-30 16:00:00,9.136529842553152 +2023-03-30 17:00:00,26.340548407075413 +2023-03-30 18:00:00,29.674520648531654 +2023-03-30 19:00:00,11.028948785373911 +2023-03-30 20:00:00,26.931806423797514 +2023-03-30 21:00:00,5.215058201017797 +2023-03-30 22:00:00,23.853814662331622 +2023-03-30 23:00:00,16.2149444936073 +2023-03-31 00:00:00,16.360606694290787 +2023-03-31 01:00:00,3.5657490544340065 +2023-03-31 02:00:00,9.829581055256352 +2023-03-31 03:00:00,29.54647431204556 +2023-03-31 04:00:00,1.6448035225059077 +2023-03-31 05:00:00,1.5325986818882786 +2023-03-31 06:00:00,9.3189438623147 +2023-03-31 07:00:00,10.758355852292771 +2023-03-31 08:00:00,26.707491237580907 +2023-03-31 09:00:00,3.931410211200151 +2023-03-31 10:00:00,23.633926880255803 +2023-03-31 11:00:00,15.749281816564242 +2023-03-31 12:00:00,16.616664525064973 +2023-03-31 13:00:00,0.0536169938004083 +2023-03-31 14:00:00,21.610677145332488 +2023-03-31 15:00:00,29.94410322312784 +2023-03-31 16:00:00,28.021065345196696 +2023-03-31 17:00:00,21.416787840323597 +2023-03-31 18:00:00,15.516089915844674 +2023-03-31 19:00:00,23.433453075004373 +2023-03-31 20:00:00,28.31057500280922 +2023-03-31 21:00:00,7.644789075719349 +2023-03-31 22:00:00,23.25285701220509 +2023-03-31 23:00:00,29.18988986947857 +2023-04-01 00:00:00,25.924448137416483 +2023-04-01 01:00:00,22.26445818710325 +2023-04-01 02:00:00,17.671499741562606 +2023-04-01 03:00:00,8.196521940506551 +2023-04-01 04:00:00,8.694842105446886 +2023-04-01 05:00:00,28.362300998251737 +2023-04-01 06:00:00,29.328242192091125 +2023-04-01 07:00:00,19.90362999424995 +2023-04-01 08:00:00,11.77623486403484 +2023-04-01 09:00:00,17.39194360943471 +2023-04-01 10:00:00,3.130419758135595 +2023-04-01 11:00:00,12.250245293710329 +2023-04-01 12:00:00,3.9197372975012232 +2023-04-01 13:00:00,26.23227187737808 +2023-04-01 14:00:00,18.06798040007736 +2023-04-01 15:00:00,6.975789754960672 +2023-04-01 16:00:00,27.96997218452009 +2023-04-01 17:00:00,28.24729744570729 +2023-04-01 18:00:00,15.74609507962558 +2023-04-01 19:00:00,13.334970256080457 +2023-04-01 20:00:00,7.515365395582306 +2023-04-01 21:00:00,19.12874523406205 +2023-04-01 22:00:00,21.49174815161101 +2023-04-01 23:00:00,11.504103027142586 +2023-04-02 00:00:00,14.429187790677524 +2023-04-02 01:00:00,19.346229056381 +2023-04-02 02:00:00,2.3285937576382865 +2023-04-02 03:00:00,20.948043335420603 +2023-04-02 04:00:00,28.003547481837888 +2023-04-02 05:00:00,15.44810710772724 +2023-04-02 06:00:00,26.475341188950694 +2023-04-02 07:00:00,6.011850625666831 +2023-04-02 08:00:00,1.5437050129758756 +2023-04-02 09:00:00,24.25375764334851 +2023-04-02 10:00:00,28.30416000024723 +2023-04-02 11:00:00,14.091349598774045 +2023-04-02 12:00:00,3.497293731253281 +2023-04-02 13:00:00,17.442363195903514 +2023-04-02 14:00:00,24.88909495712887 +2023-04-02 15:00:00,15.27099185657043 +2023-04-02 16:00:00,27.9131451437314 +2023-04-02 17:00:00,20.60482267796917 +2023-04-02 18:00:00,14.388648750876037 +2023-04-02 19:00:00,6.10830144490643 +2023-04-02 20:00:00,5.001563772490351 +2023-04-02 21:00:00,26.93949612997397 +2023-04-02 22:00:00,26.338836024684348 +2023-04-02 23:00:00,9.514535197095942 +2023-04-03 00:00:00,2.6683440853023237 +2023-04-03 01:00:00,19.65334682836029 +2023-04-03 02:00:00,16.379634018788433 +2023-04-03 03:00:00,15.808024774432283 +2023-04-03 04:00:00,15.236852064820464 +2023-04-03 05:00:00,28.70383950498236 +2023-04-03 06:00:00,13.189944123032562 +2023-04-03 07:00:00,10.999773630209612 +2023-04-03 08:00:00,15.588294107943112 +2023-04-03 09:00:00,21.26891813082297 +2023-04-03 10:00:00,9.411804037167146 +2023-04-03 11:00:00,4.231042876026683 +2023-04-03 12:00:00,22.60916572885349 +2023-04-03 13:00:00,29.47095119432714 +2023-04-03 14:00:00,22.863671813920032 +2023-04-03 15:00:00,12.933769698850329 +2023-04-03 16:00:00,8.944422401412332 +2023-04-03 17:00:00,6.436566863290602 +2023-04-03 18:00:00,5.087015946115634 +2023-04-03 19:00:00,1.864068327577784 +2023-04-03 20:00:00,0.9983246550842496 +2023-04-03 21:00:00,0.1433231291654957 +2023-04-03 22:00:00,15.472247748892316 +2023-04-03 23:00:00,18.726930410803774 +2023-04-04 00:00:00,10.067218353041294 +2023-04-04 01:00:00,29.286927560323008 +2023-04-04 02:00:00,5.123617724106381 +2023-04-04 03:00:00,17.456134640641555 +2023-04-04 04:00:00,4.909189154467478 +2023-04-04 05:00:00,8.141241982221786 +2023-04-04 06:00:00,24.82021938160748 +2023-04-04 07:00:00,11.425048225461136 +2023-04-04 08:00:00,11.690166579378229 +2023-04-04 09:00:00,5.063540417478865 +2023-04-04 10:00:00,9.984331696981174 +2023-04-04 11:00:00,13.138381349285538 +2023-04-04 12:00:00,14.039195149741476 +2023-04-04 13:00:00,26.916300777707807 +2023-04-04 14:00:00,3.860727355653182 +2023-04-04 15:00:00,5.482742243924492 +2023-04-04 16:00:00,5.986453628030709 +2023-04-04 17:00:00,3.594580363620712 +2023-04-04 18:00:00,16.729028445991908 +2023-04-04 19:00:00,27.24572508561881 +2023-04-04 20:00:00,5.902028746505668 +2023-04-04 21:00:00,6.494231950644336 +2023-04-04 22:00:00,27.453270742064937 +2023-04-04 23:00:00,8.210633824594654 +2023-04-05 00:00:00,18.19192793491584 +2023-04-05 01:00:00,24.037832008268754 +2023-04-05 02:00:00,25.383506132792174 +2023-04-05 03:00:00,5.789984805556392 +2023-04-05 04:00:00,29.87068397631016 +2023-04-05 05:00:00,19.47103644058351 +2023-04-05 06:00:00,24.60299951256656 +2023-04-05 07:00:00,24.94549987499008 +2023-04-05 08:00:00,25.340591978608348 +2023-04-05 09:00:00,11.102489528869004 +2023-04-05 10:00:00,29.206371990698923 +2023-04-05 11:00:00,15.02205068418984 +2023-04-05 12:00:00,24.366662868057407 +2023-04-05 13:00:00,1.9490549135462052 +2023-04-05 14:00:00,8.013203327386538 +2023-04-05 15:00:00,26.39125107813681 +2023-04-05 16:00:00,28.08638644544257 +2023-04-05 17:00:00,20.206292247504773 +2023-04-05 18:00:00,14.239405731396172 +2023-04-05 19:00:00,7.362372668538124 +2023-04-05 20:00:00,22.41769017138041 +2023-04-05 21:00:00,15.318863903595544 +2023-04-05 22:00:00,4.571263657828625 +2023-04-05 23:00:00,17.653196878905565 +2023-04-06 00:00:00,7.0021244299568695 +2023-04-06 01:00:00,8.715087809506858 +2023-04-06 02:00:00,15.796033620250553 +2023-04-06 03:00:00,0.8620015411984305 +2023-04-06 04:00:00,16.70288432023939 +2023-04-06 05:00:00,1.4285497799371585 +2023-04-06 06:00:00,20.941917787235496 +2023-04-06 07:00:00,20.573477841175 +2023-04-06 08:00:00,22.270011716692014 +2023-04-06 09:00:00,28.40900927478596 +2023-04-06 10:00:00,23.893304523399006 +2023-04-06 11:00:00,19.86378456633077 +2023-04-06 12:00:00,9.301518433265445 +2023-04-06 13:00:00,1.4525313985373067 +2023-04-06 14:00:00,20.79410149539548 +2023-04-06 15:00:00,12.704430574678767 +2023-04-06 16:00:00,1.4704009804969842 +2023-04-06 17:00:00,28.840071375573345 +2023-04-06 18:00:00,5.212602727634984 +2023-04-06 19:00:00,6.336873356687348 +2023-04-06 20:00:00,9.720765677942282 +2023-04-06 21:00:00,15.45036363231937 +2023-04-06 22:00:00,11.671177183401689 +2023-04-06 23:00:00,9.458054151373489 +2023-04-07 00:00:00,20.007735918939343 +2023-04-07 01:00:00,15.806284141836269 +2023-04-07 02:00:00,22.340310854261737 +2023-04-07 03:00:00,1.173795648328193 +2023-04-07 04:00:00,22.593092914800543 +2023-04-07 05:00:00,2.173656871025197 +2023-04-07 06:00:00,18.98926442757257 +2023-04-07 07:00:00,16.006033179812928 +2023-04-07 08:00:00,13.989416037061602 +2023-04-07 09:00:00,23.293125875624792 +2023-04-07 10:00:00,19.849130459971743 +2023-04-07 11:00:00,21.45844478300731 +2023-04-07 12:00:00,26.049876320699568 +2023-04-07 13:00:00,24.13609766650402 +2023-04-07 14:00:00,26.31079792296953 +2023-04-07 15:00:00,0.0742152890503589 +2023-04-07 16:00:00,7.369516572031175 +2023-04-07 17:00:00,6.114436940407685 +2023-04-07 18:00:00,6.391247326742628 +2023-04-07 19:00:00,3.078520837999413 +2023-04-07 20:00:00,8.408033254721813 +2023-04-07 21:00:00,14.918539420128734 +2023-04-07 22:00:00,22.44866012250517 +2023-04-07 23:00:00,4.805246287059647 +2023-04-08 00:00:00,19.10376094052701 +2023-04-08 01:00:00,3.17028295090934 +2023-04-08 02:00:00,22.05610679517722 +2023-04-08 03:00:00,2.8817242304683752 +2023-04-08 04:00:00,3.1346704422609326 +2023-04-08 05:00:00,24.92835441581362 +2023-04-08 06:00:00,12.23134395653508 +2023-04-08 07:00:00,10.479906180541112 +2023-04-08 08:00:00,9.409016802871015 +2023-04-08 09:00:00,15.934454136992988 +2023-04-08 10:00:00,13.524422617687774 +2023-04-08 11:00:00,6.849731193646149 +2023-04-08 12:00:00,26.670257025851072 +2023-04-08 13:00:00,17.64808324804688 +2023-04-08 14:00:00,22.553265097428884 +2023-04-08 15:00:00,3.0520042099886577 +2023-04-08 16:00:00,17.110060786139393 +2023-04-08 17:00:00,9.949650203835125 +2023-04-08 18:00:00,23.531556839337007 +2023-04-08 19:00:00,22.710753722878685 +2023-04-08 20:00:00,20.15638511490457 +2023-04-08 21:00:00,1.803705427316196 +2023-04-08 22:00:00,22.358444679659844 +2023-04-08 23:00:00,2.041041775743037 +2023-04-09 00:00:00,12.326034252568627 +2023-04-09 01:00:00,15.678679089727044 +2023-04-09 02:00:00,1.443784278007375 +2023-04-09 03:00:00,5.8546892722383 +2023-04-09 04:00:00,18.47276250651859 +2023-04-09 05:00:00,5.671871249191314 +2023-04-09 06:00:00,11.453265284235757 +2023-04-09 07:00:00,0.9404317041827914 +2023-04-09 08:00:00,14.032195322316488 +2023-04-09 09:00:00,8.970059127243527 +2023-04-09 10:00:00,26.72408527843156 +2023-04-09 11:00:00,12.397130190546036 +2023-04-09 12:00:00,27.06987771488985 +2023-04-09 13:00:00,9.58635232832455 +2023-04-09 14:00:00,14.11672606570466 +2023-04-09 15:00:00,25.4226632658682 +2023-04-09 16:00:00,28.334169086321182 +2023-04-09 17:00:00,22.88945752325137 +2023-04-09 18:00:00,24.038450423593005 +2023-04-09 19:00:00,19.500089032703524 +2023-04-09 20:00:00,23.905450969126264 +2023-04-09 21:00:00,23.12443918200429 +2023-04-09 22:00:00,26.02462875664801 +2023-04-09 23:00:00,6.178076595362155 +2023-04-10 00:00:00,0.4113127663710036 +2023-04-10 01:00:00,12.391220958559474 +2023-04-10 02:00:00,4.423333115871722 +2023-04-10 03:00:00,27.252713159374125 +2023-04-10 04:00:00,29.06729602058683 +2023-04-10 05:00:00,11.291063511035617 +2023-04-10 06:00:00,12.682633185831705 +2023-04-10 07:00:00,7.500332586982824 +2023-04-10 08:00:00,11.95340988430063 +2023-04-10 09:00:00,16.060105799241057 +2023-04-10 10:00:00,13.26022180570239 +2023-04-10 11:00:00,11.858327360540802 +2023-04-10 12:00:00,8.030354605263085 +2023-04-10 13:00:00,16.283371991505884 +2023-04-10 14:00:00,18.642584639561303 +2023-04-10 15:00:00,28.78801468955453 +2023-04-10 16:00:00,28.133582693969828 +2023-04-10 17:00:00,20.061606581405545 +2023-04-10 18:00:00,20.068424481135047 +2023-04-10 19:00:00,0.4115083103884553 +2023-04-10 20:00:00,14.768254332022018 +2023-04-10 21:00:00,29.160720434110864 +2023-04-10 22:00:00,11.793781724461391 +2023-04-10 23:00:00,3.889523748842497 +2023-04-11 00:00:00,24.83619427792928 +2023-04-11 01:00:00,2.855793348156161 +2023-04-11 02:00:00,28.98530729635191 +2023-04-11 03:00:00,25.816134158000075 +2023-04-11 04:00:00,3.048485013798624 +2023-04-11 05:00:00,6.146554326654531 +2023-04-11 06:00:00,9.624787152500527 +2023-04-11 07:00:00,8.684446370913918 +2023-04-11 08:00:00,11.15474930684379 +2023-04-11 09:00:00,11.742135086951638 +2023-04-11 10:00:00,7.603146408561114 +2023-04-11 11:00:00,25.038539027495585 +2023-04-11 12:00:00,19.90884846745821 +2023-04-11 13:00:00,0.2309406998979923 +2023-04-11 14:00:00,0.0535611029295535 +2023-04-11 15:00:00,9.874400528802369 +2023-04-11 16:00:00,17.454803754478657 +2023-04-11 17:00:00,1.9836628006116064 +2023-04-11 18:00:00,14.780874399741757 +2023-04-11 19:00:00,16.03858200019885 +2023-04-11 20:00:00,0.5387984478892993 +2023-04-11 21:00:00,23.22283074055637 +2023-04-11 22:00:00,3.023215508725532 +2023-04-11 23:00:00,26.397879949900272 +2023-04-12 00:00:00,1.8183766128665124 +2023-04-12 01:00:00,2.6699866854709864 +2023-04-12 02:00:00,11.169832254954898 +2023-04-12 03:00:00,5.679507370518586 +2023-04-12 04:00:00,27.85471777690936 +2023-04-12 05:00:00,27.53837973422513 +2023-04-12 06:00:00,25.77612432866125 +2023-04-12 07:00:00,19.17677747565545 +2023-04-12 08:00:00,4.506016206081041 +2023-04-12 09:00:00,20.891668987017542 +2023-04-12 10:00:00,6.327245166729007 +2023-04-12 11:00:00,29.750867233192647 +2023-04-12 12:00:00,1.8527910840040929 +2023-04-12 13:00:00,23.452081488211164 +2023-04-12 14:00:00,4.409690144834062 +2023-04-12 15:00:00,7.768391693978613 +2023-04-12 16:00:00,11.86179352584044 +2023-04-12 17:00:00,14.751816147661875 +2023-04-12 18:00:00,10.546320821945548 +2023-04-12 19:00:00,0.0481660756905577 +2023-04-12 20:00:00,6.815231915589438 +2023-04-12 21:00:00,2.597808883311342 +2023-04-12 22:00:00,12.538244894580576 +2023-04-12 23:00:00,19.70659680078329 +2023-04-13 00:00:00,3.903793168114318 +2023-04-13 01:00:00,15.09375470561004 +2023-04-13 02:00:00,14.904805214661648 +2023-04-13 03:00:00,15.989974105835971 +2023-04-13 04:00:00,21.03557282772388 +2023-04-13 05:00:00,1.128464092998167 +2023-04-13 06:00:00,5.121093664798017 +2023-04-13 07:00:00,17.44792691024272 +2023-04-13 08:00:00,12.25647572368876 +2023-04-13 09:00:00,29.529305328954347 +2023-04-13 10:00:00,1.7817908258209223 +2023-04-13 11:00:00,1.0320009286941945 +2023-04-13 12:00:00,16.957536543153704 +2023-04-13 13:00:00,0.0912921250956966 +2023-04-13 14:00:00,17.406678849713625 +2023-04-13 15:00:00,24.855937657989823 +2023-04-13 16:00:00,8.840866369277121 +2023-04-13 17:00:00,17.32917621579492 +2023-04-13 18:00:00,10.319123118601144 +2023-04-13 19:00:00,21.829338320816667 +2023-04-13 20:00:00,3.771458613587797 +2023-04-13 21:00:00,8.844090063879463 +2023-04-13 22:00:00,18.708641494144043 +2023-04-13 23:00:00,10.7584668646542 +2023-04-14 00:00:00,19.625340014208632 +2023-04-14 01:00:00,22.89147761066566 +2023-04-14 02:00:00,18.307542407167944 +2023-04-14 03:00:00,9.823735662728485 +2023-04-14 04:00:00,2.9403271241304365 +2023-04-14 05:00:00,12.940336539507168 +2023-04-14 06:00:00,21.28280191635949 +2023-04-14 07:00:00,6.082573563982056 +2023-04-14 08:00:00,20.327379791533957 +2023-04-14 09:00:00,14.233189550490833 +2023-04-14 10:00:00,12.12928539525724 +2023-04-14 11:00:00,18.77360191168685 +2023-04-14 12:00:00,27.92245338922057 +2023-04-14 13:00:00,29.047320765559803 +2023-04-14 14:00:00,6.046271630673354 +2023-04-14 15:00:00,15.290029384343931 +2023-04-14 16:00:00,14.930101031601591 +2023-04-14 17:00:00,8.601791578401379 +2023-04-14 18:00:00,7.877944422798521 +2023-04-14 19:00:00,22.236764347296354 +2023-04-14 20:00:00,1.5503684982414134 +2023-04-14 21:00:00,8.715565904871669 +2023-04-14 22:00:00,16.658870746496675 +2023-04-14 23:00:00,28.61272034359064 +2023-04-15 00:00:00,20.601438748331045 +2023-04-15 01:00:00,28.289837667997823 +2023-04-15 02:00:00,4.588303460209849 +2023-04-15 03:00:00,15.87051356838358 +2023-04-15 04:00:00,29.41495780726344 +2023-04-15 05:00:00,3.869766322386811 +2023-04-15 06:00:00,10.676057631532926 +2023-04-15 07:00:00,27.1650668794183 +2023-04-15 08:00:00,16.95352966217036 +2023-04-15 09:00:00,3.556196510667996 +2023-04-15 10:00:00,3.2527718833606367 +2023-04-15 11:00:00,19.6481789931203 +2023-04-15 12:00:00,17.930440060851794 +2023-04-15 13:00:00,26.05515188074689 +2023-04-15 14:00:00,9.788675226812368 +2023-04-15 15:00:00,14.324789776259632 +2023-04-15 16:00:00,23.24580614237208 +2023-04-15 17:00:00,17.8532736007972 +2023-04-15 18:00:00,11.449129924275065 +2023-04-15 19:00:00,28.59682418735873 +2023-04-15 20:00:00,2.546360119154273 +2023-04-15 21:00:00,0.9651890902182536 +2023-04-15 22:00:00,15.870031333053785 +2023-04-15 23:00:00,29.284005983993477 +2023-04-16 00:00:00,25.148218505632663 +2023-04-16 01:00:00,13.41555176980912 +2023-04-16 02:00:00,1.1103879232319014 +2023-04-16 03:00:00,6.908226642083236 +2023-04-16 04:00:00,18.47975635076886 +2023-04-16 05:00:00,26.943466013117558 +2023-04-16 06:00:00,12.544646897616278 +2023-04-16 07:00:00,2.144768129302721 +2023-04-16 08:00:00,8.228705770259715 +2023-04-16 09:00:00,13.37666044213776 +2023-04-16 10:00:00,13.550011913452064 +2023-04-16 11:00:00,5.076624402258116 +2023-04-16 12:00:00,28.890006371517824 +2023-04-16 13:00:00,6.669718045968166 +2023-04-16 14:00:00,11.749884813061035 +2023-04-16 15:00:00,19.997936826381537 +2023-04-16 16:00:00,16.49398475581067 +2023-04-16 17:00:00,2.4100028061691345 +2023-04-16 18:00:00,21.29597776038224 +2023-04-16 19:00:00,1.277821137904105 +2023-04-16 20:00:00,28.206866993848063 +2023-04-16 21:00:00,20.33848854911134 +2023-04-16 22:00:00,1.6710791543236714 +2023-04-16 23:00:00,10.348765293001373 +2023-04-17 00:00:00,29.978613904455557 +2023-04-17 01:00:00,23.11437672958448 +2023-04-17 02:00:00,21.477937600453394 +2023-04-17 03:00:00,20.695068777045027 +2023-04-17 04:00:00,26.80368664710917 +2023-04-17 05:00:00,13.06286295283681 +2023-04-17 06:00:00,16.965638380033184 +2023-04-17 07:00:00,19.070113709950864 +2023-04-17 08:00:00,3.5295674462952897 +2023-04-17 09:00:00,29.017127637365224 +2023-04-17 10:00:00,4.733703647258914 +2023-04-17 11:00:00,1.4741933902299809 +2023-04-17 12:00:00,26.640517928345204 +2023-04-17 13:00:00,0.3421787355869798 +2023-04-17 14:00:00,1.1446303840649852 +2023-04-17 15:00:00,2.5708784195715984 +2023-04-17 16:00:00,5.841150045540775 +2023-04-17 17:00:00,12.93342223199526 +2023-04-17 18:00:00,11.026716913556251 +2023-04-17 19:00:00,8.552035431139993 +2023-04-17 20:00:00,6.641578650459573 +2023-04-17 21:00:00,1.3390162291823535 +2023-04-17 22:00:00,6.579820619312188 +2023-04-17 23:00:00,7.537851376990194 +2023-04-18 00:00:00,8.41406748411781 +2023-04-18 01:00:00,2.0709007250117817 +2023-04-18 02:00:00,3.139913086869485 +2023-04-18 03:00:00,5.125982439756292 +2023-04-18 04:00:00,15.86640234099248 +2023-04-18 05:00:00,22.003281764033208 +2023-04-18 06:00:00,23.26912721890597 +2023-04-18 07:00:00,26.306257633098745 +2023-04-18 08:00:00,18.13773988602914 +2023-04-18 09:00:00,9.112718793620209 +2023-04-18 10:00:00,22.628782496420037 +2023-04-18 11:00:00,14.385433389630805 +2023-04-18 12:00:00,6.3388102604284935 +2023-04-18 13:00:00,17.476173019637116 +2023-04-18 14:00:00,8.112148065552242 +2023-04-18 15:00:00,21.73733825555429 +2023-04-18 16:00:00,8.637824429469735 +2023-04-18 17:00:00,11.293321996701296 +2023-04-18 18:00:00,19.47891568003235 +2023-04-18 19:00:00,21.374291305496985 +2023-04-18 20:00:00,16.416541803315823 +2023-04-18 21:00:00,16.381464254614944 +2023-04-18 22:00:00,6.747951095237383 +2023-04-18 23:00:00,16.411453532386165 +2023-04-19 00:00:00,1.2637703919298504 +2023-04-19 01:00:00,7.592223160102117 +2023-04-19 02:00:00,26.091314498402333 +2023-04-19 03:00:00,4.21123308176313 +2023-04-19 04:00:00,6.719772203847762 +2023-04-19 05:00:00,8.90038030684331 +2023-04-19 06:00:00,9.161065131430847 +2023-04-19 07:00:00,11.353994931440656 +2023-04-19 08:00:00,12.678861127577784 +2023-04-19 09:00:00,21.64004838966004 +2023-04-19 10:00:00,22.60636969411422 +2023-04-19 11:00:00,23.95328547824637 +2023-04-19 12:00:00,26.038432656596925 +2023-04-19 13:00:00,23.25761985075049 +2023-04-19 14:00:00,9.80858245167458 +2023-04-19 15:00:00,26.461889169807925 +2023-04-19 16:00:00,14.187641963371249 +2023-04-19 17:00:00,27.43612119130248 +2023-04-19 18:00:00,17.01123686537152 +2023-04-19 19:00:00,14.131630727955889 +2023-04-19 20:00:00,0.953280977689227 +2023-04-19 21:00:00,19.723564092005248 +2023-04-19 22:00:00,4.033539568922531 +2023-04-19 23:00:00,6.983586373715723 +2023-04-20 00:00:00,27.407178787944574 +2023-04-20 01:00:00,26.63155902076574 +2023-04-20 02:00:00,5.2656953614939646 +2023-04-20 03:00:00,19.876437855384584 +2023-04-20 04:00:00,3.713154100116458 +2023-04-20 05:00:00,27.39032956055609 +2023-04-20 06:00:00,6.335177209705315 +2023-04-20 07:00:00,10.055558602553598 +2023-04-20 08:00:00,1.678296336060172 +2023-04-20 09:00:00,19.02094685629081 +2023-04-20 10:00:00,19.9567206333488 +2023-04-20 11:00:00,11.085450469447837 +2023-04-20 12:00:00,12.526557121500304 +2023-04-20 13:00:00,0.4613307138375078 +2023-04-20 14:00:00,17.6631269403603 +2023-04-20 15:00:00,8.411498125574058 +2023-04-20 16:00:00,8.66142943694456 +2023-04-20 17:00:00,25.191564660302728 +2023-04-20 18:00:00,0.3921784666638905 +2023-04-20 19:00:00,4.317261447732844 +2023-04-20 20:00:00,14.007951621265589 +2023-04-20 21:00:00,11.370765406393746 +2023-04-20 22:00:00,27.766588031503687 +2023-04-20 23:00:00,0.8282637238411639 +2023-04-21 00:00:00,24.875621589321277 +2023-04-21 01:00:00,1.116795110426826 +2023-04-21 02:00:00,3.984935991501426 +2023-04-21 03:00:00,18.291971545866065 +2023-04-21 04:00:00,2.637769388572312 +2023-04-21 05:00:00,21.1392539905854 +2023-04-21 06:00:00,20.677050564111656 +2023-04-21 07:00:00,9.348767495831796 +2023-04-21 08:00:00,29.03621618739894 +2023-04-21 09:00:00,2.326316049224851 +2023-04-21 10:00:00,3.879155846086455 +2023-04-21 11:00:00,22.542146064207916 +2023-04-21 12:00:00,14.200964293889374 +2023-04-21 13:00:00,4.611045843688824 +2023-04-21 14:00:00,28.409528630695792 +2023-04-21 15:00:00,3.005676449210588 +2023-04-21 16:00:00,15.62962931896182 +2023-04-21 17:00:00,5.6668910033325375 +2023-04-21 18:00:00,16.293756383562197 +2023-04-21 19:00:00,13.249363100596806 +2023-04-21 20:00:00,23.884984402485884 +2023-04-21 21:00:00,23.974477167062545 +2023-04-21 22:00:00,11.390836900647868 +2023-04-21 23:00:00,5.154334991213947 +2023-04-22 00:00:00,0.3496141461387791 +2023-04-22 01:00:00,10.956767868914016 +2023-04-22 02:00:00,28.262975102474904 +2023-04-22 03:00:00,7.548366793148582 +2023-04-22 04:00:00,28.11544034534618 +2023-04-22 05:00:00,18.73576230653911 +2023-04-22 06:00:00,2.1865122726037622 +2023-04-22 07:00:00,15.931292177192663 +2023-04-22 08:00:00,14.023797767696884 +2023-04-22 09:00:00,23.15759016371961 +2023-04-22 10:00:00,4.206274614038699 +2023-04-22 11:00:00,17.840112977688182 +2023-04-22 12:00:00,25.770054775028143 +2023-04-22 13:00:00,12.320240704163224 +2023-04-22 14:00:00,24.86295030556496 +2023-04-22 15:00:00,5.481897955189307 +2023-04-22 16:00:00,23.60129669255775 +2023-04-22 17:00:00,5.0143412885696055 +2023-04-22 18:00:00,20.46450782794449 +2023-04-22 19:00:00,14.190255467966844 +2023-04-22 20:00:00,13.29505791186116 +2023-04-22 21:00:00,13.462887940541506 +2023-04-22 22:00:00,17.884877078751792 +2023-04-22 23:00:00,0.5364872946544552 +2023-04-23 00:00:00,6.408916768927769 +2023-04-23 01:00:00,14.997851684070518 +2023-04-23 02:00:00,8.100861855702982 +2023-04-23 03:00:00,25.506612934995992 +2023-04-23 04:00:00,19.12526353636669 +2023-04-23 05:00:00,3.4231808832479027 +2023-04-23 06:00:00,23.056735562268848 +2023-04-23 07:00:00,25.7134288546236 +2023-04-23 08:00:00,10.379197446276914 +2023-04-23 09:00:00,16.655980329234296 +2023-04-23 10:00:00,20.36114349216761 +2023-04-23 11:00:00,22.299594813041 +2023-04-23 12:00:00,4.181058658473841 +2023-04-23 13:00:00,3.47265310373599 +2023-04-23 14:00:00,13.778516169545242 +2023-04-23 15:00:00,11.119664036046132 +2023-04-23 16:00:00,29.189300412986345 +2023-04-23 17:00:00,15.83321205845578 +2023-04-23 18:00:00,4.585563924952693 +2023-04-23 19:00:00,1.6371134505019358 +2023-04-23 20:00:00,1.6077544973355615 +2023-04-23 21:00:00,28.01125537860749 +2023-04-23 22:00:00,18.99730840305186 +2023-04-23 23:00:00,20.425140576057814 +2023-04-24 00:00:00,12.173305766687015 +2023-04-24 01:00:00,20.43125855298968 +2023-04-24 02:00:00,19.19927119589193 +2023-04-24 03:00:00,3.2165364931760063 +2023-04-24 04:00:00,20.017058326795024 +2023-04-24 05:00:00,1.3275894809047195 +2023-04-24 06:00:00,19.4895794927688 +2023-04-24 07:00:00,17.100398854408795 +2023-04-24 08:00:00,8.727914383288171 +2023-04-24 09:00:00,22.37734729461621 +2023-04-24 10:00:00,19.48959574841952 +2023-04-24 11:00:00,8.02086044932853 +2023-04-24 12:00:00,28.734819402270663 +2023-04-24 13:00:00,17.270226474474264 +2023-04-24 14:00:00,3.7067436121013966 +2023-04-24 15:00:00,10.091357602926838 +2023-04-24 16:00:00,13.712123913432876 +2023-04-24 17:00:00,16.533231799166312 +2023-04-24 18:00:00,22.401458142704897 +2023-04-24 19:00:00,8.563011302000426 +2023-04-24 20:00:00,21.043194167455933 +2023-04-24 21:00:00,19.40410535175605 +2023-04-24 22:00:00,28.91196291393541 +2023-04-24 23:00:00,20.22021574299168 +2023-04-25 00:00:00,5.1133034351754825 +2023-04-25 01:00:00,14.025274624535388 +2023-04-25 02:00:00,11.118004135430512 +2023-04-25 03:00:00,18.05616162328699 +2023-04-25 04:00:00,9.676350290316812 +2023-04-25 05:00:00,7.794764510693036 +2023-04-25 06:00:00,4.906310254176712 +2023-04-25 07:00:00,0.8697663466418426 +2023-04-25 08:00:00,11.79667562412399 +2023-04-25 09:00:00,26.667776837539257 +2023-04-25 10:00:00,8.428279590247422 +2023-04-25 11:00:00,25.16129880429992 +2023-04-25 12:00:00,3.5437631180145623 +2023-04-25 13:00:00,15.354605049928804 +2023-04-25 14:00:00,13.291020273997049 +2023-04-25 15:00:00,26.593853418167637 +2023-04-25 16:00:00,21.132469114440006 +2023-04-25 17:00:00,23.19579839198209 +2023-04-25 18:00:00,24.86032361898591 +2023-04-25 19:00:00,17.272950372522487 +2023-04-25 20:00:00,19.329276653810613 +2023-04-25 21:00:00,4.557781898713697 +2023-04-25 22:00:00,20.6270359286081 +2023-04-25 23:00:00,23.72370881330426 +2023-04-26 00:00:00,7.017171517832351 +2023-04-26 01:00:00,21.89273023553056 +2023-04-26 02:00:00,7.307789337020973 +2023-04-26 03:00:00,14.3985117034053 +2023-04-26 04:00:00,9.321773824120571 +2023-04-26 05:00:00,20.696836744707905 +2023-04-26 06:00:00,28.678188211405622 +2023-04-26 07:00:00,15.498328849680927 +2023-04-26 08:00:00,23.65233957137813 +2023-04-26 09:00:00,5.814444237060517 +2023-04-26 10:00:00,1.218466215071634 +2023-04-26 11:00:00,18.072464861972524 +2023-04-26 12:00:00,6.611524958859038 +2023-04-26 13:00:00,11.667696550606196 +2023-04-26 14:00:00,13.566426775312475 +2023-04-26 15:00:00,1.417751001880757 +2023-04-26 16:00:00,21.26747681433478 +2023-04-26 17:00:00,5.239975444307286 +2023-04-26 18:00:00,29.56666841349908 +2023-04-26 19:00:00,3.8504580967352102 +2023-04-26 20:00:00,27.184022587218053 +2023-04-26 21:00:00,19.54085775850591 +2023-04-26 22:00:00,12.84927458897254 +2023-04-26 23:00:00,1.428136189553224 +2023-04-27 00:00:00,1.5881421410418617 +2023-04-27 01:00:00,1.851431250254143 +2023-04-27 02:00:00,13.209584091782244 +2023-04-27 03:00:00,20.925335812461945 +2023-04-27 04:00:00,4.320339983047169 +2023-04-27 05:00:00,24.664942473979327 +2023-04-27 06:00:00,16.837365212172593 +2023-04-27 07:00:00,27.85407136508169 +2023-04-27 08:00:00,16.393551311409787 +2023-04-27 09:00:00,25.13207212140144 +2023-04-27 10:00:00,12.739871624312473 +2023-04-27 11:00:00,28.58678010715622 +2023-04-27 12:00:00,29.091377370066 +2023-04-27 13:00:00,4.463844870746495 +2023-04-27 14:00:00,1.0556532574806132 +2023-04-27 15:00:00,1.379702069814922 +2023-04-27 16:00:00,3.279568413546267 +2023-04-27 17:00:00,12.378565878135738 +2023-04-27 18:00:00,19.74522735245035 +2023-04-27 19:00:00,6.514291348731712 +2023-04-27 20:00:00,19.773409514836807 +2023-04-27 21:00:00,20.13510675383961 +2023-04-27 22:00:00,15.431456965964909 +2023-04-27 23:00:00,23.449727187923195 +2023-04-28 00:00:00,11.789782427265584 +2023-04-28 01:00:00,3.401744654291201 +2023-04-28 02:00:00,21.5630967169092 +2023-04-28 03:00:00,23.996546389965683 +2023-04-28 04:00:00,21.83321911416965 +2023-04-28 05:00:00,26.115101174951693 +2023-04-28 06:00:00,23.909496058553355 +2023-04-28 07:00:00,3.8279749039245337 +2023-04-28 08:00:00,3.852183921337049 +2023-04-28 09:00:00,27.83461402958079 +2023-04-28 10:00:00,24.833796522444025 +2023-04-28 11:00:00,16.128487310560374 +2023-04-28 12:00:00,20.41745435370271 +2023-04-28 13:00:00,3.937976591306106 +2023-04-28 14:00:00,13.045309062169808 +2023-04-28 15:00:00,17.862685973660962 +2023-04-28 16:00:00,24.80993337183983 +2023-04-28 17:00:00,26.649862898342334 +2023-04-28 18:00:00,23.512792533625213 +2023-04-28 19:00:00,20.698171277571102 +2023-04-28 20:00:00,8.519709392894159 +2023-04-28 21:00:00,5.278437603065649 +2023-04-28 22:00:00,2.1644769321892534 +2023-04-28 23:00:00,29.42498851660651 +2023-04-29 00:00:00,11.85706757028958 +2023-04-29 01:00:00,18.807316320702007 +2023-04-29 02:00:00,8.150511788729277 +2023-04-29 03:00:00,26.442857949798128 +2023-04-29 04:00:00,16.808672974065658 +2023-04-29 05:00:00,21.59380976811796 +2023-04-29 06:00:00,20.658144080870517 +2023-04-29 07:00:00,3.590904736953457 +2023-04-29 08:00:00,8.135317642591456 +2023-04-29 09:00:00,14.626674158946862 +2023-04-29 10:00:00,21.56280832635244 +2023-04-29 11:00:00,29.17598356179577 +2023-04-29 12:00:00,18.863422039678863 +2023-04-29 13:00:00,16.42260650922322 +2023-04-29 14:00:00,15.638298404196366 +2023-04-29 15:00:00,27.47142049818504 +2023-04-29 16:00:00,11.818912318620503 +2023-04-29 17:00:00,5.636695319432633 +2023-04-29 18:00:00,29.39592070984462 +2023-04-29 19:00:00,5.4902481818792594 +2023-04-29 20:00:00,29.47203085707559 +2023-04-29 21:00:00,24.3024422956369 +2023-04-29 22:00:00,18.102724165553 +2023-04-29 23:00:00,0.0988576466950552 +2023-04-30 00:00:00,9.842172526243925 +2023-04-30 01:00:00,10.73338505240486 +2023-04-30 02:00:00,29.63032054716397 +2023-04-30 03:00:00,7.216612189088334 +2023-04-30 04:00:00,29.50744535874096 +2023-04-30 05:00:00,29.33038750380321 +2023-04-30 06:00:00,10.195405469511211 +2023-04-30 07:00:00,4.214970220158386 +2023-04-30 08:00:00,13.1918518326064 +2023-04-30 09:00:00,6.7316055221820665 +2023-04-30 10:00:00,21.34687317371568 +2023-04-30 11:00:00,15.612731772461713 +2023-04-30 12:00:00,22.30287846493218 +2023-04-30 13:00:00,20.72101418278227 +2023-04-30 14:00:00,20.653671515282333 +2023-04-30 15:00:00,8.24143091466366 +2023-04-30 16:00:00,8.77041790116868 +2023-04-30 17:00:00,11.191407023900137 +2023-04-30 18:00:00,22.055742174146477 +2023-04-30 19:00:00,11.051847878087392 +2023-04-30 20:00:00,11.998491378701452 +2023-04-30 21:00:00,16.170245156573156 +2023-04-30 22:00:00,29.91817925637169 +2023-04-30 23:00:00,10.047380318101578 +2023-05-01 00:00:00,0.4923099859426239 +2023-05-01 01:00:00,8.788010936090414 +2023-05-01 02:00:00,6.781326174790003 +2023-05-01 03:00:00,14.3963855801372 +2023-05-01 04:00:00,28.36425047676866 +2023-05-01 05:00:00,9.071261670779656 +2023-05-01 06:00:00,2.9822831257680016 +2023-05-01 07:00:00,18.073436358226928 +2023-05-01 08:00:00,10.74625742630834 +2023-05-01 09:00:00,17.80163852000281 +2023-05-01 10:00:00,28.18652476243076 +2023-05-01 11:00:00,3.341155587064893 +2023-05-01 12:00:00,24.84919618985812 +2023-05-01 13:00:00,22.103293570522972 +2023-05-01 14:00:00,0.1832306124138116 +2023-05-01 15:00:00,12.460367537332116 +2023-05-01 16:00:00,24.1833008555122 +2023-05-01 17:00:00,2.3521477327260665 +2023-05-01 18:00:00,21.968151573377693 +2023-05-01 19:00:00,10.479687461777749 +2023-05-01 20:00:00,28.426046719301063 +2023-05-01 21:00:00,12.509857539532277 +2023-05-01 22:00:00,2.042898476248016 +2023-05-01 23:00:00,17.94426121535655 +2023-05-02 00:00:00,2.948788046004803 +2023-05-02 01:00:00,7.303477036664305 +2023-05-02 02:00:00,8.362042931288459 +2023-05-02 03:00:00,29.97143007267911 +2023-05-02 04:00:00,10.785142053030851 +2023-05-02 05:00:00,24.00740398163219 +2023-05-02 06:00:00,12.729980809436498 +2023-05-02 07:00:00,23.207583256005595 +2023-05-02 08:00:00,26.12378434796192 +2023-05-02 09:00:00,25.050993107391918 +2023-05-02 10:00:00,21.285008856119426 +2023-05-02 11:00:00,24.67702305803006 +2023-05-02 12:00:00,3.8448836362629537 +2023-05-02 13:00:00,26.5268911300801 +2023-05-02 14:00:00,2.6555707215523485 +2023-05-02 15:00:00,17.84820620874589 +2023-05-02 16:00:00,9.621888504319994 +2023-05-02 17:00:00,15.786635533343045 +2023-05-02 18:00:00,17.144303126075283 +2023-05-02 19:00:00,3.887991989674725 +2023-05-02 20:00:00,24.88478009020251 +2023-05-02 21:00:00,7.602280880570934 +2023-05-02 22:00:00,19.691490975926587 +2023-05-02 23:00:00,21.298468734419785 +2023-05-03 00:00:00,5.811865253742767 +2023-05-03 01:00:00,0.7181878255909113 +2023-05-03 02:00:00,2.0171841771257784 +2023-05-03 03:00:00,14.95527073745784 +2023-05-03 04:00:00,6.174582653706136 +2023-05-03 05:00:00,19.907811817272957 +2023-05-03 06:00:00,26.35392733521889 +2023-05-03 07:00:00,22.459377210861696 +2023-05-03 08:00:00,12.926472597177684 +2023-05-03 09:00:00,3.1747881711362536 +2023-05-03 10:00:00,10.09765262060282 +2023-05-03 11:00:00,22.86844577184379 +2023-05-03 12:00:00,12.407191847949695 +2023-05-03 13:00:00,4.888684038416088 +2023-05-03 14:00:00,20.5067220728512 +2023-05-03 15:00:00,20.41471159235265 +2023-05-03 16:00:00,26.16408651526292 +2023-05-03 17:00:00,15.521406096686563 +2023-05-03 18:00:00,16.66518732904608 +2023-05-03 19:00:00,1.997697460654787 +2023-05-03 20:00:00,17.792380434894824 +2023-05-03 21:00:00,29.624797103500946 +2023-05-03 22:00:00,17.52146595591146 +2023-05-03 23:00:00,24.596217904489134 +2023-05-04 00:00:00,26.12000142595378 +2023-05-04 01:00:00,28.68196801879273 +2023-05-04 02:00:00,20.71155081157777 +2023-05-04 03:00:00,17.520726430605635 +2023-05-04 04:00:00,12.992658790218648 +2023-05-04 05:00:00,21.167610149004037 +2023-05-04 06:00:00,14.116454652741034 +2023-05-04 07:00:00,19.777594779459385 +2023-05-04 08:00:00,10.001692483629522 +2023-05-04 09:00:00,20.050886667706905 +2023-05-04 10:00:00,13.050164181576958 +2023-05-04 11:00:00,18.61707459665261 +2023-05-04 12:00:00,18.44062909316732 +2023-05-04 13:00:00,3.072910712871754 +2023-05-04 14:00:00,23.71278300369085 +2023-05-04 15:00:00,6.637029131246227 +2023-05-04 16:00:00,25.4725158209476 +2023-05-04 17:00:00,22.87276174149006 +2023-05-04 18:00:00,16.72492062552114 +2023-05-04 19:00:00,29.6238518264492 +2023-05-04 20:00:00,18.74194004028717 +2023-05-04 21:00:00,1.382211710457223 +2023-05-04 22:00:00,3.2097043471682896 +2023-05-04 23:00:00,8.572009411399698 +2023-05-05 00:00:00,12.743562500010665 +2023-05-05 01:00:00,9.368610812981958 +2023-05-05 02:00:00,0.2594083512063672 +2023-05-05 03:00:00,8.791776702358744 +2023-05-05 04:00:00,4.418042829685108 +2023-05-05 05:00:00,3.0931564975794013 +2023-05-05 06:00:00,4.714382388163697 +2023-05-05 07:00:00,25.927085819349667 +2023-05-05 08:00:00,4.470382417224121 +2023-05-05 09:00:00,13.67804835453679 +2023-05-05 10:00:00,15.085736304757464 +2023-05-05 11:00:00,16.44750264620204 +2023-05-05 12:00:00,16.880410906420327 +2023-05-05 13:00:00,23.038996931550336 +2023-05-05 14:00:00,26.26523677595081 +2023-05-05 15:00:00,0.8663316265029297 +2023-05-05 16:00:00,9.823000096388885 +2023-05-05 17:00:00,18.62243402487951 +2023-05-05 18:00:00,23.5158364794133 +2023-05-05 19:00:00,18.3817725087925 +2023-05-05 20:00:00,29.169240608358244 +2023-05-05 21:00:00,8.40198437458768 +2023-05-05 22:00:00,6.642844205494272 +2023-05-05 23:00:00,27.142568569973697 +2023-05-06 00:00:00,29.77512662089283 +2023-05-06 01:00:00,14.668792917857234 +2023-05-06 02:00:00,23.13969964795593 +2023-05-06 03:00:00,23.683472972139214 +2023-05-06 04:00:00,1.364993502419729 +2023-05-06 05:00:00,27.417034034001897 +2023-05-06 06:00:00,22.240968023809504 +2023-05-06 07:00:00,23.415219921356123 +2023-05-06 08:00:00,16.218618807860267 +2023-05-06 09:00:00,16.433855651239288 +2023-05-06 10:00:00,4.460168430097571 +2023-05-06 11:00:00,1.9298165111718524 +2023-05-06 12:00:00,2.664718781056284 +2023-05-06 13:00:00,18.622380322642204 +2023-05-06 14:00:00,19.101916425199423 +2023-05-06 15:00:00,13.422206185538762 +2023-05-06 16:00:00,20.790784351633043 +2023-05-06 17:00:00,0.1181906403799493 +2023-05-06 18:00:00,7.987477278883458 +2023-05-06 19:00:00,4.468268765642106 +2023-05-06 20:00:00,24.877235129614167 +2023-05-06 21:00:00,16.46698026332867 +2023-05-06 22:00:00,22.113187687034017 +2023-05-06 23:00:00,16.65165241392094 +2023-05-07 00:00:00,1.6904167618398191 +2023-05-07 01:00:00,2.3448209809730525 +2023-05-07 02:00:00,25.091046729002382 +2023-05-07 03:00:00,8.166382927904486 +2023-05-07 04:00:00,3.74904461535112 +2023-05-07 05:00:00,13.11851113137482 +2023-05-07 06:00:00,25.04212442088751 +2023-05-07 07:00:00,16.38638555971347 +2023-05-07 08:00:00,7.034657888597657 +2023-05-07 09:00:00,27.85403037058929 +2023-05-07 10:00:00,28.774608825486908 +2023-05-07 11:00:00,13.966719478175191 +2023-05-07 12:00:00,8.940418973461385 +2023-05-07 13:00:00,9.155462246224692 +2023-05-07 14:00:00,7.461218941635412 +2023-05-07 15:00:00,10.948884172390134 +2023-05-07 16:00:00,20.02168757448717 +2023-05-07 17:00:00,24.49486015519572 +2023-05-07 18:00:00,18.025645868306352 +2023-05-07 19:00:00,19.24442728540413 +2023-05-07 20:00:00,26.772853081748963 +2023-05-07 21:00:00,0.1790439800234966 +2023-05-07 22:00:00,29.177623064331843 +2023-05-07 23:00:00,3.991692057430816 +2023-05-08 00:00:00,11.59461407903414 +2023-05-08 01:00:00,24.06177129209702 +2023-05-08 02:00:00,1.447943779370059 +2023-05-08 03:00:00,17.405120824938752 +2023-05-08 04:00:00,22.26664393264251 +2023-05-08 05:00:00,11.846331718233174 +2023-05-08 06:00:00,13.66935301930267 +2023-05-08 07:00:00,5.780478304353734 +2023-05-08 08:00:00,9.29467986650809 +2023-05-08 09:00:00,8.582195632117676 +2023-05-08 10:00:00,4.825637094025097 +2023-05-08 11:00:00,26.91467398701831 +2023-05-08 12:00:00,28.83776379088225 +2023-05-08 13:00:00,3.34145275569945 +2023-05-08 14:00:00,13.540499116415818 +2023-05-08 15:00:00,29.158985342528485 +2023-05-08 16:00:00,10.499600386829226 +2023-05-08 17:00:00,16.416446474825346 +2023-05-08 18:00:00,10.204546654736877 +2023-05-08 19:00:00,15.190314887254887 +2023-05-08 20:00:00,19.427152299150386 +2023-05-08 21:00:00,4.629047668173135 +2023-05-08 22:00:00,11.089050270152056 +2023-05-08 23:00:00,21.966548455658483 +2023-05-09 00:00:00,9.331124900639916 +2023-05-09 01:00:00,9.484209178064065 +2023-05-09 02:00:00,17.454314289809563 +2023-05-09 03:00:00,10.127976934148837 +2023-05-09 04:00:00,4.9873387090146695 +2023-05-09 05:00:00,25.64151898421377 +2023-05-09 06:00:00,9.20704173268871 +2023-05-09 07:00:00,7.034870748938511 +2023-05-09 08:00:00,9.773210333865132 +2023-05-09 09:00:00,29.31065675178805 +2023-05-09 10:00:00,5.871959739837922 +2023-05-09 11:00:00,23.2141048301563 +2023-05-09 12:00:00,8.379456026524073 +2023-05-09 13:00:00,23.399565921531032 +2023-05-09 14:00:00,1.5944462250323654 +2023-05-09 15:00:00,14.551518126556148 +2023-05-09 16:00:00,27.39264326874767 +2023-05-09 17:00:00,26.972153802740035 +2023-05-09 18:00:00,20.564676153407422 +2023-05-09 19:00:00,22.974865908440098 +2023-05-09 20:00:00,27.55131217751988 +2023-05-09 21:00:00,18.5988544111078 +2023-05-09 22:00:00,2.0068130035618816 +2023-05-09 23:00:00,7.11095418406601 +2023-05-10 00:00:00,7.1364389470756375 +2023-05-10 01:00:00,11.670258886941848 +2023-05-10 02:00:00,16.912104402060503 +2023-05-10 03:00:00,20.673696364671816 +2023-05-10 04:00:00,5.1974015695485605 +2023-05-10 05:00:00,4.794213794304461 +2023-05-10 06:00:00,20.416363629841488 +2023-05-10 07:00:00,13.753589373278055 +2023-05-10 08:00:00,29.405832811580712 +2023-05-10 09:00:00,18.61572059937543 +2023-05-10 10:00:00,22.47002546386876 +2023-05-10 11:00:00,25.37035208028489 +2023-05-10 12:00:00,27.94186563488599 +2023-05-10 13:00:00,1.392440078486309 +2023-05-10 14:00:00,27.2149296435638 +2023-05-10 15:00:00,29.47528450080308 +2023-05-10 16:00:00,17.427472913260747 +2023-05-10 17:00:00,9.241347291305102 +2023-05-10 18:00:00,5.495257208607001 +2023-05-10 19:00:00,27.670218573085567 +2023-05-10 20:00:00,25.73391252239784 +2023-05-10 21:00:00,19.677225050488907 +2023-05-10 22:00:00,0.3517277483467895 +2023-05-10 23:00:00,8.59874124095817 +2023-05-11 00:00:00,21.190997288394417 +2023-05-11 01:00:00,22.454320189141207 +2023-05-11 02:00:00,27.92900270260426 +2023-05-11 03:00:00,3.696304568161354 +2023-05-11 04:00:00,24.00746586765316 +2023-05-11 05:00:00,29.72941462800972 +2023-05-11 06:00:00,13.757522097278631 +2023-05-11 07:00:00,0.2284184895518204 +2023-05-11 08:00:00,7.732480554976513 +2023-05-11 09:00:00,20.093196858885097 +2023-05-11 10:00:00,27.142558763042917 +2023-05-11 11:00:00,27.156483366222325 +2023-05-11 12:00:00,6.302714246257154 +2023-05-11 13:00:00,11.595863393916776 +2023-05-11 14:00:00,12.9903340731495 +2023-05-11 15:00:00,20.60229543448902 +2023-05-11 16:00:00,22.3492750999558 +2023-05-11 17:00:00,18.799282029929817 +2023-05-11 18:00:00,2.0314372395442906 +2023-05-11 19:00:00,24.960011172668075 +2023-05-11 20:00:00,7.127776149608359 +2023-05-11 21:00:00,11.54605952416108 +2023-05-11 22:00:00,9.89310339821998 +2023-05-11 23:00:00,1.3458811613675237 +2023-05-12 00:00:00,1.1371577095693186 +2023-05-12 01:00:00,21.023796906153 +2023-05-12 02:00:00,0.181145101469683 +2023-05-12 03:00:00,28.709349957797585 +2023-05-12 04:00:00,7.18642448746833 +2023-05-12 05:00:00,10.003932057673447 +2023-05-12 06:00:00,9.994644039305037 +2023-05-12 07:00:00,24.766739665875185 +2023-05-12 08:00:00,6.067561597115839 +2023-05-12 09:00:00,16.965583845936614 +2023-05-12 10:00:00,19.04857182350745 +2023-05-12 11:00:00,17.20188276957001 +2023-05-12 12:00:00,22.805354107353505 +2023-05-12 13:00:00,28.960051236355785 +2023-05-12 14:00:00,22.61656851580785 +2023-05-12 15:00:00,24.622694749438704 +2023-05-12 16:00:00,20.515097835143013 +2023-05-12 17:00:00,4.040912266165627 +2023-05-12 18:00:00,22.83283512432626 +2023-05-12 19:00:00,25.67381596950461 +2023-05-12 20:00:00,14.90211986374801 +2023-05-12 21:00:00,3.942640641487538 +2023-05-12 22:00:00,13.423020031318137 +2023-05-12 23:00:00,20.66682612918512 +2023-05-13 00:00:00,12.494621568496402 +2023-05-13 01:00:00,7.816268063737123 +2023-05-13 02:00:00,15.550466429807114 +2023-05-13 03:00:00,5.805182948414124 +2023-05-13 04:00:00,19.90029278766055 +2023-05-13 05:00:00,29.877959448435025 +2023-05-13 06:00:00,13.207639874882384 +2023-05-13 07:00:00,22.36919821691622 +2023-05-13 08:00:00,11.015312848589089 +2023-05-13 09:00:00,9.872471383273396 +2023-05-13 10:00:00,19.650453742719733 +2023-05-13 11:00:00,9.95116778691651 +2023-05-13 12:00:00,13.06193994506704 +2023-05-13 13:00:00,10.09033714515818 +2023-05-13 14:00:00,13.667900413748416 +2023-05-13 15:00:00,18.169226190362227 +2023-05-13 16:00:00,26.28963771131986 +2023-05-13 17:00:00,22.421915285833805 +2023-05-13 18:00:00,27.395586891601877 +2023-05-13 19:00:00,25.83825284891082 +2023-05-13 20:00:00,12.420466962502475 +2023-05-13 21:00:00,12.514109113458206 +2023-05-13 22:00:00,20.47838514049701 +2023-05-13 23:00:00,7.692449447806604 +2023-05-14 00:00:00,25.51661165014154 +2023-05-14 01:00:00,13.174962817087936 +2023-05-14 02:00:00,28.468915151261992 +2023-05-14 03:00:00,17.20455118823834 +2023-05-14 04:00:00,26.495582857890245 +2023-05-14 05:00:00,29.99368234147743 +2023-05-14 06:00:00,29.750837381942908 +2023-05-14 07:00:00,12.01119478716168 +2023-05-14 08:00:00,13.457422922276116 +2023-05-14 09:00:00,4.720979478108177 +2023-05-14 10:00:00,27.81369495705738 +2023-05-14 11:00:00,7.1669554102556 +2023-05-14 12:00:00,0.0204118595840852 +2023-05-14 13:00:00,7.586704689930692 +2023-05-14 14:00:00,13.37452081750932 +2023-05-14 15:00:00,9.827139116749088 +2023-05-14 16:00:00,10.084168754820116 +2023-05-14 17:00:00,28.767135244165686 +2023-05-14 18:00:00,24.853327188916435 +2023-05-14 19:00:00,24.378360351148302 +2023-05-14 20:00:00,14.404155400557377 +2023-05-14 21:00:00,15.635985427907716 +2023-05-14 22:00:00,26.24556088020261 +2023-05-14 23:00:00,21.152407876311543 +2023-05-15 00:00:00,26.392934904846445 +2023-05-15 01:00:00,9.081210808479792 +2023-05-15 02:00:00,12.554502732983492 +2023-05-15 03:00:00,9.405903037282082 +2023-05-15 04:00:00,9.160054690203555 +2023-05-15 05:00:00,0.6419909587327244 +2023-05-15 06:00:00,15.827987814167225 +2023-05-15 07:00:00,26.806739053146774 +2023-05-15 08:00:00,15.767563066595068 +2023-05-15 09:00:00,23.84774681973065 +2023-05-15 10:00:00,15.349233247176194 +2023-05-15 11:00:00,17.563905014800046 +2023-05-15 12:00:00,8.43689284422796 +2023-05-15 13:00:00,19.61242593019738 +2023-05-15 14:00:00,17.01574987114799 +2023-05-15 15:00:00,16.548924168493727 +2023-05-15 16:00:00,24.61768003594405 +2023-05-15 17:00:00,26.993546004058604 +2023-05-15 18:00:00,14.667864831031416 +2023-05-15 19:00:00,26.599082799890738 +2023-05-15 20:00:00,24.043437052592925 +2023-05-15 21:00:00,0.2568937322550979 +2023-05-15 22:00:00,7.9585765106414685 +2023-05-15 23:00:00,1.620278824435365 +2023-05-16 00:00:00,18.39709278677118 +2023-05-16 01:00:00,26.786290786704207 +2023-05-16 02:00:00,10.358108939239765 +2023-05-16 03:00:00,24.55250943479276 +2023-05-16 04:00:00,26.347047207549817 +2023-05-16 05:00:00,2.180987060929991 +2023-05-16 06:00:00,4.75669448547901 +2023-05-16 07:00:00,1.963933280790936 +2023-05-16 08:00:00,20.836966573566038 +2023-05-16 09:00:00,10.798312765140652 +2023-05-16 10:00:00,8.66790690841534 +2023-05-16 11:00:00,13.186896452086426 +2023-05-16 12:00:00,23.263557995558088 +2023-05-16 13:00:00,11.274464601947365 +2023-05-16 14:00:00,19.5617311187672 +2023-05-16 15:00:00,5.109626393566893 +2023-05-16 16:00:00,12.773298609765488 +2023-05-16 17:00:00,14.604965313385527 +2023-05-16 18:00:00,13.166162275713235 +2023-05-16 19:00:00,19.52930333718581 +2023-05-16 20:00:00,4.840873640719288 +2023-05-16 21:00:00,9.500514998617458 +2023-05-16 22:00:00,8.004685012191429 +2023-05-16 23:00:00,21.33590545109956 +2023-05-17 00:00:00,21.624753794101792 +2023-05-17 01:00:00,0.3730977788817735 +2023-05-17 02:00:00,16.80752971189594 +2023-05-17 03:00:00,11.219281219984016 +2023-05-17 04:00:00,29.22560015204007 +2023-05-17 05:00:00,15.877074179997033 +2023-05-17 06:00:00,0.1696492682331651 +2023-05-17 07:00:00,27.075603864625062 +2023-05-17 08:00:00,8.412343917647524 +2023-05-17 09:00:00,10.478813011390146 +2023-05-17 10:00:00,11.265054533270618 +2023-05-17 11:00:00,13.815902941852896 +2023-05-17 12:00:00,19.287899671622664 +2023-05-17 13:00:00,27.09654163374862 +2023-05-17 14:00:00,21.792207086817747 +2023-05-17 15:00:00,3.5493053019496266 +2023-05-17 16:00:00,3.2918340584800454 +2023-05-17 17:00:00,9.481525033387824 +2023-05-17 18:00:00,5.640813470962752 +2023-05-17 19:00:00,28.801354345098574 +2023-05-17 20:00:00,27.684833069490324 +2023-05-17 21:00:00,22.47829003725744 +2023-05-17 22:00:00,25.88385150319387 +2023-05-17 23:00:00,20.025435595507897 +2023-05-18 00:00:00,15.43932324442648 +2023-05-18 01:00:00,18.590866710004534 +2023-05-18 02:00:00,17.984025352923755 +2023-05-18 03:00:00,0.6727591828670276 +2023-05-18 04:00:00,25.95610123545895 +2023-05-18 05:00:00,4.42315109763805 +2023-05-18 06:00:00,10.435087391930724 +2023-05-18 07:00:00,6.178658398793651 +2023-05-18 08:00:00,23.87469256261844 +2023-05-18 09:00:00,26.650612810679792 +2023-05-18 10:00:00,18.146166639663797 +2023-05-18 11:00:00,8.55596367058596 +2023-05-18 12:00:00,29.153504571909483 +2023-05-18 13:00:00,29.25818611799439 +2023-05-18 14:00:00,25.635826946633745 +2023-05-18 15:00:00,17.94962732095604 +2023-05-18 16:00:00,4.514278796562293 +2023-05-18 17:00:00,27.85373973294125 +2023-05-18 18:00:00,8.194412466258038 +2023-05-18 19:00:00,17.412794547337008 +2023-05-18 20:00:00,10.60599393926974 +2023-05-18 21:00:00,4.171224824087307 +2023-05-18 22:00:00,21.964675229490208 +2023-05-18 23:00:00,29.33135839846788 +2023-05-19 00:00:00,10.267100507417434 +2023-05-19 01:00:00,15.30958340892823 +2023-05-19 02:00:00,18.41830680185244 +2023-05-19 03:00:00,12.303043770951929 +2023-05-19 04:00:00,28.610919414919262 +2023-05-19 05:00:00,15.351992103864498 +2023-05-19 06:00:00,18.715168926669374 +2023-05-19 07:00:00,3.4850750537921305 +2023-05-19 08:00:00,4.379904846691131 +2023-05-19 09:00:00,10.701604361982898 +2023-05-19 10:00:00,2.1863146875493578 +2023-05-19 11:00:00,27.42052712912524 +2023-05-19 12:00:00,3.8363190117297794 +2023-05-19 13:00:00,2.301179360269919 +2023-05-19 14:00:00,12.956774016706976 +2023-05-19 15:00:00,7.06159153153474 +2023-05-19 16:00:00,9.975384754075534 +2023-05-19 17:00:00,16.687429515026526 +2023-05-19 18:00:00,4.569456305925011 +2023-05-19 19:00:00,12.949415655177074 +2023-05-19 20:00:00,25.78333381672251 +2023-05-19 21:00:00,9.984121793646436 +2023-05-19 22:00:00,2.002280903928168 +2023-05-19 23:00:00,10.938245835613836 +2023-05-20 00:00:00,26.15574677882088 +2023-05-20 01:00:00,18.6043045100524 +2023-05-20 02:00:00,13.46142181985918 +2023-05-20 03:00:00,3.52463611384057 +2023-05-20 04:00:00,5.968128292234961 +2023-05-20 05:00:00,27.91443317790267 +2023-05-20 06:00:00,24.28049572191918 +2023-05-20 07:00:00,3.0586107353936742 +2023-05-20 08:00:00,2.1941477873310644 +2023-05-20 09:00:00,1.613818953018632 +2023-05-20 10:00:00,10.146593693998817 +2023-05-20 11:00:00,0.2390019134392906 +2023-05-20 12:00:00,16.984141910377577 +2023-05-20 13:00:00,4.23459927894231 +2023-05-20 14:00:00,7.686655733802413 +2023-05-20 15:00:00,22.569693854555883 +2023-05-20 16:00:00,18.347705272981187 +2023-05-20 17:00:00,0.77254028739699 +2023-05-20 18:00:00,26.94812416793653 +2023-05-20 19:00:00,2.142853819696525 +2023-05-20 20:00:00,16.311000561153882 +2023-05-20 21:00:00,19.859328129402183 +2023-05-20 22:00:00,22.76883558301445 +2023-05-20 23:00:00,5.711006473748101 +2023-05-21 00:00:00,14.247054432111058 +2023-05-21 01:00:00,11.676291502322169 +2023-05-21 02:00:00,4.752191394588861 +2023-05-21 03:00:00,22.42121729504213 +2023-05-21 04:00:00,7.205979770034879 +2023-05-21 05:00:00,1.4156911797827754 +2023-05-21 06:00:00,9.66228533187446 +2023-05-21 07:00:00,17.354459477948588 +2023-05-21 08:00:00,8.660300583688828 +2023-05-21 09:00:00,16.127379524171126 +2023-05-21 10:00:00,29.465582485840965 +2023-05-21 11:00:00,6.03821285306632 +2023-05-21 12:00:00,25.202333025728755 +2023-05-21 13:00:00,13.708084529698944 +2023-05-21 14:00:00,24.512914538769373 +2023-05-21 15:00:00,5.694472719686071 +2023-05-21 16:00:00,8.878252541777625 +2023-05-21 17:00:00,0.4301274471996497 +2023-05-21 18:00:00,10.076732032001406 +2023-05-21 19:00:00,3.340442242634538 +2023-05-21 20:00:00,21.4999223842806 +2023-05-21 21:00:00,11.49323683699125 +2023-05-21 22:00:00,18.099545794753737 +2023-05-21 23:00:00,5.052535073511119 +2023-05-22 00:00:00,27.61294727085749 +2023-05-22 01:00:00,11.013162186732217 +2023-05-22 02:00:00,28.78777179826951 +2023-05-22 03:00:00,6.773370387877375 +2023-05-22 04:00:00,28.527050030168027 +2023-05-22 05:00:00,9.67274552663119 +2023-05-22 06:00:00,28.34708268374869 +2023-05-22 07:00:00,14.403289257116809 +2023-05-22 08:00:00,29.28555114169318 +2023-05-22 09:00:00,25.393545227321777 +2023-05-22 10:00:00,10.579764002372912 +2023-05-22 11:00:00,10.5779740322332 +2023-05-22 12:00:00,13.552435405070996 +2023-05-22 13:00:00,13.316419508663431 +2023-05-22 14:00:00,14.54112235741577 +2023-05-22 15:00:00,4.39385466867266 +2023-05-22 16:00:00,25.048370454785577 +2023-05-22 17:00:00,11.55922097058691 +2023-05-22 18:00:00,19.90219718934253 +2023-05-22 19:00:00,21.06234982288436 +2023-05-22 20:00:00,7.973025560740216 +2023-05-22 21:00:00,8.314165184088514 +2023-05-22 22:00:00,17.480120077422626 +2023-05-22 23:00:00,0.2512691507864606 +2023-05-23 00:00:00,12.9199453717328 +2023-05-23 01:00:00,10.447555744425268 +2023-05-23 02:00:00,20.431400524804364 +2023-05-23 03:00:00,3.411149809019064 +2023-05-23 04:00:00,21.27215732473225 +2023-05-23 05:00:00,4.068492952833345 +2023-05-23 06:00:00,15.745126855352993 +2023-05-23 07:00:00,15.135160221467732 +2023-05-23 08:00:00,25.21968344174373 +2023-05-23 09:00:00,9.533346262340904 +2023-05-23 10:00:00,29.330399006608467 +2023-05-23 11:00:00,12.501218209533558 +2023-05-23 12:00:00,23.863483276989903 +2023-05-23 13:00:00,8.869952502303686 +2023-05-23 14:00:00,12.520640646448648 +2023-05-23 15:00:00,16.817192833356657 +2023-05-23 16:00:00,17.64936537200013 +2023-05-23 17:00:00,8.470247767451795 +2023-05-23 18:00:00,28.901985628513447 +2023-05-23 19:00:00,22.42189708968588 +2023-05-23 20:00:00,11.504798652814689 +2023-05-23 21:00:00,22.563992358812516 +2023-05-23 22:00:00,18.591592788234863 +2023-05-23 23:00:00,15.490817308822466 +2023-05-24 00:00:00,19.60699002811404 +2023-05-24 01:00:00,19.247695422316923 +2023-05-24 02:00:00,18.018770299314397 +2023-05-24 03:00:00,21.354141938285224 +2023-05-24 04:00:00,17.430386224001417 +2023-05-24 05:00:00,18.40003474834259 +2023-05-24 06:00:00,8.182066406929737 +2023-05-24 07:00:00,15.880506481683325 +2023-05-24 08:00:00,13.74909186649212 +2023-05-24 09:00:00,22.12887947017032 +2023-05-24 10:00:00,14.897372762335747 +2023-05-24 11:00:00,22.42358907314908 +2023-05-24 12:00:00,29.56484578158081 +2023-05-24 13:00:00,1.7080863100051713 +2023-05-24 14:00:00,8.695745914605734 +2023-05-24 15:00:00,3.889485191519989 +2023-05-24 16:00:00,20.743175160147967 +2023-05-24 17:00:00,28.42953722987691 +2023-05-24 18:00:00,8.79313044687112 +2023-05-24 19:00:00,23.120675261158144 +2023-05-24 20:00:00,3.915343464719757 +2023-05-24 21:00:00,2.499204231544674 +2023-05-24 22:00:00,20.01013589178115 +2023-05-24 23:00:00,0.3384744599290812 +2023-05-25 00:00:00,18.37861980845761 +2023-05-25 01:00:00,5.96089289367573 +2023-05-25 02:00:00,10.987138808723689 +2023-05-25 03:00:00,16.340291816425836 +2023-05-25 04:00:00,23.326878766879723 +2023-05-25 05:00:00,22.50506227110276 +2023-05-25 06:00:00,8.211234645568567 +2023-05-25 07:00:00,0.0434595652653713 +2023-05-25 08:00:00,29.729848982687976 +2023-05-25 09:00:00,22.921964405782965 +2023-05-25 10:00:00,27.599869962814456 +2023-05-25 11:00:00,10.62264557988684 +2023-05-25 12:00:00,21.50366365080769 +2023-05-25 13:00:00,14.138581972836842 +2023-05-25 14:00:00,24.739665086362063 +2023-05-25 15:00:00,5.062693590979209 +2023-05-25 16:00:00,1.595900705450718 +2023-05-25 17:00:00,7.470923394128577 +2023-05-25 18:00:00,26.65368477761602 +2023-05-25 19:00:00,15.904959953364962 +2023-05-25 20:00:00,19.89745174847783 +2023-05-25 21:00:00,18.452085213562214 +2023-05-25 22:00:00,21.2590819749532 +2023-05-25 23:00:00,13.44994521471794 +2023-05-26 00:00:00,17.385098773487975 +2023-05-26 01:00:00,4.732762951481187 +2023-05-26 02:00:00,10.249492359491809 +2023-05-26 03:00:00,19.594078794887785 +2023-05-26 04:00:00,14.984236317479652 +2023-05-26 05:00:00,7.331271146950567 +2023-05-26 06:00:00,13.44275931997336 +2023-05-26 07:00:00,29.27888273788582 +2023-05-26 08:00:00,26.53041376483135 +2023-05-26 09:00:00,27.66084008005927 +2023-05-26 10:00:00,9.17593859386916 +2023-05-26 11:00:00,7.928021226210959 +2023-05-26 12:00:00,24.95750539526199 +2023-05-26 13:00:00,10.068769280065272 +2023-05-26 14:00:00,17.585086026788343 +2023-05-26 15:00:00,6.004213989266055 +2023-05-26 16:00:00,26.581389259358712 +2023-05-26 17:00:00,0.3983653966902778 +2023-05-26 18:00:00,12.477701767828057 +2023-05-26 19:00:00,2.857277169959466 +2023-05-26 20:00:00,12.692318683574424 +2023-05-26 21:00:00,15.87593887985213 +2023-05-26 22:00:00,27.698061768002948 +2023-05-26 23:00:00,16.802947158835252 +2023-05-27 00:00:00,1.218347960173417 +2023-05-27 01:00:00,9.736239532675304 +2023-05-27 02:00:00,24.092529143897508 +2023-05-27 03:00:00,13.221535420330898 +2023-05-27 04:00:00,24.465408532732187 +2023-05-27 05:00:00,5.6739424996479615 +2023-05-27 06:00:00,19.01781931205209 +2023-05-27 07:00:00,22.886731013059837 +2023-05-27 08:00:00,10.341066295109233 +2023-05-27 09:00:00,11.29719653707958 +2023-05-27 10:00:00,3.563544127921481 +2023-05-27 11:00:00,9.401656232724577 +2023-05-27 12:00:00,16.314371677181743 +2023-05-27 13:00:00,16.06758207046839 +2023-05-27 14:00:00,20.672275441696463 +2023-05-27 15:00:00,29.187080513130013 +2023-05-27 16:00:00,9.708738021139684 +2023-05-27 17:00:00,23.295700279456245 +2023-05-27 18:00:00,23.823873705544763 +2023-05-27 19:00:00,0.7030158596991232 +2023-05-27 20:00:00,10.829315932943413 +2023-05-27 21:00:00,29.920500608285924 +2023-05-27 22:00:00,18.002930606269377 +2023-05-27 23:00:00,2.281613466116728 +2023-05-28 00:00:00,2.042065201834689 +2023-05-28 01:00:00,2.234745767138584 +2023-05-28 02:00:00,23.076094758849848 +2023-05-28 03:00:00,19.661692915996632 +2023-05-28 04:00:00,10.031981703314054 +2023-05-28 05:00:00,20.07411777411128 +2023-05-28 06:00:00,27.05332826624872 +2023-05-28 07:00:00,25.45079007236125 +2023-05-28 08:00:00,26.65427112635012 +2023-05-28 09:00:00,22.594289106170883 +2023-05-28 10:00:00,0.3744530088455677 +2023-05-28 11:00:00,12.918015660470685 +2023-05-28 12:00:00,29.44984760619037 +2023-05-28 13:00:00,22.757245375757886 +2023-05-28 14:00:00,0.9105517765357718 +2023-05-28 15:00:00,5.020363717023346 +2023-05-28 16:00:00,25.15799647593282 +2023-05-28 17:00:00,27.985918528581266 +2023-05-28 18:00:00,7.921768994446424 +2023-05-28 19:00:00,8.237202906528472 +2023-05-28 20:00:00,6.3336359832733935 +2023-05-28 21:00:00,28.677672637002328 +2023-05-28 22:00:00,27.66026506185485 +2023-05-28 23:00:00,16.609374515792407 +2023-05-29 00:00:00,18.0433497570644 +2023-05-29 01:00:00,0.9508461004552604 +2023-05-29 02:00:00,24.90931804472378 +2023-05-29 03:00:00,7.852790277329484 +2023-05-29 04:00:00,9.758271004318525 +2023-05-29 05:00:00,0.7094155472081654 +2023-05-29 06:00:00,17.695324206472257 +2023-05-29 07:00:00,15.852384112153894 +2023-05-29 08:00:00,25.930303426137478 +2023-05-29 09:00:00,11.195983829609396 +2023-05-29 10:00:00,9.095592140149444 +2023-05-29 11:00:00,2.876635244916812 +2023-05-29 12:00:00,19.497619022433117 +2023-05-29 13:00:00,24.56759750680823 +2023-05-29 14:00:00,3.736385626890568 +2023-05-29 15:00:00,28.508018405548903 +2023-05-29 16:00:00,26.25379488707947 +2023-05-29 17:00:00,12.147917216606746 +2023-05-29 18:00:00,20.632223081686977 +2023-05-29 19:00:00,23.79146889863858 +2023-05-29 20:00:00,5.620600055168365 +2023-05-29 21:00:00,21.306667417019536 +2023-05-29 22:00:00,1.9248089822979888 +2023-05-29 23:00:00,15.150921739074423 +2023-05-30 00:00:00,13.024010093016184 +2023-05-30 01:00:00,27.75876730308695 +2023-05-30 02:00:00,12.91177677192018 +2023-05-30 03:00:00,6.992310512637948 +2023-05-30 04:00:00,16.052661210509278 +2023-05-30 05:00:00,23.382752028923637 +2023-05-30 06:00:00,29.284239706521035 +2023-05-30 07:00:00,14.53632449908712 +2023-05-30 08:00:00,16.8204099118138 +2023-05-30 09:00:00,24.79774067521267 +2023-05-30 10:00:00,8.906967479873076 +2023-05-30 11:00:00,5.849019003631883 +2023-05-30 12:00:00,8.003083259063095 +2023-05-30 13:00:00,9.737780275145026 +2023-05-30 14:00:00,28.98803403242424 +2023-05-30 15:00:00,0.6484425216701428 +2023-05-30 16:00:00,29.306919069092267 +2023-05-30 17:00:00,21.622912237963945 +2023-05-30 18:00:00,5.773782643302483 +2023-05-30 19:00:00,14.53177760352316 +2023-05-30 20:00:00,1.4453403491124972 +2023-05-30 21:00:00,0.5422292321797784 +2023-05-30 22:00:00,26.940165241879072 +2023-05-30 23:00:00,16.16141577520334 +2023-05-31 00:00:00,21.44514980913591 +2023-05-31 01:00:00,24.821627408761483 +2023-05-31 02:00:00,14.165215259393648 +2023-05-31 03:00:00,1.0383419994919951 +2023-05-31 04:00:00,25.5722206869143 +2023-05-31 05:00:00,8.715377832884846 +2023-05-31 06:00:00,25.845601845208588 +2023-05-31 07:00:00,19.135617142976063 +2023-05-31 08:00:00,29.05478499819718 +2023-05-31 09:00:00,23.39403524327749 +2023-05-31 10:00:00,13.375038051531956 +2023-05-31 11:00:00,14.126560603130027 +2023-05-31 12:00:00,7.792983399998684 +2023-05-31 13:00:00,25.92777445633748 +2023-05-31 14:00:00,21.87488567283414 +2023-05-31 15:00:00,27.177178866601697 +2023-05-31 16:00:00,21.345757570884764 +2023-05-31 17:00:00,23.031527989801184 +2023-05-31 18:00:00,19.60976348036473 +2023-05-31 19:00:00,14.20539995066684 +2023-05-31 20:00:00,4.5179852363740105 +2023-05-31 21:00:00,13.482853932394336 +2023-05-31 22:00:00,27.576583590836663 +2023-05-31 23:00:00,3.209425249480755 +2023-06-01 00:00:00,7.791706821383411 +2023-06-01 01:00:00,5.462635635190757 +2023-06-01 02:00:00,7.032669621525214 +2023-06-01 03:00:00,7.095498526663402 +2023-06-01 04:00:00,21.253592014852327 +2023-06-01 05:00:00,19.04198554373455 +2023-06-01 06:00:00,0.8180438216688535 +2023-06-01 07:00:00,21.020804772436502 +2023-06-01 08:00:00,16.571601307940977 +2023-06-01 09:00:00,12.353327172067807 +2023-06-01 10:00:00,11.41677609768142 +2023-06-01 11:00:00,2.341371658047909 +2023-06-01 12:00:00,19.671779528334213 +2023-06-01 13:00:00,23.330112784867584 +2023-06-01 14:00:00,29.888831875744724 +2023-06-01 15:00:00,14.371877567307438 +2023-06-01 16:00:00,27.588842997938976 +2023-06-01 17:00:00,6.712654689452697 +2023-06-01 18:00:00,0.1462535827050548 +2023-06-01 19:00:00,11.241232567342106 +2023-06-01 20:00:00,13.08305508814943 +2023-06-01 21:00:00,17.4797521412269 +2023-06-01 22:00:00,6.813843306713176 +2023-06-01 23:00:00,24.23340686151931 +2023-06-02 00:00:00,24.83373263826443 +2023-06-02 01:00:00,29.306905640951243 +2023-06-02 02:00:00,20.569638010505223 +2023-06-02 03:00:00,18.22830900881568 +2023-06-02 04:00:00,2.028430754899589 +2023-06-02 05:00:00,16.977699936590717 +2023-06-02 06:00:00,5.979402911078475 +2023-06-02 07:00:00,18.07750646755925 +2023-06-02 08:00:00,2.094701715493854 +2023-06-02 09:00:00,10.647046960578718 +2023-06-02 10:00:00,23.959840994511364 +2023-06-02 11:00:00,24.398316693868964 +2023-06-02 12:00:00,20.24421292773389 +2023-06-02 13:00:00,0.1679904045487179 +2023-06-02 14:00:00,22.5992701475615 +2023-06-02 15:00:00,22.24392876569991 +2023-06-02 16:00:00,20.75539016210273 +2023-06-02 17:00:00,2.07848389793802 +2023-06-02 18:00:00,11.350151088761717 +2023-06-02 19:00:00,10.614867423595689 +2023-06-02 20:00:00,7.60478597195301 +2023-06-02 21:00:00,9.941186031663134 +2023-06-02 22:00:00,12.321664474899356 +2023-06-02 23:00:00,14.189517483271356 +2023-06-03 00:00:00,28.215888656882925 +2023-06-03 01:00:00,3.145720687753605 +2023-06-03 02:00:00,6.149318845670575 +2023-06-03 03:00:00,3.5327317684415798 +2023-06-03 04:00:00,0.1484493117049357 +2023-06-03 05:00:00,23.63907382190731 +2023-06-03 06:00:00,16.791733601996153 +2023-06-03 07:00:00,4.700801641048314 +2023-06-03 08:00:00,22.04987764599757 +2023-06-03 09:00:00,9.75749784533592 +2023-06-03 10:00:00,2.3254310220089214 +2023-06-03 11:00:00,23.115180949508517 +2023-06-03 12:00:00,0.8145465924640671 +2023-06-03 13:00:00,12.902147601814386 +2023-06-03 14:00:00,2.201705467025694 +2023-06-03 15:00:00,28.87641442536018 +2023-06-03 16:00:00,24.84742748097366 +2023-06-03 17:00:00,17.651258004803115 +2023-06-03 18:00:00,6.93539757778522 +2023-06-03 19:00:00,2.806747159976619 +2023-06-03 20:00:00,13.57036984535447 +2023-06-03 21:00:00,5.453420428676709 +2023-06-03 22:00:00,11.603025060006765 +2023-06-03 23:00:00,17.82996343578393 +2023-06-04 00:00:00,0.6883781046012927 +2023-06-04 01:00:00,2.646006035407785 +2023-06-04 02:00:00,5.626561986968058 +2023-06-04 03:00:00,15.331291523965088 +2023-06-04 04:00:00,18.726600471243668 +2023-06-04 05:00:00,9.705365657919277 +2023-06-04 06:00:00,25.748896767976976 +2023-06-04 07:00:00,23.34551697821348 +2023-06-04 08:00:00,6.581631614868176 +2023-06-04 09:00:00,24.868582082971425 +2023-06-04 10:00:00,19.88538260588048 +2023-06-04 11:00:00,0.4325635305164865 +2023-06-04 12:00:00,9.708233671355403 +2023-06-04 13:00:00,8.053358599260989 +2023-06-04 14:00:00,22.53622890348356 +2023-06-04 15:00:00,29.7137521812435 +2023-06-04 16:00:00,12.723812673447544 +2023-06-04 17:00:00,28.15685371438011 +2023-06-04 18:00:00,7.116512179872946 +2023-06-04 19:00:00,28.236687918508096 +2023-06-04 20:00:00,25.63802818475156 +2023-06-04 21:00:00,8.925476606997854 +2023-06-04 22:00:00,28.781515028745886 +2023-06-04 23:00:00,15.181234833651372 +2023-06-05 00:00:00,23.87715844421969 +2023-06-05 01:00:00,23.3507066465997 +2023-06-05 02:00:00,11.75236437334516 +2023-06-05 03:00:00,3.699852285356352 +2023-06-05 04:00:00,12.125570401045774 +2023-06-05 05:00:00,7.542194913702247 +2023-06-05 06:00:00,2.670143060750042 +2023-06-05 07:00:00,22.27532452678545 +2023-06-05 08:00:00,13.7100620956297 +2023-06-05 09:00:00,6.384139683016107 +2023-06-05 10:00:00,10.386185185114051 +2023-06-05 11:00:00,17.717219878956698 +2023-06-05 12:00:00,10.478346780026836 +2023-06-05 13:00:00,22.965353649619413 +2023-06-05 14:00:00,7.530906187204158 +2023-06-05 15:00:00,5.284201878767804 +2023-06-05 16:00:00,0.7671912533487701 +2023-06-05 17:00:00,13.266229440076602 +2023-06-05 18:00:00,15.406018993391935 +2023-06-05 19:00:00,20.25166928905109 +2023-06-05 20:00:00,7.55159869311658 +2023-06-05 21:00:00,17.722134966312783 +2023-06-05 22:00:00,17.85991947586586 +2023-06-05 23:00:00,25.62314909327377 +2023-06-06 00:00:00,20.69319646793084 +2023-06-06 01:00:00,27.673489567800395 +2023-06-06 02:00:00,10.08543571067613 +2023-06-06 03:00:00,13.706295126311476 +2023-06-06 04:00:00,1.4085125565685064 +2023-06-06 05:00:00,15.240082351604476 +2023-06-06 06:00:00,19.56759269803113 +2023-06-06 07:00:00,13.2953710723911 +2023-06-06 08:00:00,24.797983468312783 +2023-06-06 09:00:00,27.462385424180056 +2023-06-06 10:00:00,11.039781701162454 +2023-06-06 11:00:00,3.179806201494906 +2023-06-06 12:00:00,7.49794701547088 +2023-06-06 13:00:00,18.46195849432068 +2023-06-06 14:00:00,29.9747330928748 +2023-06-06 15:00:00,27.75877719352984 +2023-06-06 16:00:00,12.317865093155264 +2023-06-06 17:00:00,15.31953057057376 +2023-06-06 18:00:00,2.4015667294228527 +2023-06-06 19:00:00,6.616364389540323 +2023-06-06 20:00:00,5.115340756493612 +2023-06-06 21:00:00,14.875456658449703 +2023-06-06 22:00:00,18.14938463853721 +2023-06-06 23:00:00,0.7565036561025973 +2023-06-07 00:00:00,29.496679076172036 +2023-06-07 01:00:00,11.461988672019206 +2023-06-07 02:00:00,15.987614289649542 +2023-06-07 03:00:00,20.46883546619508 +2023-06-07 04:00:00,1.6960803688930903 +2023-06-07 05:00:00,29.405372513244885 +2023-06-07 06:00:00,20.9243724189409 +2023-06-07 07:00:00,25.624586561105897 +2023-06-07 08:00:00,8.43309372557243 +2023-06-07 09:00:00,9.109360395940108 +2023-06-07 10:00:00,22.118628004849057 +2023-06-07 11:00:00,2.685305912236976 +2023-06-07 12:00:00,8.965270648287508 +2023-06-07 13:00:00,6.372973843633022 +2023-06-07 14:00:00,23.74249995439208 +2023-06-07 15:00:00,28.695654414394607 +2023-06-07 16:00:00,7.345325953900637 +2023-06-07 17:00:00,12.029108002244332 +2023-06-07 18:00:00,10.125572998769526 +2023-06-07 19:00:00,16.859104438187632 +2023-06-07 20:00:00,4.915010485969381 +2023-06-07 21:00:00,11.758723204897104 +2023-06-07 22:00:00,28.39320275135515 +2023-06-07 23:00:00,7.285738066878531 +2023-06-08 00:00:00,23.669046685195788 +2023-06-08 01:00:00,6.715107776771351 +2023-06-08 02:00:00,12.08069785290623 +2023-06-08 03:00:00,6.8919973155997685 +2023-06-08 04:00:00,21.596337589211466 +2023-06-08 05:00:00,12.204483838057405 +2023-06-08 06:00:00,7.292023963801929 +2023-06-08 07:00:00,22.262421042457056 +2023-06-08 08:00:00,10.798712677963207 +2023-06-08 09:00:00,8.732416308766327 +2023-06-08 10:00:00,12.19672071801024 +2023-06-08 11:00:00,14.719036482931063 +2023-06-08 12:00:00,24.455502809043047 +2023-06-08 13:00:00,11.08399553307896 +2023-06-08 14:00:00,21.53217582920573 +2023-06-08 15:00:00,22.99113516959164 +2023-06-08 16:00:00,18.448776106698848 +2023-06-08 17:00:00,2.9397058354011496 +2023-06-08 18:00:00,11.410516236039085 +2023-06-08 19:00:00,13.479490190338437 +2023-06-08 20:00:00,23.475024820380355 +2023-06-08 21:00:00,12.226173905062796 +2023-06-08 22:00:00,17.315876333683285 +2023-06-08 23:00:00,17.638460360357243 +2023-06-09 00:00:00,27.885897270878303 +2023-06-09 01:00:00,28.302730886690853 +2023-06-09 02:00:00,14.779444515762846 +2023-06-09 03:00:00,13.03747066419578 +2023-06-09 04:00:00,17.30620969087074 +2023-06-09 05:00:00,28.04414400319419 +2023-06-09 06:00:00,13.218547175042692 +2023-06-09 07:00:00,25.35864771346017 +2023-06-09 08:00:00,13.956543608414105 +2023-06-09 09:00:00,16.003349408835884 +2023-06-09 10:00:00,9.96437133134916 +2023-06-09 11:00:00,17.195577736611177 +2023-06-09 12:00:00,25.38354430879129 +2023-06-09 13:00:00,17.711370438483016 +2023-06-09 14:00:00,8.91856520308522 +2023-06-09 15:00:00,28.31946493802045 +2023-06-09 16:00:00,27.10879342886328 +2023-06-09 17:00:00,1.4103716469156968 +2023-06-09 18:00:00,4.643793502934171 +2023-06-09 19:00:00,0.7005100584924584 +2023-06-09 20:00:00,19.8706158600724 +2023-06-09 21:00:00,10.094479657936244 +2023-06-09 22:00:00,24.64500691142388 +2023-06-09 23:00:00,20.65334880597825 +2023-06-10 00:00:00,15.493155192386451 +2023-06-10 01:00:00,28.289930087890976 +2023-06-10 02:00:00,13.612281989231583 +2023-06-10 03:00:00,6.939429534553804 +2023-06-10 04:00:00,28.16019981355128 +2023-06-10 05:00:00,20.88765580143524 +2023-06-10 06:00:00,10.334117707272055 +2023-06-10 07:00:00,14.952218092221296 +2023-06-10 08:00:00,17.505124158072658 +2023-06-10 09:00:00,15.86841081302305 +2023-06-10 10:00:00,0.61014569343813 +2023-06-10 11:00:00,0.2038226830415679 +2023-06-10 12:00:00,3.373912597328421 +2023-06-10 13:00:00,5.450039792937308 +2023-06-10 14:00:00,17.29448249532972 +2023-06-10 15:00:00,15.291247161724767 +2023-06-10 16:00:00,19.615207489983863 +2023-06-10 17:00:00,29.437700490433897 +2023-06-10 18:00:00,26.58569567582688 +2023-06-10 19:00:00,23.44015209007661 +2023-06-10 20:00:00,27.190882729873803 +2023-06-10 21:00:00,19.51485192258269 +2023-06-10 22:00:00,12.736541031633038 +2023-06-10 23:00:00,1.1313744855537688 +2023-06-11 00:00:00,28.00335434390988 +2023-06-11 01:00:00,21.191030632568967 +2023-06-11 02:00:00,19.9809429296844 +2023-06-11 03:00:00,7.5755334655118 +2023-06-11 04:00:00,19.477381636974897 +2023-06-11 05:00:00,21.79039703868103 +2023-06-11 06:00:00,1.4425607277451469 +2023-06-11 07:00:00,0.5923475197833317 +2023-06-11 08:00:00,13.580802163536433 +2023-06-11 09:00:00,26.374614839300527 +2023-06-11 10:00:00,16.48996597265352 +2023-06-11 11:00:00,19.131473263015128 +2023-06-11 12:00:00,14.670313561654172 +2023-06-11 13:00:00,19.993308557865088 +2023-06-11 14:00:00,1.8160473651149531 +2023-06-11 15:00:00,9.26484876678771 +2023-06-11 16:00:00,23.33383223027714 +2023-06-11 17:00:00,27.278130910225315 +2023-06-11 18:00:00,3.8383527440449408 +2023-06-11 19:00:00,4.443359857267081 +2023-06-11 20:00:00,14.629235052093284 +2023-06-11 21:00:00,20.418150254295814 +2023-06-11 22:00:00,25.36722853843657 +2023-06-11 23:00:00,1.282389482613816 +2023-06-12 00:00:00,23.378916687274096 +2023-06-12 01:00:00,19.321281427325168 +2023-06-12 02:00:00,19.64466735937678 +2023-06-12 03:00:00,10.951189898511796 +2023-06-12 04:00:00,22.21014921864758 +2023-06-12 05:00:00,21.45668685067674 +2023-06-12 06:00:00,25.60975903965414 +2023-06-12 07:00:00,21.02772947652265 +2023-06-12 08:00:00,19.15990856790346 +2023-06-12 09:00:00,27.579510348846163 +2023-06-12 10:00:00,11.332358644569982 +2023-06-12 11:00:00,16.33873565367332 +2023-06-12 12:00:00,18.032247612054384 +2023-06-12 13:00:00,29.05478034229626 +2023-06-12 14:00:00,27.676559102441995 +2023-06-12 15:00:00,19.38006874036865 +2023-06-12 16:00:00,22.466457932217324 +2023-06-12 17:00:00,6.153880965162748 +2023-06-12 18:00:00,8.12307725597719 +2023-06-12 19:00:00,29.1494328376895 +2023-06-12 20:00:00,14.6221817572313 +2023-06-12 21:00:00,26.421475963246703 +2023-06-12 22:00:00,21.319738814552533 +2023-06-12 23:00:00,7.763038898142288 +2023-06-13 00:00:00,7.98541146341122 +2023-06-13 01:00:00,2.580668466593611 +2023-06-13 02:00:00,18.14683180622953 +2023-06-13 03:00:00,5.502579179207951 +2023-06-13 04:00:00,4.6650696226334105 +2023-06-13 05:00:00,22.713679766546782 +2023-06-13 06:00:00,25.5401708678353 +2023-06-13 07:00:00,25.91000607980729 +2023-06-13 08:00:00,11.899664100045417 +2023-06-13 09:00:00,18.745263924388126 +2023-06-13 10:00:00,10.869578363946768 +2023-06-13 11:00:00,7.261261194261023 +2023-06-13 12:00:00,3.2760098907853563 +2023-06-13 13:00:00,27.975365041858552 +2023-06-13 14:00:00,15.087326493532268 +2023-06-13 15:00:00,21.050413532473584 +2023-06-13 16:00:00,28.937464931265023 +2023-06-13 17:00:00,20.714217305894827 +2023-06-13 18:00:00,29.22946680992912 +2023-06-13 19:00:00,23.764907049738596 +2023-06-13 20:00:00,6.997746796148267 +2023-06-13 21:00:00,4.291544630165044 +2023-06-13 22:00:00,16.87754529953824 +2023-06-13 23:00:00,24.335259958704977 +2023-06-14 00:00:00,29.492552770233434 +2023-06-14 01:00:00,5.626614926631911 +2023-06-14 02:00:00,17.540545836875474 +2023-06-14 03:00:00,8.586003696139718 +2023-06-14 04:00:00,25.22586713547878 +2023-06-14 05:00:00,17.407152878985045 +2023-06-14 06:00:00,18.06764714102887 +2023-06-14 07:00:00,28.06225331448988 +2023-06-14 08:00:00,1.3486202594870234 +2023-06-14 09:00:00,6.223912551313376 +2023-06-14 10:00:00,29.77279965287565 +2023-06-14 11:00:00,16.23885631739274 +2023-06-14 12:00:00,15.976581989302822 +2023-06-14 13:00:00,1.279345328133128 +2023-06-14 14:00:00,19.689830869235674 +2023-06-14 15:00:00,22.644944001550066 +2023-06-14 16:00:00,22.43285992792198 +2023-06-14 17:00:00,10.292735539598898 +2023-06-14 18:00:00,20.88712787138782 +2023-06-14 19:00:00,9.633040073287804 +2023-06-14 20:00:00,19.523440131835137 +2023-06-14 21:00:00,23.954440281901217 +2023-06-14 22:00:00,16.7402538407173 +2023-06-14 23:00:00,20.97354625499986 +2023-06-15 00:00:00,3.590957647394318 +2023-06-15 01:00:00,8.487468742220583 +2023-06-15 02:00:00,24.991630935410026 +2023-06-15 03:00:00,29.772813871090403 +2023-06-15 04:00:00,13.090216046501183 +2023-06-15 05:00:00,16.66008440409965 +2023-06-15 06:00:00,11.298726735517256 +2023-06-15 07:00:00,26.14886610386612 +2023-06-15 08:00:00,8.673548301677531 +2023-06-15 09:00:00,13.402202265281977 +2023-06-15 10:00:00,17.469800868565528 +2023-06-15 11:00:00,11.330845791166585 +2023-06-15 12:00:00,26.63532763923966 +2023-06-15 13:00:00,9.876976146169737 +2023-06-15 14:00:00,24.94273734449883 +2023-06-15 15:00:00,5.929159886462063 +2023-06-15 16:00:00,3.2800853075894407 +2023-06-15 17:00:00,21.928509987145425 +2023-06-15 18:00:00,22.790003132951583 +2023-06-15 19:00:00,0.6280988803748255 +2023-06-15 20:00:00,26.746982812688383 +2023-06-15 21:00:00,9.78641546153073 +2023-06-15 22:00:00,25.0206547545546 +2023-06-15 23:00:00,20.89792594444526 +2023-06-16 00:00:00,10.28558543463501 +2023-06-16 01:00:00,3.640921501328079 +2023-06-16 02:00:00,29.141946675234344 +2023-06-16 03:00:00,24.97195715442971 +2023-06-16 04:00:00,6.921086288713249 +2023-06-16 05:00:00,19.95259219081997 +2023-06-16 06:00:00,23.104609049497384 +2023-06-16 07:00:00,7.727884085475276 +2023-06-16 08:00:00,8.12750153539233 +2023-06-16 09:00:00,24.098554340904425 +2023-06-16 10:00:00,4.741939912020891 +2023-06-16 11:00:00,1.0244962834564442 +2023-06-16 12:00:00,25.016592535040846 +2023-06-16 13:00:00,17.25526869900973 +2023-06-16 14:00:00,11.572521091996034 +2023-06-16 15:00:00,13.304114719597202 +2023-06-16 16:00:00,18.73762318093633 +2023-06-16 17:00:00,1.8405095452925069 +2023-06-16 18:00:00,5.693967703213837 +2023-06-16 19:00:00,29.277167845288396 +2023-06-16 20:00:00,25.91632453440049 +2023-06-16 21:00:00,21.90811115978732 +2023-06-16 22:00:00,16.57245309473554 +2023-06-16 23:00:00,3.647101447897621 +2023-06-17 00:00:00,17.784654617348284 +2023-06-17 01:00:00,9.220994893193918 +2023-06-17 02:00:00,26.515252505094857 +2023-06-17 03:00:00,1.8123146679117808 +2023-06-17 04:00:00,14.397350420462857 +2023-06-17 05:00:00,12.935241328962318 +2023-06-17 06:00:00,19.983792629949196 +2023-06-17 07:00:00,15.62810926295077 +2023-06-17 08:00:00,15.769690119714664 +2023-06-17 09:00:00,23.248125422590583 +2023-06-17 10:00:00,8.011450973182457 +2023-06-17 11:00:00,25.292316105486226 +2023-06-17 12:00:00,23.65027439062775 +2023-06-17 13:00:00,13.637975681339338 +2023-06-17 14:00:00,7.706654506031519 +2023-06-17 15:00:00,9.433040018545768 +2023-06-17 16:00:00,21.269675272372115 +2023-06-17 17:00:00,4.350560102640628 +2023-06-17 18:00:00,8.60418758778154 +2023-06-17 19:00:00,16.61396230211889 +2023-06-17 20:00:00,9.012441478014072 +2023-06-17 21:00:00,6.157654455026266 +2023-06-17 22:00:00,25.999576201935408 +2023-06-17 23:00:00,12.560904906357017 +2023-06-18 00:00:00,3.186081689988469 +2023-06-18 01:00:00,26.797069091216624 +2023-06-18 02:00:00,17.073260986997237 +2023-06-18 03:00:00,20.209362652157772 +2023-06-18 04:00:00,14.766788777999556 +2023-06-18 05:00:00,4.735722610251527 +2023-06-18 06:00:00,27.121241097389685 +2023-06-18 07:00:00,20.312316237809405 +2023-06-18 08:00:00,21.8516600303322 +2023-06-18 09:00:00,24.969883887610443 +2023-06-18 10:00:00,19.83720966373613 +2023-06-18 11:00:00,8.36754599997574 +2023-06-18 12:00:00,10.618886275385735 +2023-06-18 13:00:00,3.1811659316818144 +2023-06-18 14:00:00,8.648251250965343 +2023-06-18 15:00:00,26.92840968473265 +2023-06-18 16:00:00,4.463705004491714 +2023-06-18 17:00:00,4.011085146858132 +2023-06-18 18:00:00,0.4120991059302037 +2023-06-18 19:00:00,23.903171790781716 +2023-06-18 20:00:00,17.284110030029964 +2023-06-18 21:00:00,9.238664456829916 +2023-06-18 22:00:00,24.04225311996904 +2023-06-18 23:00:00,26.263459531399704 +2023-06-19 00:00:00,7.169554554510898 +2023-06-19 01:00:00,28.26310375488884 +2023-06-19 02:00:00,13.194698750922688 +2023-06-19 03:00:00,26.448117644129415 +2023-06-19 04:00:00,24.515285497037 +2023-06-19 05:00:00,21.79303333188633 +2023-06-19 06:00:00,15.554993599164696 +2023-06-19 07:00:00,10.597760222348082 +2023-06-19 08:00:00,8.968594533546499 +2023-06-19 09:00:00,27.46648971239975 +2023-06-19 10:00:00,5.090805171010397 +2023-06-19 11:00:00,19.046212327309437 +2023-06-19 12:00:00,27.36252618430518 +2023-06-19 13:00:00,16.7827718253432 +2023-06-19 14:00:00,29.55090367100758 +2023-06-19 15:00:00,29.53521110639535 +2023-06-19 16:00:00,9.697590759069849 +2023-06-19 17:00:00,19.404354475571104 +2023-06-19 18:00:00,1.331614202287443 +2023-06-19 19:00:00,26.64161993427869 +2023-06-19 20:00:00,19.830430012589176 +2023-06-19 21:00:00,22.366530594285315 +2023-06-19 22:00:00,19.65621335001672 +2023-06-19 23:00:00,13.633248099632045 +2023-06-20 00:00:00,5.983615066035357 +2023-06-20 01:00:00,23.48746240885827 +2023-06-20 02:00:00,4.690814702269264 +2023-06-20 03:00:00,23.84389515599174 +2023-06-20 04:00:00,26.73991655803625 +2023-06-20 05:00:00,24.05968138351589 +2023-06-20 06:00:00,17.79207942732193 +2023-06-20 07:00:00,23.91713759736753 +2023-06-20 08:00:00,18.715667450893005 +2023-06-20 09:00:00,14.2760857355691 +2023-06-20 10:00:00,12.53939518383029 +2023-06-20 11:00:00,17.366314628779712 +2023-06-20 12:00:00,26.792238322871675 +2023-06-20 13:00:00,21.180105231096476 +2023-06-20 14:00:00,18.95273103831513 +2023-06-20 15:00:00,7.834877819446802 +2023-06-20 16:00:00,0.3180069587186096 +2023-06-20 17:00:00,6.125982709536397 +2023-06-20 18:00:00,19.32579466634586 +2023-06-20 19:00:00,10.292730909529702 +2023-06-20 20:00:00,29.91288915415475 +2023-06-20 21:00:00,10.814122802752294 +2023-06-20 22:00:00,24.722959933645622 +2023-06-20 23:00:00,11.742107305832032 +2023-06-21 00:00:00,12.613924335345857 +2023-06-21 01:00:00,1.935186812076558 +2023-06-21 02:00:00,22.113566221359516 +2023-06-21 03:00:00,17.451516999345582 +2023-06-21 04:00:00,28.89227405206319 +2023-06-21 05:00:00,22.45820321824496 +2023-06-21 06:00:00,8.922186403397221 +2023-06-21 07:00:00,18.371598736795704 +2023-06-21 08:00:00,28.515667779861843 +2023-06-21 09:00:00,13.48351762476038 +2023-06-21 10:00:00,19.933019228193285 +2023-06-21 11:00:00,8.047631487777396 +2023-06-21 12:00:00,10.03172183000946 +2023-06-21 13:00:00,0.96477576632368 +2023-06-21 14:00:00,29.664350544239365 +2023-06-21 15:00:00,4.078386148927738 +2023-06-21 16:00:00,5.159867277564646 +2023-06-21 17:00:00,11.023915077682776 +2023-06-21 18:00:00,3.016707277828632 +2023-06-21 19:00:00,18.798525819690497 +2023-06-21 20:00:00,29.510262622357896 +2023-06-21 21:00:00,6.050808776169337 +2023-06-21 22:00:00,29.69533546516089 +2023-06-21 23:00:00,20.96121699836355 +2023-06-22 00:00:00,13.214528584522526 +2023-06-22 01:00:00,29.913317365876964 +2023-06-22 02:00:00,22.296460802471284 +2023-06-22 03:00:00,7.917341161666235 +2023-06-22 04:00:00,9.797826188000869 +2023-06-22 05:00:00,22.072489384832316 +2023-06-22 06:00:00,0.0443875698747786 +2023-06-22 07:00:00,15.827880993105053 +2023-06-22 08:00:00,24.16699765442666 +2023-06-22 09:00:00,4.754201679657184 +2023-06-22 10:00:00,29.97192942535722 +2023-06-22 11:00:00,20.44638812239297 +2023-06-22 12:00:00,7.960786352040959 +2023-06-22 13:00:00,26.39421135838244 +2023-06-22 14:00:00,8.96622135426048 +2023-06-22 15:00:00,12.180067776354315 +2023-06-22 16:00:00,28.89428907630908 +2023-06-22 17:00:00,13.525042530483198 +2023-06-22 18:00:00,20.589256599687047 +2023-06-22 19:00:00,16.7697326287152 +2023-06-22 20:00:00,11.237682344258484 +2023-06-22 21:00:00,15.301585979510875 +2023-06-22 22:00:00,4.81232388365733 +2023-06-22 23:00:00,6.987179334290991 +2023-06-23 00:00:00,28.10425777834768 +2023-06-23 01:00:00,11.805592547299586 +2023-06-23 02:00:00,4.702168836479679 +2023-06-23 03:00:00,17.6256255127572 +2023-06-23 04:00:00,9.2873230963506 +2023-06-23 05:00:00,24.523352684271035 +2023-06-23 06:00:00,12.865681668604992 +2023-06-23 07:00:00,1.0449003833136383 +2023-06-23 08:00:00,4.144652314575809 +2023-06-23 09:00:00,13.259067888985022 +2023-06-23 10:00:00,7.769506790316979 +2023-06-23 11:00:00,18.79504438962928 +2023-06-23 12:00:00,4.311214717211312 +2023-06-23 13:00:00,3.719597679880288 +2023-06-23 14:00:00,2.9851601796019764 +2023-06-23 15:00:00,3.5703842813595266 +2023-06-23 16:00:00,20.33743100022101 +2023-06-23 17:00:00,1.2174267842160735 +2023-06-23 18:00:00,13.463092181390945 +2023-06-23 19:00:00,22.10123510717876 +2023-06-23 20:00:00,4.455012123657943 +2023-06-23 21:00:00,27.44400755262236 +2023-06-23 22:00:00,9.251000192915358 +2023-06-23 23:00:00,10.847781789348742 +2023-06-24 00:00:00,8.487069809987126 +2023-06-24 01:00:00,25.814014493779062 +2023-06-24 02:00:00,25.668080806840152 +2023-06-24 03:00:00,25.3570603346202 +2023-06-24 04:00:00,25.36207150487364 +2023-06-24 05:00:00,10.373276459214305 +2023-06-24 06:00:00,10.553342988893425 +2023-06-24 07:00:00,2.4452006152480377 +2023-06-24 08:00:00,11.860543797091326 +2023-06-24 09:00:00,24.12220681981645 +2023-06-24 10:00:00,5.766244634545209 +2023-06-24 11:00:00,10.005600534425035 +2023-06-24 12:00:00,11.523321511645753 +2023-06-24 13:00:00,20.227472068712466 +2023-06-24 14:00:00,4.002743675467226 +2023-06-24 15:00:00,24.632927551376184 +2023-06-24 16:00:00,8.550686023826424 +2023-06-24 17:00:00,5.376483339292904 +2023-06-24 18:00:00,10.803191913915658 +2023-06-24 19:00:00,19.90506767038269 +2023-06-24 20:00:00,24.58167637634197 +2023-06-24 21:00:00,0.8775880841725359 +2023-06-24 22:00:00,21.81695170865889 +2023-06-24 23:00:00,11.137913956436616 +2023-06-25 00:00:00,28.925787032020768 +2023-06-25 01:00:00,22.985294240290663 +2023-06-25 02:00:00,29.324550801307964 +2023-06-25 03:00:00,3.767511576111857 +2023-06-25 04:00:00,9.55259558871261 +2023-06-25 05:00:00,26.689720857877063 +2023-06-25 06:00:00,24.005538298687856 +2023-06-25 07:00:00,2.3693728639573552 +2023-06-25 08:00:00,0.6591917817562132 +2023-06-25 09:00:00,17.800838228078973 +2023-06-25 10:00:00,16.69463137210063 +2023-06-25 11:00:00,5.184807252100324 +2023-06-25 12:00:00,25.73635890359987 +2023-06-25 13:00:00,28.658984900747637 +2023-06-25 14:00:00,9.186177044764833 +2023-06-25 15:00:00,8.812009292556603 +2023-06-25 16:00:00,27.73722890764952 +2023-06-25 17:00:00,1.188666012898184 +2023-06-25 18:00:00,7.608064288135373 +2023-06-25 19:00:00,23.71924636749506 +2023-06-25 20:00:00,24.21429220382423 +2023-06-25 21:00:00,23.47284322700628 +2023-06-25 22:00:00,18.90377658636951 +2023-06-25 23:00:00,18.11335932044873 +2023-06-26 00:00:00,10.521320015771982 +2023-06-26 01:00:00,1.1201777412298677 +2023-06-26 02:00:00,15.475268794640426 +2023-06-26 03:00:00,14.213564958325772 +2023-06-26 04:00:00,10.300340297715596 +2023-06-26 05:00:00,17.678451887355376 +2023-06-26 06:00:00,15.725643964057827 +2023-06-26 07:00:00,28.772057641349026 +2023-06-26 08:00:00,20.41989032143687 +2023-06-26 09:00:00,1.5190365083197233 +2023-06-26 10:00:00,28.098102340506653 +2023-06-26 11:00:00,22.364267854762296 +2023-06-26 12:00:00,26.04694088806401 +2023-06-26 13:00:00,15.292481806270056 +2023-06-26 14:00:00,23.51480660492801 +2023-06-26 15:00:00,17.308467866468767 +2023-06-26 16:00:00,29.566885531153467 +2023-06-26 17:00:00,25.32017514211243 +2023-06-26 18:00:00,25.173095083014715 +2023-06-26 19:00:00,23.612823786834205 +2023-06-26 20:00:00,25.4764649990482 +2023-06-26 21:00:00,25.925573965552225 +2023-06-26 22:00:00,23.37741793098377 +2023-06-26 23:00:00,26.76545389130193 +2023-06-27 00:00:00,21.959000893956155 +2023-06-27 01:00:00,29.241638595172763 +2023-06-27 02:00:00,14.43744742106606 +2023-06-27 03:00:00,29.635533691610338 +2023-06-27 04:00:00,3.9323071525597495 +2023-06-27 05:00:00,11.845159794506069 +2023-06-27 06:00:00,21.13870758986199 +2023-06-27 07:00:00,0.9198430058086616 +2023-06-27 08:00:00,8.660098542593484 +2023-06-27 09:00:00,27.46660821979118 +2023-06-27 10:00:00,13.7482919910171 +2023-06-27 11:00:00,22.56937373319108 +2023-06-27 12:00:00,15.280771829541347 +2023-06-27 13:00:00,24.642829008095664 +2023-06-27 14:00:00,3.919149438928863 +2023-06-27 15:00:00,22.5018827232124 +2023-06-27 16:00:00,29.584457546765424 +2023-06-27 17:00:00,1.478646608634849 +2023-06-27 18:00:00,0.9102451473210726 +2023-06-27 19:00:00,19.4469320318712 +2023-06-27 20:00:00,12.0517236964141 +2023-06-27 21:00:00,22.72504077183221 +2023-06-27 22:00:00,5.092099384861819 +2023-06-27 23:00:00,15.855189535890894 +2023-06-28 00:00:00,2.9105298999987896 +2023-06-28 01:00:00,22.65168034622417 +2023-06-28 02:00:00,9.483601031428934 +2023-06-28 03:00:00,10.51873625923783 +2023-06-28 04:00:00,29.22793632256589 +2023-06-28 05:00:00,14.634650916633554 +2023-06-28 06:00:00,19.46970585373868 +2023-06-28 07:00:00,14.171080543026296 +2023-06-28 08:00:00,4.323042958862048 +2023-06-28 09:00:00,11.331239424726766 +2023-06-28 10:00:00,14.391144973087332 +2023-06-28 11:00:00,3.704772657502111 +2023-06-28 12:00:00,18.03066155796489 +2023-06-28 13:00:00,8.485325922631052 +2023-06-28 14:00:00,23.20479046624592 +2023-06-28 15:00:00,0.5593470267211642 +2023-06-28 16:00:00,3.528244597142298 +2023-06-28 17:00:00,22.410862967360263 +2023-06-28 18:00:00,22.803798709256668 +2023-06-28 19:00:00,22.11007753642848 +2023-06-28 20:00:00,19.345807187696888 +2023-06-28 21:00:00,17.55919408353359 +2023-06-28 22:00:00,9.94120713210454 +2023-06-28 23:00:00,5.557954643770302 +2023-06-29 00:00:00,11.99856703159642 +2023-06-29 01:00:00,13.788875823509004 +2023-06-29 02:00:00,2.5434612635299283 +2023-06-29 03:00:00,27.752774742024297 +2023-06-29 04:00:00,26.22744838208665 +2023-06-29 05:00:00,4.018700414287576 +2023-06-29 06:00:00,25.47283831853021 +2023-06-29 07:00:00,13.985580871079195 +2023-06-29 08:00:00,22.64653826711148 +2023-06-29 09:00:00,20.825625168147965 +2023-06-29 10:00:00,26.71440318562429 +2023-06-29 11:00:00,18.97410190112825 +2023-06-29 12:00:00,5.531666829937025 +2023-06-29 13:00:00,0.0838923409503522 +2023-06-29 14:00:00,2.6656547302720446 +2023-06-29 15:00:00,24.71669453786178 +2023-06-29 16:00:00,3.966465696778996 +2023-06-29 17:00:00,27.57674947808696 +2023-06-29 18:00:00,12.004272227344575 +2023-06-29 19:00:00,1.9567942831424223 +2023-06-29 20:00:00,27.0656836374056 +2023-06-29 21:00:00,15.446566807393 +2023-06-29 22:00:00,27.278753550228608 +2023-06-29 23:00:00,9.12243953794948 +2023-06-30 00:00:00,8.225471429918432 +2023-06-30 01:00:00,27.533002022415364 +2023-06-30 02:00:00,0.9357523715307337 +2023-06-30 03:00:00,20.11447200674848 +2023-06-30 04:00:00,8.09203593936341 +2023-06-30 05:00:00,14.98396214532614 +2023-06-30 06:00:00,8.632327568592274 +2023-06-30 07:00:00,21.12663311868729 +2023-06-30 08:00:00,9.141104203184325 +2023-06-30 09:00:00,28.88919871661493 +2023-06-30 10:00:00,22.412149761427717 +2023-06-30 11:00:00,15.541780156892177 +2023-06-30 12:00:00,3.685370409447652 +2023-06-30 13:00:00,27.871402356171316 +2023-06-30 14:00:00,2.180081061342229 +2023-06-30 15:00:00,3.444427746625144 +2023-06-30 16:00:00,3.4264294725214284 +2023-06-30 17:00:00,0.2262806853257237 +2023-06-30 18:00:00,6.216580204233536 +2023-06-30 19:00:00,19.597523478077765 +2023-06-30 20:00:00,9.953151442123287 +2023-06-30 21:00:00,12.721122178351845 +2023-06-30 22:00:00,23.23543710692348 +2023-06-30 23:00:00,3.849396499556763 +2023-07-01 00:00:00,28.204301530810326 +2023-07-01 01:00:00,1.662694813950295 +2023-07-01 02:00:00,11.200683778645296 +2023-07-01 03:00:00,21.50674229809392 +2023-07-01 04:00:00,12.626855377752484 +2023-07-01 05:00:00,25.89749536121145 +2023-07-01 06:00:00,23.70738475102105 +2023-07-01 07:00:00,19.835447928864006 +2023-07-01 08:00:00,20.45279212670792 +2023-07-01 09:00:00,27.20688431305607 +2023-07-01 10:00:00,1.902915530969037 +2023-07-01 11:00:00,2.374675653885049 +2023-07-01 12:00:00,11.39633454774552 +2023-07-01 13:00:00,16.789494824857734 +2023-07-01 14:00:00,21.556862300549877 +2023-07-01 15:00:00,24.969747501228458 +2023-07-01 16:00:00,19.555518578439333 +2023-07-01 17:00:00,12.300017888022518 +2023-07-01 18:00:00,7.873513781070174 +2023-07-01 19:00:00,7.015581176848952 +2023-07-01 20:00:00,21.659294938612256 +2023-07-01 21:00:00,8.631327975632384 +2023-07-01 22:00:00,10.202082985195624 +2023-07-01 23:00:00,5.350995589295052 +2023-07-02 00:00:00,20.71983834480521 +2023-07-02 01:00:00,20.614151934132423 +2023-07-02 02:00:00,22.950590917408565 +2023-07-02 03:00:00,11.119796116061424 +2023-07-02 04:00:00,22.82712271325549 +2023-07-02 05:00:00,25.22422910115712 +2023-07-02 06:00:00,26.597363037382795 +2023-07-02 07:00:00,2.6340276250138093 +2023-07-02 08:00:00,28.080832860883813 +2023-07-02 09:00:00,14.86260600929289 +2023-07-02 10:00:00,15.445107557538178 +2023-07-02 11:00:00,8.867284211899804 +2023-07-02 12:00:00,9.30753515638002 +2023-07-02 13:00:00,11.188292864483689 +2023-07-02 14:00:00,29.536231024423664 +2023-07-02 15:00:00,24.0951623293957 +2023-07-02 16:00:00,5.848819871143221 +2023-07-02 17:00:00,25.462723008846883 +2023-07-02 18:00:00,13.42329886339524 +2023-07-02 19:00:00,27.16194765925053 +2023-07-02 20:00:00,22.456834707003 +2023-07-02 21:00:00,23.175722088826834 +2023-07-02 22:00:00,18.524589663006683 +2023-07-02 23:00:00,20.38012202224653 +2023-07-03 00:00:00,5.376114513397122 +2023-07-03 01:00:00,16.385314900962086 +2023-07-03 02:00:00,16.0297925720055 +2023-07-03 03:00:00,16.728915652069468 +2023-07-03 04:00:00,15.224154194357604 +2023-07-03 05:00:00,25.829430892027617 +2023-07-03 06:00:00,10.286521677746205 +2023-07-03 07:00:00,29.005946879984627 +2023-07-03 08:00:00,27.274200645278665 +2023-07-03 09:00:00,23.22627978277969 +2023-07-03 10:00:00,29.52959492742516 +2023-07-03 11:00:00,0.2715671072471093 +2023-07-03 12:00:00,0.1467159755160385 +2023-07-03 13:00:00,21.501165972497517 +2023-07-03 14:00:00,9.483753606968993 +2023-07-03 15:00:00,14.979512508952942 +2023-07-03 16:00:00,6.185410276738875 +2023-07-03 17:00:00,11.623584015554052 +2023-07-03 18:00:00,7.785998171604107 +2023-07-03 19:00:00,3.956827148862744 +2023-07-03 20:00:00,12.065681306132664 +2023-07-03 21:00:00,26.87991127825597 +2023-07-03 22:00:00,9.617370723831026 +2023-07-03 23:00:00,29.84256454795228 +2023-07-04 00:00:00,20.75627115958612 +2023-07-04 01:00:00,21.38168211315125 +2023-07-04 02:00:00,25.485425464419723 +2023-07-04 03:00:00,28.310541877721704 +2023-07-04 04:00:00,1.578311484966506 +2023-07-04 05:00:00,2.7903010217241238 +2023-07-04 06:00:00,27.718527306469213 +2023-07-04 07:00:00,16.692463910620496 +2023-07-04 08:00:00,29.653895360532804 +2023-07-04 09:00:00,20.091852515627384 +2023-07-04 10:00:00,10.746887928671365 +2023-07-04 11:00:00,22.20858720844272 +2023-07-04 12:00:00,11.308604401258458 +2023-07-04 13:00:00,25.342419270214396 +2023-07-04 14:00:00,4.442812993942392 +2023-07-04 15:00:00,2.0422087165970906 +2023-07-04 16:00:00,22.010828406552605 +2023-07-04 17:00:00,4.348520881119135 +2023-07-04 18:00:00,28.174794129361107 +2023-07-04 19:00:00,7.038747071885888 +2023-07-04 20:00:00,29.18359420892969 +2023-07-04 21:00:00,18.427389272560134 +2023-07-04 22:00:00,8.579521583973692 +2023-07-04 23:00:00,18.7421498715106 +2023-07-05 00:00:00,4.203371849087142 +2023-07-05 01:00:00,6.2905206513072445 +2023-07-05 02:00:00,16.673556711103792 +2023-07-05 03:00:00,7.082972330163241 +2023-07-05 04:00:00,6.93634683825011 +2023-07-05 05:00:00,27.603673839334377 +2023-07-05 06:00:00,19.052257694193354 +2023-07-05 07:00:00,16.302247929526995 +2023-07-05 08:00:00,25.29514536865108 +2023-07-05 09:00:00,6.232319276947563 +2023-07-05 10:00:00,11.78067493042565 +2023-07-05 11:00:00,20.781138076532105 +2023-07-05 12:00:00,20.72030753585675 +2023-07-05 13:00:00,14.835965785762776 +2023-07-05 14:00:00,12.77297435470555 +2023-07-05 15:00:00,8.243160814035736 +2023-07-05 16:00:00,8.64583573383863 +2023-07-05 17:00:00,16.252688713222867 +2023-07-05 18:00:00,12.061589962864929 +2023-07-05 19:00:00,23.854590867518272 +2023-07-05 20:00:00,5.562668286686273 +2023-07-05 21:00:00,0.4665739618710229 +2023-07-05 22:00:00,3.2821170595150595 +2023-07-05 23:00:00,20.94286142286067 +2023-07-06 00:00:00,12.651248509237734 +2023-07-06 01:00:00,23.41047616558741 +2023-07-06 02:00:00,20.22900092706788 +2023-07-06 03:00:00,24.65386629991088 +2023-07-06 04:00:00,8.941867879982189 +2023-07-06 05:00:00,9.372977899978832 +2023-07-06 06:00:00,20.26548529703761 +2023-07-06 07:00:00,10.495326666855735 +2023-07-06 08:00:00,3.2516898270946117 +2023-07-06 09:00:00,14.913938957597152 +2023-07-06 10:00:00,27.47579943181302 +2023-07-06 11:00:00,8.432396539338821 +2023-07-06 12:00:00,4.235972286344376 +2023-07-06 13:00:00,14.219089919018025 +2023-07-06 14:00:00,12.497158699728434 +2023-07-06 15:00:00,8.921724041708725 +2023-07-06 16:00:00,9.976771052628562 +2023-07-06 17:00:00,12.68902135553218 +2023-07-06 18:00:00,17.108200731287894 +2023-07-06 19:00:00,21.123908297338577 +2023-07-06 20:00:00,14.501095923714551 +2023-07-06 21:00:00,1.5808083766798875 +2023-07-06 22:00:00,7.851027588663076 +2023-07-06 23:00:00,23.647892119618703 +2023-07-07 00:00:00,5.55797397478541 +2023-07-07 01:00:00,15.866537047377577 +2023-07-07 02:00:00,13.188250654659887 +2023-07-07 03:00:00,23.79025666114859 +2023-07-07 04:00:00,29.215159409469763 +2023-07-07 05:00:00,25.96691091632608 +2023-07-07 06:00:00,2.977547205803748 +2023-07-07 07:00:00,24.84497938147121 +2023-07-07 08:00:00,26.498365858198245 +2023-07-07 09:00:00,20.09517999194501 +2023-07-07 10:00:00,11.791880909485087 +2023-07-07 11:00:00,6.829264730947181 +2023-07-07 12:00:00,4.217370802551562 +2023-07-07 13:00:00,5.431013394592663 +2023-07-07 14:00:00,11.066002052427672 +2023-07-07 15:00:00,1.1739005149597317 +2023-07-07 16:00:00,2.022066843320656 +2023-07-07 17:00:00,21.3379238071442 +2023-07-07 18:00:00,0.5739342319064689 +2023-07-07 19:00:00,14.795411022230631 +2023-07-07 20:00:00,14.424908900287113 +2023-07-07 21:00:00,23.53242966609814 +2023-07-07 22:00:00,9.285459782774629 +2023-07-07 23:00:00,3.412576543835054 +2023-07-08 00:00:00,26.59156170541567 +2023-07-08 01:00:00,8.244584188518758 +2023-07-08 02:00:00,19.51172604809052 +2023-07-08 03:00:00,22.140088307143035 +2023-07-08 04:00:00,2.001605959159716 +2023-07-08 05:00:00,8.299082594126697 +2023-07-08 06:00:00,1.4594595860665094 +2023-07-08 07:00:00,0.500979176751879 +2023-07-08 08:00:00,5.877847966752664 +2023-07-08 09:00:00,28.28670241132461 +2023-07-08 10:00:00,20.26524575594107 +2023-07-08 11:00:00,4.311114935085091 +2023-07-08 12:00:00,11.803710022212798 +2023-07-08 13:00:00,6.646614420240553 +2023-07-08 14:00:00,10.594904806016345 +2023-07-08 15:00:00,17.199129311285276 +2023-07-08 16:00:00,24.837250147447893 +2023-07-08 17:00:00,23.595137221052383 +2023-07-08 18:00:00,13.597792363662434 +2023-07-08 19:00:00,20.485457311811263 +2023-07-08 20:00:00,27.79549578191139 +2023-07-08 21:00:00,2.243397852162301 +2023-07-08 22:00:00,1.4019136287883094 +2023-07-08 23:00:00,20.86463888452888 +2023-07-09 00:00:00,2.219443608259132 +2023-07-09 01:00:00,18.25461562385581 +2023-07-09 02:00:00,18.56340234701228 +2023-07-09 03:00:00,9.031968320864314 +2023-07-09 04:00:00,16.2527377780249 +2023-07-09 05:00:00,12.145335587937074 +2023-07-09 06:00:00,4.837527153006863 +2023-07-09 07:00:00,3.784586727178405 +2023-07-09 08:00:00,18.3070566260524 +2023-07-09 09:00:00,27.52783847784667 +2023-07-09 10:00:00,12.510852329466642 +2023-07-09 11:00:00,7.729976967565215 +2023-07-09 12:00:00,11.050709668507128 +2023-07-09 13:00:00,25.292229449002477 +2023-07-09 14:00:00,3.222566948283252 +2023-07-09 15:00:00,15.862923472088028 +2023-07-09 16:00:00,0.9309829878823994 +2023-07-09 17:00:00,17.86530104036331 +2023-07-09 18:00:00,2.9552861717581647 +2023-07-09 19:00:00,24.821031300297857 +2023-07-09 20:00:00,0.0847141858690214 +2023-07-09 21:00:00,4.4374744162021305 +2023-07-09 22:00:00,29.537097560378072 +2023-07-09 23:00:00,9.160769591175915 +2023-07-10 00:00:00,0.685431545807913 +2023-07-10 01:00:00,0.363282794138936 +2023-07-10 02:00:00,19.766025563073548 +2023-07-10 03:00:00,17.870701958365768 +2023-07-10 04:00:00,0.209759929379204 +2023-07-10 05:00:00,21.49412806488845 +2023-07-10 06:00:00,10.541691489422266 +2023-07-10 07:00:00,29.8528581459337 +2023-07-10 08:00:00,16.021065372046404 +2023-07-10 09:00:00,8.838667678085745 +2023-07-10 10:00:00,19.940772885293423 +2023-07-10 11:00:00,7.0547244951139945 +2023-07-10 12:00:00,23.69929070893401 +2023-07-10 13:00:00,20.16046425016522 +2023-07-10 14:00:00,29.231926101526 +2023-07-10 15:00:00,23.389295360130333 +2023-07-10 16:00:00,4.901706908322981 +2023-07-10 17:00:00,27.99015308826864 +2023-07-10 18:00:00,15.844376346243584 +2023-07-10 19:00:00,20.31607044552285 +2023-07-10 20:00:00,18.066105569964485 +2023-07-10 21:00:00,3.239289367796917 +2023-07-10 22:00:00,11.376593679389517 +2023-07-10 23:00:00,24.857114095354813 +2023-07-11 00:00:00,27.172247503265535 +2023-07-11 01:00:00,2.4888736212904314 +2023-07-11 02:00:00,15.839571372981592 +2023-07-11 03:00:00,0.3997456023195544 +2023-07-11 04:00:00,19.576419425928044 +2023-07-11 05:00:00,17.459029909355074 +2023-07-11 06:00:00,28.962438731764895 +2023-07-11 07:00:00,6.259435420738075 +2023-07-11 08:00:00,24.34075630878716 +2023-07-11 09:00:00,8.445317572931991 +2023-07-11 10:00:00,13.424995029117676 +2023-07-11 11:00:00,24.18644446528233 +2023-07-11 12:00:00,19.59579771119448 +2023-07-11 13:00:00,25.62435977619292 +2023-07-11 14:00:00,18.646046874884664 +2023-07-11 15:00:00,8.133513670421491 +2023-07-11 16:00:00,29.482072462012987 +2023-07-11 17:00:00,29.179750317850253 +2023-07-11 18:00:00,9.057567931997228 +2023-07-11 19:00:00,6.757752253695997 +2023-07-11 20:00:00,8.429438933882988 +2023-07-11 21:00:00,9.72896106446257 +2023-07-11 22:00:00,16.25660572093603 +2023-07-11 23:00:00,25.650977124526545 +2023-07-12 00:00:00,29.52745504341807 +2023-07-12 01:00:00,0.1904966379276618 +2023-07-12 02:00:00,0.4554018961066042 +2023-07-12 03:00:00,24.350853107739194 +2023-07-12 04:00:00,23.961161816675304 +2023-07-12 05:00:00,14.862034151186856 +2023-07-12 06:00:00,25.48623893490313 +2023-07-12 07:00:00,14.387580920087132 +2023-07-12 08:00:00,6.012996575805532 +2023-07-12 09:00:00,11.13499939482701 +2023-07-12 10:00:00,3.8232219956146993 +2023-07-12 11:00:00,3.254104284438286 +2023-07-12 12:00:00,21.446976938082816 +2023-07-12 13:00:00,21.736433050515565 +2023-07-12 14:00:00,10.471301212707449 +2023-07-12 15:00:00,8.562994901496474 +2023-07-12 16:00:00,14.255720975423442 +2023-07-12 17:00:00,19.2425262671011 +2023-07-12 18:00:00,16.175429113456286 +2023-07-12 19:00:00,18.57291859648557 +2023-07-12 20:00:00,12.21181803417418 +2023-07-12 21:00:00,15.236044110718357 +2023-07-12 22:00:00,16.017433641408562 +2023-07-12 23:00:00,7.737135064438947 +2023-07-13 00:00:00,23.40794652045633 +2023-07-13 01:00:00,6.308673904695812 +2023-07-13 02:00:00,21.538963222973408 +2023-07-13 03:00:00,14.39116683358652 +2023-07-13 04:00:00,22.95829280358513 +2023-07-13 05:00:00,3.479021933747095 +2023-07-13 06:00:00,15.138783304144123 +2023-07-13 07:00:00,20.08591002875731 +2023-07-13 08:00:00,21.87986319857837 +2023-07-13 09:00:00,19.201370962715743 +2023-07-13 10:00:00,14.54938820371215 +2023-07-13 11:00:00,1.4568646635172255 +2023-07-13 12:00:00,2.347816211656051 +2023-07-13 13:00:00,28.57029930962144 +2023-07-13 14:00:00,22.43267729412371 +2023-07-13 15:00:00,24.054757569004792 +2023-07-13 16:00:00,8.154573535690488 +2023-07-13 17:00:00,0.9412402342385984 +2023-07-13 18:00:00,26.738030179169883 +2023-07-13 19:00:00,15.666560104076805 +2023-07-13 20:00:00,8.822516116342168 +2023-07-13 21:00:00,29.426043651119084 +2023-07-13 22:00:00,2.038843517944385 +2023-07-13 23:00:00,2.653348054918081 +2023-07-14 00:00:00,13.685874250936688 +2023-07-14 01:00:00,19.980382493020457 +2023-07-14 02:00:00,12.28011465698499 +2023-07-14 03:00:00,18.763548950549435 +2023-07-14 04:00:00,15.896416005900912 +2023-07-14 05:00:00,9.764967206164512 +2023-07-14 06:00:00,24.217747861934637 +2023-07-14 07:00:00,25.71657150640781 +2023-07-14 08:00:00,25.65998841843289 +2023-07-14 09:00:00,16.14393174256064 +2023-07-14 10:00:00,17.2360875892237 +2023-07-14 11:00:00,24.83690593531307 +2023-07-14 12:00:00,24.62559447862325 +2023-07-14 13:00:00,19.86419357419599 +2023-07-14 14:00:00,16.45711519122143 +2023-07-14 15:00:00,4.260041793929581 +2023-07-14 16:00:00,14.085087589664411 +2023-07-14 17:00:00,5.190430923623152 +2023-07-14 18:00:00,17.93770039112169 +2023-07-14 19:00:00,17.58621784120973 +2023-07-14 20:00:00,23.28290996502788 +2023-07-14 21:00:00,0.3569777800398821 +2023-07-14 22:00:00,15.091943411614247 +2023-07-14 23:00:00,20.99824950666765 +2023-07-15 00:00:00,4.495634703943347 +2023-07-15 01:00:00,19.565620462839167 +2023-07-15 02:00:00,1.5921459890948877 +2023-07-15 03:00:00,5.497552784678826 +2023-07-15 04:00:00,12.867409024501177 +2023-07-15 05:00:00,20.35735321225788 +2023-07-15 06:00:00,1.426856429677965 +2023-07-15 07:00:00,21.95774730667373 +2023-07-15 08:00:00,0.4014044297503782 +2023-07-15 09:00:00,29.55876812823185 +2023-07-15 10:00:00,29.93541097495846 +2023-07-15 11:00:00,12.083602211034544 +2023-07-15 12:00:00,9.936658373838082 +2023-07-15 13:00:00,18.5041104132588 +2023-07-15 14:00:00,14.75429098910293 +2023-07-15 15:00:00,15.541571329371449 +2023-07-15 16:00:00,25.902436567437924 +2023-07-15 17:00:00,13.79466569558639 +2023-07-15 18:00:00,20.402393983682728 +2023-07-15 19:00:00,20.91247584253953 +2023-07-15 20:00:00,17.789997104626103 +2023-07-15 21:00:00,24.00896916258204 +2023-07-15 22:00:00,4.873961911381674 +2023-07-15 23:00:00,15.014388115954436 +2023-07-16 00:00:00,19.696291471043065 +2023-07-16 01:00:00,2.9436462990508163 +2023-07-16 02:00:00,14.459925481286414 +2023-07-16 03:00:00,0.9409784521306508 +2023-07-16 04:00:00,19.76175602885789 +2023-07-16 05:00:00,21.277186985114103 +2023-07-16 06:00:00,23.63804517430377 +2023-07-16 07:00:00,14.427259988927796 +2023-07-16 08:00:00,8.169890639501054 +2023-07-16 09:00:00,15.076813753856737 +2023-07-16 10:00:00,6.189055503865422 +2023-07-16 11:00:00,26.115655669462424 +2023-07-16 12:00:00,12.370205249983185 +2023-07-16 13:00:00,24.89946162532604 +2023-07-16 14:00:00,17.270003636184047 +2023-07-16 15:00:00,4.733138441052264 +2023-07-16 16:00:00,24.59383453380911 +2023-07-16 17:00:00,9.585103510703265 +2023-07-16 18:00:00,6.537619911246532 +2023-07-16 19:00:00,7.798256120493507 +2023-07-16 20:00:00,17.304327850393868 +2023-07-16 21:00:00,25.23887567644286 +2023-07-16 22:00:00,1.7851756774468397 +2023-07-16 23:00:00,12.355991043086943 +2023-07-17 00:00:00,15.950933672493532 +2023-07-17 01:00:00,24.994706568230686 +2023-07-17 02:00:00,22.57271761584323 +2023-07-17 03:00:00,5.883303981734253 +2023-07-17 04:00:00,29.133696815831595 +2023-07-17 05:00:00,21.42327029069196 +2023-07-17 06:00:00,15.73214939211006 +2023-07-17 07:00:00,6.276952886708108 +2023-07-17 08:00:00,11.115580597818504 +2023-07-17 09:00:00,9.559342519975353 +2023-07-17 10:00:00,1.8294401093870127 +2023-07-17 11:00:00,28.06321229261622 +2023-07-17 12:00:00,28.634971526883547 +2023-07-17 13:00:00,14.01459781803416 +2023-07-17 14:00:00,2.683025579750379 +2023-07-17 15:00:00,9.80432910150877 +2023-07-17 16:00:00,27.96819538149422 +2023-07-17 17:00:00,12.636662703159017 +2023-07-17 18:00:00,7.092009863145552 +2023-07-17 19:00:00,13.793841432890837 +2023-07-17 20:00:00,17.921751010959888 +2023-07-17 21:00:00,25.701507753881828 +2023-07-17 22:00:00,26.26038403706827 +2023-07-17 23:00:00,13.130448406083405 +2023-07-18 00:00:00,11.862781060702224 +2023-07-18 01:00:00,16.633539029590427 +2023-07-18 02:00:00,16.980383443021715 +2023-07-18 03:00:00,9.3038352375113 +2023-07-18 04:00:00,9.219431751723556 +2023-07-18 05:00:00,0.3413230143991974 +2023-07-18 06:00:00,5.884525335203064 +2023-07-18 07:00:00,15.281085694081266 +2023-07-18 08:00:00,10.668589898368086 +2023-07-18 09:00:00,26.993661202782096 +2023-07-18 10:00:00,27.74791875608345 +2023-07-18 11:00:00,4.1290424967608255 +2023-07-18 12:00:00,20.345550905947704 +2023-07-18 13:00:00,17.73401723356311 +2023-07-18 14:00:00,17.917200794807073 +2023-07-18 15:00:00,24.531723777873324 +2023-07-18 16:00:00,5.335470117103415 +2023-07-18 17:00:00,13.772967883478772 +2023-07-18 18:00:00,0.270771107407004 +2023-07-18 19:00:00,11.18960731789098 +2023-07-18 20:00:00,9.447758497562278 +2023-07-18 21:00:00,18.19018365654269 +2023-07-18 22:00:00,12.158241555180798 +2023-07-18 23:00:00,1.6341579902549053 +2023-07-19 00:00:00,26.22050517310226 +2023-07-19 01:00:00,15.61223045440287 +2023-07-19 02:00:00,0.9321612175277916 +2023-07-19 03:00:00,15.872462119659836 +2023-07-19 04:00:00,2.74218645302581 +2023-07-19 05:00:00,4.796014032645777 +2023-07-19 06:00:00,27.6405613502694 +2023-07-19 07:00:00,2.1257841629711294 +2023-07-19 08:00:00,23.525190736459685 +2023-07-19 09:00:00,13.883790112723007 +2023-07-19 10:00:00,23.20468771246796 +2023-07-19 11:00:00,28.051215675499108 +2023-07-19 12:00:00,0.365062869730488 +2023-07-19 13:00:00,20.280308992685285 +2023-07-19 14:00:00,22.30630201581284 +2023-07-19 15:00:00,2.862526301458489 +2023-07-19 16:00:00,11.792987662812497 +2023-07-19 17:00:00,23.941801441074453 +2023-07-19 18:00:00,8.854908311515253 +2023-07-19 19:00:00,25.146020028176466 +2023-07-19 20:00:00,1.922431680273855 +2023-07-19 21:00:00,29.842654069013733 +2023-07-19 22:00:00,23.263849897868543 +2023-07-19 23:00:00,6.896946927764207 +2023-07-20 00:00:00,0.8487926029088189 +2023-07-20 01:00:00,22.05402094251779 +2023-07-20 02:00:00,7.355694402965225 +2023-07-20 03:00:00,9.687844282521588 +2023-07-20 04:00:00,25.036390541476276 +2023-07-20 05:00:00,17.33726283135345 +2023-07-20 06:00:00,29.145064563734607 +2023-07-20 07:00:00,21.52194995175961 +2023-07-20 08:00:00,1.9441913369426789 +2023-07-20 09:00:00,23.296907903022248 +2023-07-20 10:00:00,14.16525493789747 +2023-07-20 11:00:00,25.93905396633972 +2023-07-20 12:00:00,20.2550252321938 +2023-07-20 13:00:00,5.483854615919311 +2023-07-20 14:00:00,8.045546650918375 +2023-07-20 15:00:00,28.062187614428275 +2023-07-20 16:00:00,3.308895308372781 +2023-07-20 17:00:00,5.9247961144519525 +2023-07-20 18:00:00,2.8091656332916823 +2023-07-20 19:00:00,22.98680241839253 +2023-07-20 20:00:00,20.316910970750307 +2023-07-20 21:00:00,6.65255008267165 +2023-07-20 22:00:00,9.780304767927756 +2023-07-20 23:00:00,24.379538217267697 +2023-07-21 00:00:00,7.27271284061985 +2023-07-21 01:00:00,8.152772597853811 +2023-07-21 02:00:00,2.8453047429586875 +2023-07-21 03:00:00,15.412086393827936 +2023-07-21 04:00:00,12.002851601194806 +2023-07-21 05:00:00,3.634973870291466 +2023-07-21 06:00:00,12.57173616591439 +2023-07-21 07:00:00,27.91307209211548 +2023-07-21 08:00:00,18.39508258292576 +2023-07-21 09:00:00,29.178953158688813 +2023-07-21 10:00:00,0.7689381177458043 +2023-07-21 11:00:00,2.3037547424914706 +2023-07-21 12:00:00,28.910928524588336 +2023-07-21 13:00:00,25.87903324946791 +2023-07-21 14:00:00,18.26694713877757 +2023-07-21 15:00:00,9.001338685279523 +2023-07-21 16:00:00,26.896056627822784 +2023-07-21 17:00:00,17.62220656415369 +2023-07-21 18:00:00,12.56877078529036 +2023-07-21 19:00:00,3.8382303391057992 +2023-07-21 20:00:00,1.9013481628984183 +2023-07-21 21:00:00,12.503592674477131 +2023-07-21 22:00:00,4.998842257685405 +2023-07-21 23:00:00,19.99037795734105 +2023-07-22 00:00:00,17.834667407683 +2023-07-22 01:00:00,13.036618039937814 +2023-07-22 02:00:00,21.60726071786959 +2023-07-22 03:00:00,25.044221136495224 +2023-07-22 04:00:00,16.18921682219538 +2023-07-22 05:00:00,12.773849754761615 +2023-07-22 06:00:00,3.967202042631465 +2023-07-22 07:00:00,5.274995790018892 +2023-07-22 08:00:00,19.07556690564624 +2023-07-22 09:00:00,1.9804837307720868 +2023-07-22 10:00:00,21.8152856326208 +2023-07-22 11:00:00,2.3662144740824638 +2023-07-22 12:00:00,29.329765743620648 +2023-07-22 13:00:00,13.847248936835303 +2023-07-22 14:00:00,29.648873529998088 +2023-07-22 15:00:00,12.157347178300082 +2023-07-22 16:00:00,21.79441367742245 +2023-07-22 17:00:00,19.414885141712062 +2023-07-22 18:00:00,12.746080886552043 +2023-07-22 19:00:00,4.106249629705521 +2023-07-22 20:00:00,3.623191758109872 +2023-07-22 21:00:00,14.047692743165904 +2023-07-22 22:00:00,29.38290085039169 +2023-07-22 23:00:00,5.571079887502979 +2023-07-23 00:00:00,7.285530047840043 +2023-07-23 01:00:00,13.389596496145872 +2023-07-23 02:00:00,25.126662734174943 +2023-07-23 03:00:00,23.073052063257567 +2023-07-23 04:00:00,2.612058600577826 +2023-07-23 05:00:00,19.970062827010874 +2023-07-23 06:00:00,17.265518985428443 +2023-07-23 07:00:00,14.797674590706848 +2023-07-23 08:00:00,27.123010093497683 +2023-07-23 09:00:00,11.629866067199204 +2023-07-23 10:00:00,8.607630928036887 +2023-07-23 11:00:00,10.969250524561373 +2023-07-23 12:00:00,5.360372545734132 +2023-07-23 13:00:00,21.1705569599089 +2023-07-23 14:00:00,0.7856208616357263 +2023-07-23 15:00:00,15.5699377120721 +2023-07-23 16:00:00,14.580895890449735 +2023-07-23 17:00:00,13.402079677268029 +2023-07-23 18:00:00,23.672977461541382 +2023-07-23 19:00:00,18.98265978357016 +2023-07-23 20:00:00,1.1579099691759065 +2023-07-23 21:00:00,5.669526425736794 +2023-07-23 22:00:00,5.526316293015762 +2023-07-23 23:00:00,6.155909795502444 +2023-07-24 00:00:00,16.452812885678902 +2023-07-24 01:00:00,10.578774390068777 +2023-07-24 02:00:00,14.15191058035375 +2023-07-24 03:00:00,8.303402532156515 +2023-07-24 04:00:00,9.6439528241475 +2023-07-24 05:00:00,0.1444824707922454 +2023-07-24 06:00:00,8.307778499527261 +2023-07-24 07:00:00,29.33015139443711 +2023-07-24 08:00:00,28.559068813505103 +2023-07-24 09:00:00,15.711934224474373 +2023-07-24 10:00:00,5.832142474758032 +2023-07-24 11:00:00,26.68236492458784 +2023-07-24 12:00:00,19.198759965150384 +2023-07-24 13:00:00,8.072975821118616 +2023-07-24 14:00:00,6.120753881630857 +2023-07-24 15:00:00,20.48243772178706 +2023-07-24 16:00:00,13.23588814899926 +2023-07-24 17:00:00,26.12448938691477 +2023-07-24 18:00:00,2.1180987817183983 +2023-07-24 19:00:00,28.205874115069644 +2023-07-24 20:00:00,21.054822873424893 +2023-07-24 21:00:00,19.919393771931706 +2023-07-24 22:00:00,13.145106327250408 +2023-07-24 23:00:00,19.896481133038822 +2023-07-25 00:00:00,14.452844136000326 +2023-07-25 01:00:00,6.527934838128835 +2023-07-25 02:00:00,20.269654893808863 +2023-07-25 03:00:00,7.354728576397576 +2023-07-25 04:00:00,5.227592454946826 +2023-07-25 05:00:00,5.003830750515707 +2023-07-25 06:00:00,13.074005151388738 +2023-07-25 07:00:00,6.1860510146316505 +2023-07-25 08:00:00,9.212164140351442 +2023-07-25 09:00:00,10.957122562078714 +2023-07-25 10:00:00,20.978102612010066 +2023-07-25 11:00:00,19.02190680132905 +2023-07-25 12:00:00,12.302008389170387 +2023-07-25 13:00:00,10.030383520750975 +2023-07-25 14:00:00,4.577673744841347 +2023-07-25 15:00:00,5.126824210349772 +2023-07-25 16:00:00,19.742428657694216 +2023-07-25 17:00:00,17.19676858511605 +2023-07-25 18:00:00,28.000853124677256 +2023-07-25 19:00:00,23.14590093632429 +2023-07-25 20:00:00,7.426313686458373 +2023-07-25 21:00:00,11.056111454042206 +2023-07-25 22:00:00,22.30834440046766 +2023-07-25 23:00:00,12.184083724571463 +2023-07-26 00:00:00,0.6779413924936206 +2023-07-26 01:00:00,3.4581978359237686 +2023-07-26 02:00:00,16.736867877609292 +2023-07-26 03:00:00,6.233135475910736 +2023-07-26 04:00:00,20.08332452306224 +2023-07-26 05:00:00,20.85120311562045 +2023-07-26 06:00:00,0.0534242959729303 +2023-07-26 07:00:00,11.415711851930205 +2023-07-26 08:00:00,6.188297811408802 +2023-07-26 09:00:00,19.127965040818395 +2023-07-26 10:00:00,9.355506235334634 +2023-07-26 11:00:00,4.249928973593249 +2023-07-26 12:00:00,22.207280557682616 +2023-07-26 13:00:00,3.476828184879166 +2023-07-26 14:00:00,10.071835770592074 +2023-07-26 15:00:00,13.96073163237966 +2023-07-26 16:00:00,11.768169351335358 +2023-07-26 17:00:00,4.149673183473508 +2023-07-26 18:00:00,27.303203983635875 +2023-07-26 19:00:00,20.474337082837696 +2023-07-26 20:00:00,9.268734960066515 +2023-07-26 21:00:00,22.98967541473409 +2023-07-26 22:00:00,20.44042350553768 +2023-07-26 23:00:00,5.605167787840214 +2023-07-27 00:00:00,10.001709340450844 +2023-07-27 01:00:00,28.094449933227605 +2023-07-27 02:00:00,19.898224829627612 +2023-07-27 03:00:00,28.04443742804957 +2023-07-27 04:00:00,28.374815422018543 +2023-07-27 05:00:00,11.094722952208286 +2023-07-27 06:00:00,25.225161195450465 +2023-07-27 07:00:00,8.9002933904661 +2023-07-27 08:00:00,11.236484919015638 +2023-07-27 09:00:00,19.59354957710685 +2023-07-27 10:00:00,28.672485106957616 +2023-07-27 11:00:00,24.90266235823105 +2023-07-27 12:00:00,7.633275683451189 +2023-07-27 13:00:00,18.698296152349595 +2023-07-27 14:00:00,22.444370285003867 +2023-07-27 15:00:00,14.159790132952566 +2023-07-27 16:00:00,22.58546028241297 +2023-07-27 17:00:00,26.154058296416395 +2023-07-27 18:00:00,3.2705032371114884 +2023-07-27 19:00:00,6.55297027481197 +2023-07-27 20:00:00,18.90564165439772 +2023-07-27 21:00:00,19.966022333888333 +2023-07-27 22:00:00,28.080775444497384 +2023-07-27 23:00:00,17.292499732231555 +2023-07-28 00:00:00,9.83136821523624 +2023-07-28 01:00:00,8.941270116418764 +2023-07-28 02:00:00,18.652008591692752 +2023-07-28 03:00:00,8.342354501872741 +2023-07-28 04:00:00,13.156719276469149 +2023-07-28 05:00:00,28.898423193561683 +2023-07-28 06:00:00,29.60158529407629 +2023-07-28 07:00:00,24.673419813682617 +2023-07-28 08:00:00,27.92570941435605 +2023-07-28 09:00:00,1.154989403755018 +2023-07-28 10:00:00,25.587651841742584 +2023-07-28 11:00:00,10.629672599249156 +2023-07-28 12:00:00,2.2367806265775227 +2023-07-28 13:00:00,3.525772809625871 +2023-07-28 14:00:00,10.293381615582447 +2023-07-28 15:00:00,21.7860682341666 +2023-07-28 16:00:00,23.123244565778663 +2023-07-28 17:00:00,27.720113362004003 +2023-07-28 18:00:00,28.15095401319591 +2023-07-28 19:00:00,8.070034759090063 +2023-07-28 20:00:00,26.30617005767631 +2023-07-28 21:00:00,26.396599204506547 +2023-07-28 22:00:00,8.569654535770582 +2023-07-28 23:00:00,5.833043245582975 +2023-07-29 00:00:00,12.125696072764663 +2023-07-29 01:00:00,21.449772344066503 +2023-07-29 02:00:00,25.209741853218706 +2023-07-29 03:00:00,21.44815536468437 +2023-07-29 04:00:00,28.135838689935103 +2023-07-29 05:00:00,14.282282297781553 +2023-07-29 06:00:00,14.02297991046941 +2023-07-29 07:00:00,13.138409837612562 +2023-07-29 08:00:00,5.677580939368862 +2023-07-29 09:00:00,13.164397899948328 +2023-07-29 10:00:00,2.668901295640463 +2023-07-29 11:00:00,8.214463733915721 +2023-07-29 12:00:00,25.64972568306939 +2023-07-29 13:00:00,21.033675469201917 +2023-07-29 14:00:00,29.711776689815725 +2023-07-29 15:00:00,1.246139124650496 +2023-07-29 16:00:00,27.918556059021952 +2023-07-29 17:00:00,27.042701058696966 +2023-07-29 18:00:00,24.665691019584955 +2023-07-29 19:00:00,21.90900164601152 +2023-07-29 20:00:00,0.6693360500695944 +2023-07-29 21:00:00,25.769941265415078 +2023-07-29 22:00:00,8.570485964305709 +2023-07-29 23:00:00,19.8518136008662 +2023-07-30 00:00:00,2.525515509132826 +2023-07-30 01:00:00,7.500226674874394 +2023-07-30 02:00:00,1.4975475401202287 +2023-07-30 03:00:00,25.082916762163656 +2023-07-30 04:00:00,27.244924667854207 +2023-07-30 05:00:00,1.3263329727163364 +2023-07-30 06:00:00,24.26589245694856 +2023-07-30 07:00:00,20.248535458565907 +2023-07-30 08:00:00,9.4513083426712 +2023-07-30 09:00:00,23.2028556233675 +2023-07-30 10:00:00,7.631182087281435 +2023-07-30 11:00:00,1.7253834740474494 +2023-07-30 12:00:00,3.1242650482230783 +2023-07-30 13:00:00,13.498254152410397 +2023-07-30 14:00:00,16.068622426571352 +2023-07-30 15:00:00,17.472084709811902 +2023-07-30 16:00:00,21.17399877234274 +2023-07-30 17:00:00,7.0723869037875815 +2023-07-30 18:00:00,7.596785406222351 +2023-07-30 19:00:00,21.884919595001342 +2023-07-30 20:00:00,26.57521908717161 +2023-07-30 21:00:00,17.174471927090835 +2023-07-30 22:00:00,6.734075366318411 +2023-07-30 23:00:00,24.52178999871042 +2023-07-31 00:00:00,25.681223709733374 +2023-07-31 01:00:00,17.47521003471084 +2023-07-31 02:00:00,14.584613870608838 +2023-07-31 03:00:00,8.851439520663678 +2023-07-31 04:00:00,15.6683723737454 +2023-07-31 05:00:00,12.504116231081252 +2023-07-31 06:00:00,4.219949620049287 +2023-07-31 07:00:00,16.265250568495006 +2023-07-31 08:00:00,3.109320794449885 +2023-07-31 09:00:00,7.98883781961285 +2023-07-31 10:00:00,0.230490957820223 +2023-07-31 11:00:00,21.3361242341103 +2023-07-31 12:00:00,0.0261178280835105 +2023-07-31 13:00:00,9.280172072235164 +2023-07-31 14:00:00,16.394111965945445 +2023-07-31 15:00:00,19.581179010647872 +2023-07-31 16:00:00,23.066477287833223 +2023-07-31 17:00:00,24.092100075263566 +2023-07-31 18:00:00,8.403112329685907 +2023-07-31 19:00:00,1.456368431911489 +2023-07-31 20:00:00,9.002443525358997 +2023-07-31 21:00:00,13.342732952483075 +2023-07-31 22:00:00,23.788115367990777 +2023-07-31 23:00:00,26.26651137602476 +2023-08-01 00:00:00,26.602168746456844 +2023-08-01 01:00:00,13.334876894642033 +2023-08-01 02:00:00,25.494581115112812 +2023-08-01 03:00:00,20.657684011082655 +2023-08-01 04:00:00,2.5512917917578117 +2023-08-01 05:00:00,17.273012817252592 +2023-08-01 06:00:00,0.6033074279385298 +2023-08-01 07:00:00,12.61676657952014 +2023-08-01 08:00:00,27.130833171589828 +2023-08-01 09:00:00,26.92169996043895 +2023-08-01 10:00:00,28.777620790416314 +2023-08-01 11:00:00,27.043610292835304 +2023-08-01 12:00:00,16.501102556139312 +2023-08-01 13:00:00,21.498235507669207 +2023-08-01 14:00:00,13.682591963305306 +2023-08-01 15:00:00,13.08072468751389 +2023-08-01 16:00:00,20.181880852071323 +2023-08-01 17:00:00,4.46121101092788 +2023-08-01 18:00:00,26.58981141299629 +2023-08-01 19:00:00,9.962269265507487 +2023-08-01 20:00:00,26.468552242310647 +2023-08-01 21:00:00,5.3289640596476815 +2023-08-01 22:00:00,0.6797796407123213 +2023-08-01 23:00:00,22.254747820299407 +2023-08-02 00:00:00,12.012914206669622 +2023-08-02 01:00:00,8.684422810978479 +2023-08-02 02:00:00,1.5158011879683286 +2023-08-02 03:00:00,7.291008540512624 +2023-08-02 04:00:00,3.3618012114347504 +2023-08-02 05:00:00,15.555197452800252 +2023-08-02 06:00:00,5.308283966149433 +2023-08-02 07:00:00,13.018606496180723 +2023-08-02 08:00:00,29.25304775369941 +2023-08-02 09:00:00,22.85656690875293 +2023-08-02 10:00:00,12.238760544095625 +2023-08-02 11:00:00,24.84891714897149 +2023-08-02 12:00:00,16.826047227048353 +2023-08-02 13:00:00,1.0312383874255593 +2023-08-02 14:00:00,6.988229434140592 +2023-08-02 15:00:00,15.367910801120024 +2023-08-02 16:00:00,17.4056695495759 +2023-08-02 17:00:00,28.110287829785 +2023-08-02 18:00:00,10.286444874035457 +2023-08-02 19:00:00,21.138869261219565 +2023-08-02 20:00:00,7.460536208130199 +2023-08-02 21:00:00,15.97558291679333 +2023-08-02 22:00:00,10.089253042674684 +2023-08-02 23:00:00,11.126501264568248 +2023-08-03 00:00:00,28.12668400922036 +2023-08-03 01:00:00,16.89462098900036 +2023-08-03 02:00:00,13.727928174965443 +2023-08-03 03:00:00,24.70994083476673 +2023-08-03 04:00:00,27.365755908157062 +2023-08-03 05:00:00,3.4156446096863355 +2023-08-03 06:00:00,8.717902357860774 +2023-08-03 07:00:00,3.7095053513307854 +2023-08-03 08:00:00,28.1948100428945 +2023-08-03 09:00:00,6.97719469140313 +2023-08-03 10:00:00,10.951787282392615 +2023-08-03 11:00:00,18.680618164482805 +2023-08-03 12:00:00,18.928825414217357 +2023-08-03 13:00:00,9.269888240911657 +2023-08-03 14:00:00,1.192543844122671 +2023-08-03 15:00:00,24.478135536747214 +2023-08-03 16:00:00,2.939430260514829 +2023-08-03 17:00:00,15.66708885895046 +2023-08-03 18:00:00,26.9054510733486 +2023-08-03 19:00:00,7.39827306560773 +2023-08-03 20:00:00,8.880062259856148 +2023-08-03 21:00:00,0.1038100980830269 +2023-08-03 22:00:00,18.13350398521187 +2023-08-03 23:00:00,13.834876524505544 +2023-08-04 00:00:00,26.11996776406596 +2023-08-04 01:00:00,18.577853316945447 +2023-08-04 02:00:00,16.560125343520376 +2023-08-04 03:00:00,0.7217239949006315 +2023-08-04 04:00:00,5.110534685334811 +2023-08-04 05:00:00,5.279295122108346 +2023-08-04 06:00:00,16.808902599289873 +2023-08-04 07:00:00,5.676044147207977 +2023-08-04 08:00:00,23.00817400966482 +2023-08-04 09:00:00,13.95270488842083 +2023-08-04 10:00:00,8.498778856246798 +2023-08-04 11:00:00,15.065455700735562 +2023-08-04 12:00:00,25.825340549481023 +2023-08-04 13:00:00,8.049279269430071 +2023-08-04 14:00:00,23.12477672943901 +2023-08-04 15:00:00,13.455952970929566 +2023-08-04 16:00:00,7.042511907386524 +2023-08-04 17:00:00,2.193316620607937 +2023-08-04 18:00:00,24.13451801405768 +2023-08-04 19:00:00,26.023942468163497 +2023-08-04 20:00:00,12.88681317667475 +2023-08-04 21:00:00,20.13056284830986 +2023-08-04 22:00:00,16.12674084954592 +2023-08-04 23:00:00,6.697402172169985 +2023-08-05 00:00:00,23.34810534205728 +2023-08-05 01:00:00,13.829943331759802 +2023-08-05 02:00:00,28.85836236865619 +2023-08-05 03:00:00,18.423439873405755 +2023-08-05 04:00:00,27.363524028738464 +2023-08-05 05:00:00,22.464492930762997 +2023-08-05 06:00:00,17.049378340036913 +2023-08-05 07:00:00,7.450065524329198 +2023-08-05 08:00:00,4.630335765821416 +2023-08-05 09:00:00,12.210145995318086 +2023-08-05 10:00:00,9.57628546975023 +2023-08-05 11:00:00,14.299724531199075 +2023-08-05 12:00:00,10.96353211455298 +2023-08-05 13:00:00,19.26892751806049 +2023-08-05 14:00:00,26.159649673634007 +2023-08-05 15:00:00,8.25745757943722 +2023-08-05 16:00:00,4.560863817536261 +2023-08-05 17:00:00,1.4307234616906106 +2023-08-05 18:00:00,3.7920729586118673 +2023-08-05 19:00:00,17.975466471404545 +2023-08-05 20:00:00,10.54728643206724 +2023-08-05 21:00:00,26.22736178714564 +2023-08-05 22:00:00,16.728472082417962 +2023-08-05 23:00:00,28.7362192631298 +2023-08-06 00:00:00,7.821433324971077 +2023-08-06 01:00:00,27.18263685094425 +2023-08-06 02:00:00,26.13086341674912 +2023-08-06 03:00:00,11.252870586142064 +2023-08-06 04:00:00,12.89472412671872 +2023-08-06 05:00:00,17.91087163958104 +2023-08-06 06:00:00,4.85000917181064 +2023-08-06 07:00:00,15.128192726984317 +2023-08-06 08:00:00,4.465274362052218 +2023-08-06 09:00:00,29.796261501963567 +2023-08-06 10:00:00,1.2648775755173591 +2023-08-06 11:00:00,20.02577634840896 +2023-08-06 12:00:00,16.34031619454578 +2023-08-06 13:00:00,14.567028480547089 +2023-08-06 14:00:00,9.7114647373535 +2023-08-06 15:00:00,27.182599153311678 +2023-08-06 16:00:00,19.060635070655596 +2023-08-06 17:00:00,6.522406802245751 +2023-08-06 18:00:00,13.315191742005329 +2023-08-06 19:00:00,11.492961213575963 +2023-08-06 20:00:00,29.911148683294535 +2023-08-06 21:00:00,9.36785471810524 +2023-08-06 22:00:00,4.674111846130648 +2023-08-06 23:00:00,13.832565316212348 +2023-08-07 00:00:00,11.752124743669487 +2023-08-07 01:00:00,0.3182714903641315 +2023-08-07 02:00:00,13.82412856349513 +2023-08-07 03:00:00,24.34746897065643 +2023-08-07 04:00:00,0.7246670360598273 +2023-08-07 05:00:00,18.87786415692052 +2023-08-07 06:00:00,9.184269707785775 +2023-08-07 07:00:00,23.990867221787667 +2023-08-07 08:00:00,17.39142529688269 +2023-08-07 09:00:00,13.089075631192236 +2023-08-07 10:00:00,6.633228672545681 +2023-08-07 11:00:00,6.231244714761908 +2023-08-07 12:00:00,14.578136332443329 +2023-08-07 13:00:00,11.24256139270967 +2023-08-07 14:00:00,6.967211522190329 +2023-08-07 15:00:00,24.512750086364893 +2023-08-07 16:00:00,7.547125331149913 +2023-08-07 17:00:00,2.0989788713541326 +2023-08-07 18:00:00,5.940784803723424 +2023-08-07 19:00:00,9.890222241351047 +2023-08-07 20:00:00,0.3796648900185406 +2023-08-07 21:00:00,9.496610967833073 +2023-08-07 22:00:00,10.856813598417908 +2023-08-07 23:00:00,3.6515860978937753 +2023-08-08 00:00:00,29.441752997737407 +2023-08-08 01:00:00,28.80394053779157 +2023-08-08 02:00:00,17.62260017889051 +2023-08-08 03:00:00,2.260547171782478 +2023-08-08 04:00:00,14.072279528509654 +2023-08-08 05:00:00,27.06975714394393 +2023-08-08 06:00:00,11.951757968817711 +2023-08-08 07:00:00,16.98054419793343 +2023-08-08 08:00:00,13.967122703169126 +2023-08-08 09:00:00,4.945625513162641 +2023-08-08 10:00:00,29.43283238226966 +2023-08-08 11:00:00,12.711491055938511 +2023-08-08 12:00:00,21.046332499112008 +2023-08-08 13:00:00,25.86714228222744 +2023-08-08 14:00:00,1.0496750834481938 +2023-08-08 15:00:00,20.12295173426443 +2023-08-08 16:00:00,25.02035770504446 +2023-08-08 17:00:00,4.098968007502001 +2023-08-08 18:00:00,3.0494517633848783 +2023-08-08 19:00:00,12.637822989698744 +2023-08-08 20:00:00,20.40342929535837 +2023-08-08 21:00:00,8.097110873939044 +2023-08-08 22:00:00,29.50996678885132 +2023-08-08 23:00:00,5.982208786897148 +2023-08-09 00:00:00,27.662635282861466 +2023-08-09 01:00:00,24.6670231975558 +2023-08-09 02:00:00,10.706988999012053 +2023-08-09 03:00:00,17.84924799463247 +2023-08-09 04:00:00,9.358177088125563 +2023-08-09 05:00:00,7.656855683662156 +2023-08-09 06:00:00,2.3514475294048456 +2023-08-09 07:00:00,10.766281398859974 +2023-08-09 08:00:00,28.62545033490485 +2023-08-09 09:00:00,16.872412461802785 +2023-08-09 10:00:00,3.1046907660389502 +2023-08-09 11:00:00,12.524693245299105 +2023-08-09 12:00:00,18.945052755138796 +2023-08-09 13:00:00,3.744329008328372 +2023-08-09 14:00:00,8.33717999962019 +2023-08-09 15:00:00,18.071862808264296 +2023-08-09 16:00:00,10.407414055848824 +2023-08-09 17:00:00,3.8147574675793 +2023-08-09 18:00:00,19.551595788086267 +2023-08-09 19:00:00,16.28164190826602 +2023-08-09 20:00:00,15.460243040025755 +2023-08-09 21:00:00,27.656716914816425 +2023-08-09 22:00:00,27.77236578496781 +2023-08-09 23:00:00,7.647127739887159 +2023-08-10 00:00:00,12.542489303507896 +2023-08-10 01:00:00,10.363019710264872 +2023-08-10 02:00:00,10.956641683095974 +2023-08-10 03:00:00,26.19882870177747 +2023-08-10 04:00:00,5.054096162560384 +2023-08-10 05:00:00,21.38251646361087 +2023-08-10 06:00:00,4.322661567823114 +2023-08-10 07:00:00,29.43781002855861 +2023-08-10 08:00:00,17.303743235070627 +2023-08-10 09:00:00,10.474850369497334 +2023-08-10 10:00:00,15.745280138593127 +2023-08-10 11:00:00,25.008162110463516 +2023-08-10 12:00:00,18.28933651298027 +2023-08-10 13:00:00,1.0239929518632396 +2023-08-10 14:00:00,29.471958209802327 +2023-08-10 15:00:00,14.542046442334426 +2023-08-10 16:00:00,25.857738282200295 +2023-08-10 17:00:00,10.376016759510104 +2023-08-10 18:00:00,19.29589144009571 +2023-08-10 19:00:00,22.738769561113767 +2023-08-10 20:00:00,16.128733365308157 +2023-08-10 21:00:00,17.870586748102244 +2023-08-10 22:00:00,18.64409980106045 +2023-08-10 23:00:00,9.702202342202048 +2023-08-11 00:00:00,24.695822462829195 +2023-08-11 01:00:00,6.13328211265941 +2023-08-11 02:00:00,1.1377177126488836 +2023-08-11 03:00:00,22.345230366615848 +2023-08-11 04:00:00,19.917608458068987 +2023-08-11 05:00:00,27.460151602201844 +2023-08-11 06:00:00,15.260870142525947 +2023-08-11 07:00:00,28.60731564144145 +2023-08-11 08:00:00,19.091882784614544 +2023-08-11 09:00:00,16.90299222725726 +2023-08-11 10:00:00,2.632467915773471 +2023-08-11 11:00:00,20.93122150862091 +2023-08-11 12:00:00,24.528779109392268 +2023-08-11 13:00:00,26.07653180734604 +2023-08-11 14:00:00,0.1882865208136674 +2023-08-11 15:00:00,15.803730281948418 +2023-08-11 16:00:00,15.87269262172917 +2023-08-11 17:00:00,16.724756954403883 +2023-08-11 18:00:00,7.479127933032597 +2023-08-11 19:00:00,23.43886824755761 +2023-08-11 20:00:00,15.546629441711891 +2023-08-11 21:00:00,4.791458105476439 +2023-08-11 22:00:00,27.940323114695857 +2023-08-11 23:00:00,18.37983057098796 +2023-08-12 00:00:00,21.990170866465977 +2023-08-12 01:00:00,29.41582724230415 +2023-08-12 02:00:00,15.053171739921195 +2023-08-12 03:00:00,0.9881141910392056 +2023-08-12 04:00:00,29.753457434262344 +2023-08-12 05:00:00,16.90437800028074 +2023-08-12 06:00:00,0.6566593128417963 +2023-08-12 07:00:00,11.744388966121027 +2023-08-12 08:00:00,14.656654622604217 +2023-08-12 09:00:00,9.972549089760388 +2023-08-12 10:00:00,5.569217795721977 +2023-08-12 11:00:00,4.419253308193767 +2023-08-12 12:00:00,27.847377833872123 +2023-08-12 13:00:00,0.9106572314397176 +2023-08-12 14:00:00,16.217197331189155 +2023-08-12 15:00:00,16.47760710963567 +2023-08-12 16:00:00,23.62124937543594 +2023-08-12 17:00:00,0.1914228031599285 +2023-08-12 18:00:00,5.717858590454923 +2023-08-12 19:00:00,11.71788520615331 +2023-08-12 20:00:00,12.823829760581567 +2023-08-12 21:00:00,10.373255121666546 +2023-08-12 22:00:00,15.079810069236052 +2023-08-12 23:00:00,26.034893961848343 +2023-08-13 00:00:00,26.531130979517854 +2023-08-13 01:00:00,26.43485027055347 +2023-08-13 02:00:00,0.1489216042444763 +2023-08-13 03:00:00,7.563569075779029 +2023-08-13 04:00:00,25.420823264376278 +2023-08-13 05:00:00,19.61858697935076 +2023-08-13 06:00:00,5.20608765250501 +2023-08-13 07:00:00,14.139349823737026 +2023-08-13 08:00:00,9.86980057632515 +2023-08-13 09:00:00,10.743950687745333 +2023-08-13 10:00:00,16.04679810830116 +2023-08-13 11:00:00,2.417173657060292 +2023-08-13 12:00:00,13.455603423881856 +2023-08-13 13:00:00,5.590058688095864 +2023-08-13 14:00:00,6.747062756016557 +2023-08-13 15:00:00,18.19426666290808 +2023-08-13 16:00:00,4.650708743591663 +2023-08-13 17:00:00,18.18209916906348 +2023-08-13 18:00:00,28.86279926738016 +2023-08-13 19:00:00,12.935982123964544 +2023-08-13 20:00:00,8.066097888217532 +2023-08-13 21:00:00,19.37106403143767 +2023-08-13 22:00:00,4.841596648278807 +2023-08-13 23:00:00,11.148743308869776 +2023-08-14 00:00:00,12.815654784573688 +2023-08-14 01:00:00,19.06759798451684 +2023-08-14 02:00:00,17.093097140631837 +2023-08-14 03:00:00,20.762546704257694 +2023-08-14 04:00:00,13.667046247773724 +2023-08-14 05:00:00,20.49992880264077 +2023-08-14 06:00:00,5.517187397779699 +2023-08-14 07:00:00,4.045072497895132 +2023-08-14 08:00:00,9.148833422744262 +2023-08-14 09:00:00,11.63269802080675 +2023-08-14 10:00:00,16.141776889034727 +2023-08-14 11:00:00,13.284124396023737 +2023-08-14 12:00:00,22.42826926034149 +2023-08-14 13:00:00,7.281875735258634 +2023-08-14 14:00:00,21.987085447166063 +2023-08-14 15:00:00,18.39766160246973 +2023-08-14 16:00:00,4.016181792497687 +2023-08-14 17:00:00,2.1371344781567183 +2023-08-14 18:00:00,0.2644468370954422 +2023-08-14 19:00:00,19.65996473109345 +2023-08-14 20:00:00,23.358673350136435 +2023-08-14 21:00:00,18.84667081447096 +2023-08-14 22:00:00,8.491982604013776 +2023-08-14 23:00:00,6.060217679491018 +2023-08-15 00:00:00,23.62982417754255 +2023-08-15 01:00:00,7.271647374362825 +2023-08-15 02:00:00,7.704909006518351 +2023-08-15 03:00:00,12.175919948549891 +2023-08-15 04:00:00,9.343801057205894 +2023-08-15 05:00:00,14.633628181518208 +2023-08-15 06:00:00,8.744058785069099 +2023-08-15 07:00:00,6.832414009182154 +2023-08-15 08:00:00,16.236644654539944 +2023-08-15 09:00:00,19.302944988756156 +2023-08-15 10:00:00,6.061432899274792 +2023-08-15 11:00:00,19.06044878822256 +2023-08-15 12:00:00,11.157160858970837 +2023-08-15 13:00:00,19.63179400164425 +2023-08-15 14:00:00,12.934880428736031 +2023-08-15 15:00:00,15.184070804595354 +2023-08-15 16:00:00,23.37392323617792 +2023-08-15 17:00:00,20.764513411575805 +2023-08-15 18:00:00,15.37927854665545 +2023-08-15 19:00:00,19.002395084645936 +2023-08-15 20:00:00,8.19017767408685 +2023-08-15 21:00:00,25.04837523555236 +2023-08-15 22:00:00,16.056877685810925 +2023-08-15 23:00:00,15.22554030399982 +2023-08-16 00:00:00,27.140485127411477 +2023-08-16 01:00:00,1.8501348147678756 +2023-08-16 02:00:00,12.634143521679809 +2023-08-16 03:00:00,21.176797338561176 +2023-08-16 04:00:00,24.581564358693303 +2023-08-16 05:00:00,20.07902215837004 +2023-08-16 06:00:00,9.69834340515412 +2023-08-16 07:00:00,18.60238029928857 +2023-08-16 08:00:00,3.242182363440298 +2023-08-16 09:00:00,17.4517970866854 +2023-08-16 10:00:00,24.892384509374185 +2023-08-16 11:00:00,12.413764181672404 +2023-08-16 12:00:00,5.439601151688 +2023-08-16 13:00:00,29.23051983793872 +2023-08-16 14:00:00,12.53131946190681 +2023-08-16 15:00:00,24.346387385167624 +2023-08-16 16:00:00,25.044407299143305 +2023-08-16 17:00:00,22.704192636075973 +2023-08-16 18:00:00,16.218539859242394 +2023-08-16 19:00:00,16.341868524388367 +2023-08-16 20:00:00,25.854993501158063 +2023-08-16 21:00:00,0.2126619991784983 +2023-08-16 22:00:00,4.735055369508183 +2023-08-16 23:00:00,27.583833194020627 +2023-08-17 00:00:00,3.7188409187094496 +2023-08-17 01:00:00,28.929645864420355 +2023-08-17 02:00:00,28.642274455177724 +2023-08-17 03:00:00,6.881570370585886 +2023-08-17 04:00:00,12.186103784589896 +2023-08-17 05:00:00,0.559171060191187 +2023-08-17 06:00:00,15.102418207646252 +2023-08-17 07:00:00,26.14301872692764 +2023-08-17 08:00:00,3.105339615559842 +2023-08-17 09:00:00,29.704491490207744 +2023-08-17 10:00:00,27.137571683308064 +2023-08-17 11:00:00,16.10451554929118 +2023-08-17 12:00:00,15.952426186516975 +2023-08-17 13:00:00,28.23841421558618 +2023-08-17 14:00:00,5.784248012934755 +2023-08-17 15:00:00,26.72966205818515 +2023-08-17 16:00:00,3.454150974393376 +2023-08-17 17:00:00,14.219788857180156 +2023-08-17 18:00:00,15.551834234281252 +2023-08-17 19:00:00,11.63442202985687 +2023-08-17 20:00:00,6.2966739434403705 +2023-08-17 21:00:00,3.684464549825748 +2023-08-17 22:00:00,5.161925531725011 +2023-08-17 23:00:00,4.1674191833855705 +2023-08-18 00:00:00,16.822428045694448 +2023-08-18 01:00:00,27.8121094830637 +2023-08-18 02:00:00,26.07405457628837 +2023-08-18 03:00:00,17.389094873339957 +2023-08-18 04:00:00,11.088074596268632 +2023-08-18 05:00:00,23.25636291365612 +2023-08-18 06:00:00,1.9170698946482545 +2023-08-18 07:00:00,0.9845389668376914 +2023-08-18 08:00:00,16.22734199748849 +2023-08-18 09:00:00,27.360532861707824 +2023-08-18 10:00:00,21.113107884133782 +2023-08-18 11:00:00,13.88945740539156 +2023-08-18 12:00:00,16.12680733423239 +2023-08-18 13:00:00,11.11543059053271 +2023-08-18 14:00:00,16.063049688282803 +2023-08-18 15:00:00,28.15364570561128 +2023-08-18 16:00:00,11.442092312472212 +2023-08-18 17:00:00,15.90166805479123 +2023-08-18 18:00:00,26.80182553997475 +2023-08-18 19:00:00,28.00392406749389 +2023-08-18 20:00:00,21.71393763460907 +2023-08-18 21:00:00,21.47264060764837 +2023-08-18 22:00:00,24.00836386062933 +2023-08-18 23:00:00,13.90734733780254 +2023-08-19 00:00:00,17.227300082159733 +2023-08-19 01:00:00,26.75970715772383 +2023-08-19 02:00:00,25.8524820244489 +2023-08-19 03:00:00,4.734287417439877 +2023-08-19 04:00:00,10.153889507422411 +2023-08-19 05:00:00,6.743912997688079 +2023-08-19 06:00:00,22.25081756965381 +2023-08-19 07:00:00,24.61974753322627 +2023-08-19 08:00:00,13.895141400410486 +2023-08-19 09:00:00,20.27473992630728 +2023-08-19 10:00:00,27.512000368212533 +2023-08-19 11:00:00,14.686085375340204 +2023-08-19 12:00:00,22.287191585017407 +2023-08-19 13:00:00,27.617205193305303 +2023-08-19 14:00:00,9.500942397447718 +2023-08-19 15:00:00,11.515851346265162 +2023-08-19 16:00:00,11.363468112162158 +2023-08-19 17:00:00,10.398070798893029 +2023-08-19 18:00:00,11.908668545887233 +2023-08-19 19:00:00,8.911538482605717 +2023-08-19 20:00:00,0.241370098046536 +2023-08-19 21:00:00,20.626106579263023 +2023-08-19 22:00:00,22.345853084751752 +2023-08-19 23:00:00,5.112593587216296 +2023-08-20 00:00:00,17.665248692581475 +2023-08-20 01:00:00,4.053460042817541 +2023-08-20 02:00:00,2.9911185228148227 +2023-08-20 03:00:00,19.045693561450005 +2023-08-20 04:00:00,22.34857449658768 +2023-08-20 05:00:00,0.3202111176052091 +2023-08-20 06:00:00,12.74956118364974 +2023-08-20 07:00:00,23.970229870073457 +2023-08-20 08:00:00,7.480326003612355 +2023-08-20 09:00:00,17.396493612907076 +2023-08-20 10:00:00,7.845706629048567 +2023-08-20 11:00:00,20.80318528475714 +2023-08-20 12:00:00,3.360427567966988 +2023-08-20 13:00:00,27.81958584396926 +2023-08-20 14:00:00,21.780451786446623 +2023-08-20 15:00:00,7.876708894123091 +2023-08-20 16:00:00,7.014351245241766 +2023-08-20 17:00:00,6.158407287644382 +2023-08-20 18:00:00,19.893320081039224 +2023-08-20 19:00:00,2.922235779642941 +2023-08-20 20:00:00,10.163083497450668 +2023-08-20 21:00:00,1.892393820806077 +2023-08-20 22:00:00,8.947769200775458 +2023-08-20 23:00:00,27.669467101836112 +2023-08-21 00:00:00,21.483708096362182 +2023-08-21 01:00:00,8.908090502208958 +2023-08-21 02:00:00,17.92940104826299 +2023-08-21 03:00:00,20.184795434085764 +2023-08-21 04:00:00,14.683330962684837 +2023-08-21 05:00:00,27.931338935767563 +2023-08-21 06:00:00,17.505783534661013 +2023-08-21 07:00:00,27.097229363003876 +2023-08-21 08:00:00,17.392851845239772 +2023-08-21 09:00:00,11.392536523033009 +2023-08-21 10:00:00,14.503289667651046 +2023-08-21 11:00:00,13.817145292343053 +2023-08-21 12:00:00,2.117147661756269 +2023-08-21 13:00:00,8.576124124580822 +2023-08-21 14:00:00,15.963034326983292 +2023-08-21 15:00:00,4.621539685445157 +2023-08-21 16:00:00,9.837381196318184 +2023-08-21 17:00:00,28.1724911168169 +2023-08-21 18:00:00,3.912489586371116 +2023-08-21 19:00:00,21.85100177173791 +2023-08-21 20:00:00,26.30620641487655 +2023-08-21 21:00:00,1.3700213626509838 +2023-08-21 22:00:00,9.803572598805856 +2023-08-21 23:00:00,16.511225539294873 +2023-08-22 00:00:00,0.8604821051582467 +2023-08-22 01:00:00,3.8583583765254073 +2023-08-22 02:00:00,0.0571323055666195 +2023-08-22 03:00:00,3.677402410084649 +2023-08-22 04:00:00,0.7823695815500009 +2023-08-22 05:00:00,15.836896301649393 +2023-08-22 06:00:00,11.077043201036268 +2023-08-22 07:00:00,21.580222665185705 +2023-08-22 08:00:00,1.384548795161309 +2023-08-22 09:00:00,13.705827970927478 +2023-08-22 10:00:00,21.9038415382594 +2023-08-22 11:00:00,17.956649117312338 +2023-08-22 12:00:00,0.5641534517330016 +2023-08-22 13:00:00,26.389918743621656 +2023-08-22 14:00:00,15.799154853451329 +2023-08-22 15:00:00,18.502972295655518 +2023-08-22 16:00:00,13.031859331783402 +2023-08-22 17:00:00,0.9435552898498778 +2023-08-22 18:00:00,22.188534784425112 +2023-08-22 19:00:00,7.944896576143625 +2023-08-22 20:00:00,19.20820968380745 +2023-08-22 21:00:00,29.512720617783085 +2023-08-22 22:00:00,0.4160642957402527 +2023-08-22 23:00:00,18.96442773234842 +2023-08-23 00:00:00,15.781131360313028 +2023-08-23 01:00:00,12.135231941196748 +2023-08-23 02:00:00,3.404298995422113 +2023-08-23 03:00:00,29.50664950858527 +2023-08-23 04:00:00,8.150198827986724 +2023-08-23 05:00:00,7.488059254403602 +2023-08-23 06:00:00,4.749982170695261 +2023-08-23 07:00:00,19.725257463059062 +2023-08-23 08:00:00,8.861427194399358 +2023-08-23 09:00:00,25.511322356284698 +2023-08-23 10:00:00,29.30399317225607 +2023-08-23 11:00:00,7.870100588956824 +2023-08-23 12:00:00,28.284244431157717 +2023-08-23 13:00:00,19.128309361891716 +2023-08-23 14:00:00,23.387588637355567 +2023-08-23 15:00:00,27.04429717327243 +2023-08-23 16:00:00,13.935844208426593 +2023-08-23 17:00:00,13.45738168853703 +2023-08-23 18:00:00,20.0095228679588 +2023-08-23 19:00:00,7.472316664040552 +2023-08-23 20:00:00,23.52546144378603 +2023-08-23 21:00:00,16.184488124767064 +2023-08-23 22:00:00,8.130019406410899 +2023-08-23 23:00:00,5.918660766838476 +2023-08-24 00:00:00,6.910242881419678 +2023-08-24 01:00:00,20.136630448201828 +2023-08-24 02:00:00,24.606561139643706 +2023-08-24 03:00:00,22.90324724749034 +2023-08-24 04:00:00,10.700786633355191 +2023-08-24 05:00:00,13.082670912408537 +2023-08-24 06:00:00,24.636667589835582 +2023-08-24 07:00:00,11.91024037740313 +2023-08-24 08:00:00,18.94278100156121 +2023-08-24 09:00:00,1.3434409614032772 +2023-08-24 10:00:00,29.667084123829685 +2023-08-24 11:00:00,11.080691321267864 +2023-08-24 12:00:00,22.84044609921529 +2023-08-24 13:00:00,4.005535569109763 +2023-08-24 14:00:00,3.6901330109685726 +2023-08-24 15:00:00,1.835983994083356 +2023-08-24 16:00:00,22.763661204306366 +2023-08-24 17:00:00,25.32142961551924 +2023-08-24 18:00:00,16.24384622203991 +2023-08-24 19:00:00,13.676855524264834 +2023-08-24 20:00:00,7.614568917965342 +2023-08-24 21:00:00,10.624393472796028 +2023-08-24 22:00:00,27.16954575979541 +2023-08-24 23:00:00,5.994282215097907 +2023-08-25 00:00:00,6.937141360052599 +2023-08-25 01:00:00,28.797036764406226 +2023-08-25 02:00:00,13.747995674939975 +2023-08-25 03:00:00,27.75355869232108 +2023-08-25 04:00:00,23.09605496234456 +2023-08-25 05:00:00,8.513846618743182 +2023-08-25 06:00:00,5.230553462065672 +2023-08-25 07:00:00,29.75037722541323 +2023-08-25 08:00:00,6.89092869268249 +2023-08-25 09:00:00,1.3927748983368038 +2023-08-25 10:00:00,2.7288621255539027 +2023-08-25 11:00:00,3.6496986399126654 +2023-08-25 12:00:00,2.770827006127221 +2023-08-25 13:00:00,7.22636045390168 +2023-08-25 14:00:00,18.723519923369143 +2023-08-25 15:00:00,3.4282172408307696 +2023-08-25 16:00:00,3.1240418784044466 +2023-08-25 17:00:00,0.3230764646196904 +2023-08-25 18:00:00,0.5538463244212433 +2023-08-25 19:00:00,23.83030576264266 +2023-08-25 20:00:00,14.37937849780013 +2023-08-25 21:00:00,3.0188341862504164 +2023-08-25 22:00:00,12.719172949325309 +2023-08-25 23:00:00,8.171523961310456 +2023-08-26 00:00:00,17.308176366402563 +2023-08-26 01:00:00,12.450696120514856 +2023-08-26 02:00:00,8.2157686203563 +2023-08-26 03:00:00,15.512126877954486 +2023-08-26 04:00:00,4.502713566921837 +2023-08-26 05:00:00,13.04897619610418 +2023-08-26 06:00:00,18.35113582221968 +2023-08-26 07:00:00,17.873738698992575 +2023-08-26 08:00:00,27.676089964460317 +2023-08-26 09:00:00,26.848023555481724 +2023-08-26 10:00:00,28.863963985498728 +2023-08-26 11:00:00,25.338832153508765 +2023-08-26 12:00:00,13.082691123891465 +2023-08-26 13:00:00,6.9411841334730005 +2023-08-26 14:00:00,23.8491734988948 +2023-08-26 15:00:00,20.958296637006672 +2023-08-26 16:00:00,13.55311976723411 +2023-08-26 17:00:00,11.819443657452537 +2023-08-26 18:00:00,14.498269218846085 +2023-08-26 19:00:00,8.553946870295562 +2023-08-26 20:00:00,0.5060397914784631 +2023-08-26 21:00:00,28.958410979228606 +2023-08-26 22:00:00,23.99017814005085 +2023-08-26 23:00:00,5.976966604734415 +2023-08-27 00:00:00,9.791335072977883 +2023-08-27 01:00:00,1.1137926736350512 +2023-08-27 02:00:00,15.164508209380797 +2023-08-27 03:00:00,16.551264716964685 +2023-08-27 04:00:00,17.437788208412293 +2023-08-27 05:00:00,15.44776728144654 +2023-08-27 06:00:00,14.40476602691387 +2023-08-27 07:00:00,10.422384633791143 +2023-08-27 08:00:00,2.87547980447585 +2023-08-27 09:00:00,26.81197115466751 +2023-08-27 10:00:00,10.69708802550266 +2023-08-27 11:00:00,28.309249205652 +2023-08-27 12:00:00,1.363314893250821 +2023-08-27 13:00:00,17.51867473055774 +2023-08-27 14:00:00,28.807797684904408 +2023-08-27 15:00:00,6.268728313150658 +2023-08-27 16:00:00,18.19308405023804 +2023-08-27 17:00:00,4.061116323923169 +2023-08-27 18:00:00,16.728765272909715 +2023-08-27 19:00:00,11.581910641138414 +2023-08-27 20:00:00,24.94284270264012 +2023-08-27 21:00:00,0.3142170823543644 +2023-08-27 22:00:00,26.13869506151348 +2023-08-27 23:00:00,18.551324622533684 +2023-08-28 00:00:00,28.963580196591888 +2023-08-28 01:00:00,17.131032664921133 +2023-08-28 02:00:00,18.426732000587556 +2023-08-28 03:00:00,23.741882157101145 +2023-08-28 04:00:00,7.774191271225424 +2023-08-28 05:00:00,5.079841395641673 +2023-08-28 06:00:00,7.429087684909028 +2023-08-28 07:00:00,9.713839609246918 +2023-08-28 08:00:00,1.13467926386572 +2023-08-28 09:00:00,25.781884297013395 +2023-08-28 10:00:00,13.080155529801306 +2023-08-28 11:00:00,8.336092023097997 +2023-08-28 12:00:00,17.41108672667593 +2023-08-28 13:00:00,6.873422342517395 +2023-08-28 14:00:00,7.962351358289313 +2023-08-28 15:00:00,28.17164530530739 +2023-08-28 16:00:00,1.8099681543528912 +2023-08-28 17:00:00,8.029063752834709 +2023-08-28 18:00:00,0.0882299849816459 +2023-08-28 19:00:00,0.5136282377458123 +2023-08-28 20:00:00,22.224312307533587 +2023-08-28 21:00:00,24.56381452979159 +2023-08-28 22:00:00,29.425621960737946 +2023-08-28 23:00:00,17.436444647581215 +2023-08-29 00:00:00,19.898800248559333 +2023-08-29 01:00:00,11.382147178330452 +2023-08-29 02:00:00,24.454805596368 +2023-08-29 03:00:00,13.42050805829722 +2023-08-29 04:00:00,12.38780540781361 +2023-08-29 05:00:00,4.492648707195016 +2023-08-29 06:00:00,23.77788362273202 +2023-08-29 07:00:00,9.926827792760124 +2023-08-29 08:00:00,16.464859235884717 +2023-08-29 09:00:00,10.309466457437429 +2023-08-29 10:00:00,28.35245062630386 +2023-08-29 11:00:00,7.498171026301048 +2023-08-29 12:00:00,29.840402119147413 +2023-08-29 13:00:00,22.0186939178162 +2023-08-29 14:00:00,9.05147757744982 +2023-08-29 15:00:00,25.244020923024348 +2023-08-29 16:00:00,2.018908348179551 +2023-08-29 17:00:00,13.059737005303283 +2023-08-29 18:00:00,2.550353899819695 +2023-08-29 19:00:00,15.486773495370384 +2023-08-29 20:00:00,16.72982100821885 +2023-08-29 21:00:00,19.24318118367355 +2023-08-29 22:00:00,0.3221668040860415 +2023-08-29 23:00:00,8.546385520556726 +2023-08-30 00:00:00,8.11008684421559 +2023-08-30 01:00:00,28.712451858298564 +2023-08-30 02:00:00,29.771893188681368 +2023-08-30 03:00:00,17.542822556151698 +2023-08-30 04:00:00,15.921997270145685 +2023-08-30 05:00:00,28.944579767258308 +2023-08-30 06:00:00,24.33100042354729 +2023-08-30 07:00:00,8.080138984956523 +2023-08-30 08:00:00,17.14671520672081 +2023-08-30 09:00:00,27.06009043966117 +2023-08-30 10:00:00,25.526458975729533 +2023-08-30 11:00:00,9.840113458553152 +2023-08-30 12:00:00,10.9446259221738 +2023-08-30 13:00:00,29.70254019618391 +2023-08-30 14:00:00,6.089569862494515 +2023-08-30 15:00:00,13.092526316473354 +2023-08-30 16:00:00,14.006109028273176 +2023-08-30 17:00:00,20.671735150424897 +2023-08-30 18:00:00,7.583068956018296 +2023-08-30 19:00:00,8.766658277743938 +2023-08-30 20:00:00,25.86521226230018 +2023-08-30 21:00:00,22.38868434906641 +2023-08-30 22:00:00,22.789997589181937 +2023-08-30 23:00:00,10.606281868024888 +2023-08-31 00:00:00,2.5207355865359817 +2023-08-31 01:00:00,27.07768792982926 +2023-08-31 02:00:00,14.129455986713516 +2023-08-31 03:00:00,23.72407444827822 +2023-08-31 04:00:00,26.462936181354006 +2023-08-31 05:00:00,28.14434011405607 +2023-08-31 06:00:00,18.385783285937748 +2023-08-31 07:00:00,16.26930766047063 +2023-08-31 08:00:00,3.1356912849819416 +2023-08-31 09:00:00,13.948098451676604 +2023-08-31 10:00:00,22.96100081930539 +2023-08-31 11:00:00,17.221858399823713 +2023-08-31 12:00:00,2.5569929215399534 +2023-08-31 13:00:00,25.82577949800478 +2023-08-31 14:00:00,19.302390497267872 +2023-08-31 15:00:00,2.7760169277992297 +2023-08-31 16:00:00,0.636895475056396 +2023-08-31 17:00:00,3.265824459685386 +2023-08-31 18:00:00,10.386905313814616 +2023-08-31 19:00:00,26.870070367704614 +2023-08-31 20:00:00,16.177604602341482 +2023-08-31 21:00:00,22.585867859770595 +2023-08-31 22:00:00,0.0808327232736438 +2023-08-31 23:00:00,11.498520483759048 +2023-09-01 00:00:00,11.396500844972902 +2023-09-01 01:00:00,11.31754078538257 +2023-09-01 02:00:00,9.40852246627429 +2023-09-01 03:00:00,2.9599617216885066 +2023-09-01 04:00:00,5.1476897914057504 +2023-09-01 05:00:00,14.56099892600388 +2023-09-01 06:00:00,23.650038292569523 +2023-09-01 07:00:00,25.62173973641826 +2023-09-01 08:00:00,28.11503422668161 +2023-09-01 09:00:00,26.54848516178205 +2023-09-01 10:00:00,5.359139124684875 +2023-09-01 11:00:00,23.102216340395984 +2023-09-01 12:00:00,15.938299886317964 +2023-09-01 13:00:00,8.911762388614344 +2023-09-01 14:00:00,16.87319280553164 +2023-09-01 15:00:00,6.726738120293138 +2023-09-01 16:00:00,8.059791101763013 +2023-09-01 17:00:00,1.9801221861232845 +2023-09-01 18:00:00,23.45855844354697 +2023-09-01 19:00:00,6.394839507035776 +2023-09-01 20:00:00,5.17029200737558 +2023-09-01 21:00:00,23.784787747966263 +2023-09-01 22:00:00,25.503841387305705 +2023-09-01 23:00:00,9.746642131174282 +2023-09-02 00:00:00,29.27018711215303 +2023-09-02 01:00:00,29.955585950746613 +2023-09-02 02:00:00,15.283941484284172 +2023-09-02 03:00:00,3.658248599966859 +2023-09-02 04:00:00,16.881021626007954 +2023-09-02 05:00:00,17.129625604764723 +2023-09-02 06:00:00,17.35638596402312 +2023-09-02 07:00:00,4.792908131067674 +2023-09-02 08:00:00,2.605175523288373 +2023-09-02 09:00:00,6.003798155847086 +2023-09-02 10:00:00,25.91479165003673 +2023-09-02 11:00:00,28.269226377750847 +2023-09-02 12:00:00,27.88765773591638 +2023-09-02 13:00:00,25.19899413513889 +2023-09-02 14:00:00,17.62036904776393 +2023-09-02 15:00:00,28.43293460711611 +2023-09-02 16:00:00,23.601108937271004 +2023-09-02 17:00:00,13.564724482961395 +2023-09-02 18:00:00,28.36155962876098 +2023-09-02 19:00:00,13.406089700844564 +2023-09-02 20:00:00,24.713889461405127 +2023-09-02 21:00:00,1.991524753101066 +2023-09-02 22:00:00,2.6768441260590468 +2023-09-02 23:00:00,28.34288848978244 +2023-09-03 00:00:00,27.040812332369605 +2023-09-03 01:00:00,9.874840309815571 +2023-09-03 02:00:00,17.679147165330036 +2023-09-03 03:00:00,20.50744229570584 +2023-09-03 04:00:00,21.627692520839396 +2023-09-03 05:00:00,26.04629118121037 +2023-09-03 06:00:00,1.8025422926145047 +2023-09-03 07:00:00,3.146396553917227 +2023-09-03 08:00:00,8.903481726707456 +2023-09-03 09:00:00,29.715540542266204 +2023-09-03 10:00:00,2.2060929723067435 +2023-09-03 11:00:00,28.456819700167777 +2023-09-03 12:00:00,21.10525505008866 +2023-09-03 13:00:00,3.5188211692010998 +2023-09-03 14:00:00,4.65783930504116 +2023-09-03 15:00:00,7.330782134218037 +2023-09-03 16:00:00,15.26788496072337 +2023-09-03 17:00:00,4.21724892082599 +2023-09-03 18:00:00,23.93890782994338 +2023-09-03 19:00:00,19.785893575311118 +2023-09-03 20:00:00,22.44665087046398 +2023-09-03 21:00:00,17.149597492796836 +2023-09-03 22:00:00,14.147936188683836 +2023-09-03 23:00:00,7.704425729134529 +2023-09-04 00:00:00,20.61672248002892 +2023-09-04 01:00:00,15.520598549625957 +2023-09-04 02:00:00,22.90359773178026 +2023-09-04 03:00:00,28.456866193655568 +2023-09-04 04:00:00,2.330876595404731 +2023-09-04 05:00:00,12.632009593196932 +2023-09-04 06:00:00,15.369423721524877 +2023-09-04 07:00:00,25.72361033293916 +2023-09-04 08:00:00,24.400540192054905 +2023-09-04 09:00:00,18.907282857181592 +2023-09-04 10:00:00,11.856113836077038 +2023-09-04 11:00:00,26.794763808540925 +2023-09-04 12:00:00,9.063863243687395 +2023-09-04 13:00:00,6.019093817049122 +2023-09-04 14:00:00,8.273411319981703 +2023-09-04 15:00:00,24.51228176442622 +2023-09-04 16:00:00,29.267740365972813 +2023-09-04 17:00:00,3.2430398705814456 +2023-09-04 18:00:00,10.667638515186075 +2023-09-04 19:00:00,24.40180032855286 +2023-09-04 20:00:00,22.518177662033107 +2023-09-04 21:00:00,29.303266950190583 +2023-09-04 22:00:00,25.997658386968038 +2023-09-04 23:00:00,4.6005479170905215 +2023-09-05 00:00:00,1.156642707477844 +2023-09-05 01:00:00,19.623007385908465 +2023-09-05 02:00:00,21.77447182963981 +2023-09-05 03:00:00,1.1727953555321624 +2023-09-05 04:00:00,27.88886213170245 +2023-09-05 05:00:00,13.840391813920942 +2023-09-05 06:00:00,29.887357610487545 +2023-09-05 07:00:00,23.08361011515143 +2023-09-05 08:00:00,20.086283991395643 +2023-09-05 09:00:00,5.356581007110929 +2023-09-05 10:00:00,29.177401098754085 +2023-09-05 11:00:00,9.03341701818302 +2023-09-05 12:00:00,24.623841777265014 +2023-09-05 13:00:00,21.8331954536037 +2023-09-05 14:00:00,6.544906953340542 +2023-09-05 15:00:00,25.08073983868801 +2023-09-05 16:00:00,18.624838395205398 +2023-09-05 17:00:00,28.3030507447043 +2023-09-05 18:00:00,2.773313061370235 +2023-09-05 19:00:00,17.386786470445468 +2023-09-05 20:00:00,14.732737988198563 +2023-09-05 21:00:00,19.706124127225586 +2023-09-05 22:00:00,13.8546738773002 +2023-09-05 23:00:00,22.23719232346673 +2023-09-06 00:00:00,26.76909913717554 +2023-09-06 01:00:00,27.18501117627298 +2023-09-06 02:00:00,17.026839490538393 +2023-09-06 03:00:00,15.77538417066381 +2023-09-06 04:00:00,4.734127175994184 +2023-09-06 05:00:00,8.040633682050434 +2023-09-06 06:00:00,7.157079545897184 +2023-09-06 07:00:00,24.266991734873933 +2023-09-06 08:00:00,11.882131129379395 +2023-09-06 09:00:00,27.586182447471323 +2023-09-06 10:00:00,9.68626129183913 +2023-09-06 11:00:00,6.575264684486683 +2023-09-06 12:00:00,8.709515332975153 +2023-09-06 13:00:00,15.019032902342223 +2023-09-06 14:00:00,19.99191590346478 +2023-09-06 15:00:00,18.269266274701778 +2023-09-06 16:00:00,2.0678020884186923 +2023-09-06 17:00:00,4.470095327005793 +2023-09-06 18:00:00,4.385490563344447 +2023-09-06 19:00:00,14.095065277382464 +2023-09-06 20:00:00,25.200575529799696 +2023-09-06 21:00:00,15.214968663736888 +2023-09-06 22:00:00,13.28711585765207 +2023-09-06 23:00:00,4.947362939451248 +2023-09-07 00:00:00,12.50717979862935 +2023-09-07 01:00:00,21.30957462581541 +2023-09-07 02:00:00,13.94629030933984 +2023-09-07 03:00:00,25.22202542913352 +2023-09-07 04:00:00,15.838229873849013 +2023-09-07 05:00:00,24.494138577672988 +2023-09-07 06:00:00,2.078258979968741 +2023-09-07 07:00:00,10.022398308263408 +2023-09-07 08:00:00,12.984632013269904 +2023-09-07 09:00:00,12.063849430777209 +2023-09-07 10:00:00,22.761458259797934 +2023-09-07 11:00:00,22.915981116212148 +2023-09-07 12:00:00,11.399220846022454 +2023-09-07 13:00:00,24.77452321293901 +2023-09-07 14:00:00,15.542590407722807 +2023-09-07 15:00:00,1.5063980263272947 +2023-09-07 16:00:00,25.845663017672475 +2023-09-07 17:00:00,2.525711797440211 +2023-09-07 18:00:00,22.637485822568497 +2023-09-07 19:00:00,19.42512488743513 +2023-09-07 20:00:00,28.938710578221123 +2023-09-07 21:00:00,12.441874150255233 +2023-09-07 22:00:00,1.140531852215776 +2023-09-07 23:00:00,3.929779865694276 +2023-09-08 00:00:00,15.780228137583428 +2023-09-08 01:00:00,17.144487010260963 +2023-09-08 02:00:00,27.04575684007249 +2023-09-08 03:00:00,15.886400298288567 +2023-09-08 04:00:00,11.96467280972968 +2023-09-08 05:00:00,21.62584204316122 +2023-09-08 06:00:00,0.730293558485936 +2023-09-08 07:00:00,13.23754006379901 +2023-09-08 08:00:00,8.511680699158818 +2023-09-08 09:00:00,17.351899740723542 +2023-09-08 10:00:00,4.491594644379599 +2023-09-08 11:00:00,19.659668415732515 +2023-09-08 12:00:00,16.808608044465203 +2023-09-08 13:00:00,16.77035652961856 +2023-09-08 14:00:00,25.239199393830734 +2023-09-08 15:00:00,6.87888272178344 +2023-09-08 16:00:00,1.7760224974520489 +2023-09-08 17:00:00,4.637549744793697 +2023-09-08 18:00:00,21.021628267455096 +2023-09-08 19:00:00,28.240810779998707 +2023-09-08 20:00:00,2.992125044205727 +2023-09-08 21:00:00,25.524254244280076 +2023-09-08 22:00:00,26.980479610505935 +2023-09-08 23:00:00,23.01786046890863 +2023-09-09 00:00:00,18.317195476640222 +2023-09-09 01:00:00,21.828457646154195 +2023-09-09 02:00:00,11.07826063287143 +2023-09-09 03:00:00,12.442847315135475 +2023-09-09 04:00:00,0.6232937676409578 +2023-09-09 05:00:00,8.412665114742191 +2023-09-09 06:00:00,14.160308885185808 +2023-09-09 07:00:00,15.546114648078916 +2023-09-09 08:00:00,29.22320372750145 +2023-09-09 09:00:00,1.201827851990993 +2023-09-09 10:00:00,9.396123523705445 +2023-09-09 11:00:00,3.836920020131249 +2023-09-09 12:00:00,11.13057492537634 +2023-09-09 13:00:00,17.296761602375884 +2023-09-09 14:00:00,4.165622411061082 +2023-09-09 15:00:00,4.958873139890596 +2023-09-09 16:00:00,17.47689099275621 +2023-09-09 17:00:00,3.346052095674482 +2023-09-09 18:00:00,4.637972489354507 +2023-09-09 19:00:00,4.404695448205934 +2023-09-09 20:00:00,21.973431940207075 +2023-09-09 21:00:00,13.8925421279419 +2023-09-09 22:00:00,11.284877513196715 +2023-09-09 23:00:00,3.340770492553947 +2023-09-10 00:00:00,1.1071967740115465 +2023-09-10 01:00:00,11.673618643699069 +2023-09-10 02:00:00,6.600365770228258 +2023-09-10 03:00:00,16.039467495660606 +2023-09-10 04:00:00,26.31686284006013 +2023-09-10 05:00:00,19.256751596154416 +2023-09-10 06:00:00,21.08868392741122 +2023-09-10 07:00:00,4.692942396220153 +2023-09-10 08:00:00,16.769683812577057 +2023-09-10 09:00:00,0.2078256135644984 +2023-09-10 10:00:00,16.668328118838566 +2023-09-10 11:00:00,21.83630607589545 +2023-09-10 12:00:00,0.994641194267578 +2023-09-10 13:00:00,15.671622152672477 +2023-09-10 14:00:00,8.555567695029962 +2023-09-10 15:00:00,21.788967132281776 +2023-09-10 16:00:00,3.056729229306953 +2023-09-10 17:00:00,16.743017324211753 +2023-09-10 18:00:00,26.528477861660598 +2023-09-10 19:00:00,12.803301652582638 +2023-09-10 20:00:00,10.468237962002716 +2023-09-10 21:00:00,21.38943745250109 +2023-09-10 22:00:00,26.982615886612205 +2023-09-10 23:00:00,13.791420297818645 +2023-09-11 00:00:00,3.620666060301251 +2023-09-11 01:00:00,0.6827636290971806 +2023-09-11 02:00:00,3.987704684995403 +2023-09-11 03:00:00,14.146578468337877 +2023-09-11 04:00:00,17.278079310726334 +2023-09-11 05:00:00,7.552488858876104 +2023-09-11 06:00:00,25.74003420448553 +2023-09-11 07:00:00,0.6931711160122167 +2023-09-11 08:00:00,15.414808373295475 +2023-09-11 09:00:00,5.494335882982496 +2023-09-11 10:00:00,12.454866107964762 +2023-09-11 11:00:00,3.3492899872752666 +2023-09-11 12:00:00,5.456469073526806 +2023-09-11 13:00:00,9.347937329618508 +2023-09-11 14:00:00,25.776895910308795 +2023-09-11 15:00:00,26.76496318677124 +2023-09-11 16:00:00,0.8558033566693835 +2023-09-11 17:00:00,28.0394736567532 +2023-09-11 18:00:00,7.093519967647174 +2023-09-11 19:00:00,10.681691048699474 +2023-09-11 20:00:00,20.27430544046119 +2023-09-11 21:00:00,23.352022371974147 +2023-09-11 22:00:00,26.491103359301743 +2023-09-11 23:00:00,2.8237214910289232 +2023-09-12 00:00:00,28.72439582333132 +2023-09-12 01:00:00,3.7524708845123858 +2023-09-12 02:00:00,9.70658256096549 +2023-09-12 03:00:00,28.84930575315004 +2023-09-12 04:00:00,0.630865012879952 +2023-09-12 05:00:00,22.79994218564948 +2023-09-12 06:00:00,14.251492986809067 +2023-09-12 07:00:00,0.0161865700549035 +2023-09-12 08:00:00,19.788858039202776 +2023-09-12 09:00:00,16.653159898273035 +2023-09-12 10:00:00,0.9975583529740096 +2023-09-12 11:00:00,0.5386030493834237 +2023-09-12 12:00:00,14.487357028088134 +2023-09-12 13:00:00,18.02642795648338 +2023-09-12 14:00:00,21.218642995666205 +2023-09-12 15:00:00,11.777091316809289 +2023-09-12 16:00:00,0.0355462199926392 +2023-09-12 17:00:00,27.010075885646597 +2023-09-12 18:00:00,28.400115442628515 +2023-09-12 19:00:00,20.485765725775423 +2023-09-12 20:00:00,21.983594069357423 +2023-09-12 21:00:00,5.10728577282161 +2023-09-12 22:00:00,23.87095771161508 +2023-09-12 23:00:00,7.9496936625707 +2023-09-13 00:00:00,24.05264064366054 +2023-09-13 01:00:00,4.753359285168799 +2023-09-13 02:00:00,27.92308955732145 +2023-09-13 03:00:00,27.22958070227202 +2023-09-13 04:00:00,5.92607766021753 +2023-09-13 05:00:00,11.007624133348456 +2023-09-13 06:00:00,27.82933900904192 +2023-09-13 07:00:00,2.4296147339603547 +2023-09-13 08:00:00,14.963649532629448 +2023-09-13 09:00:00,4.041129738945049 +2023-09-13 10:00:00,25.83494749067321 +2023-09-13 11:00:00,23.83854649829147 +2023-09-13 12:00:00,8.010958828762893 +2023-09-13 13:00:00,0.3788096761044646 +2023-09-13 14:00:00,26.34455632865923 +2023-09-13 15:00:00,12.76181907761336 +2023-09-13 16:00:00,21.962625405565834 +2023-09-13 17:00:00,2.177919410288646 +2023-09-13 18:00:00,14.541561689089438 +2023-09-13 19:00:00,25.805345844960318 +2023-09-13 20:00:00,16.84507635985409 +2023-09-13 21:00:00,17.854564773199016 +2023-09-13 22:00:00,1.2777193674657084 +2023-09-13 23:00:00,24.964770028465797 +2023-09-14 00:00:00,0.7836782782329299 +2023-09-14 01:00:00,15.698941685939015 +2023-09-14 02:00:00,25.53435244307472 +2023-09-14 03:00:00,25.44603333539071 +2023-09-14 04:00:00,11.968173329475285 +2023-09-14 05:00:00,18.161554526127425 +2023-09-14 06:00:00,5.26097695366016 +2023-09-14 07:00:00,13.440180865151518 +2023-09-14 08:00:00,21.09981925706475 +2023-09-14 09:00:00,23.18270759894052 +2023-09-14 10:00:00,10.931435295899592 +2023-09-14 11:00:00,16.10474468315883 +2023-09-14 12:00:00,29.645096367860408 +2023-09-14 13:00:00,28.00978542481629 +2023-09-14 14:00:00,16.99654637619823 +2023-09-14 15:00:00,29.07902991360272 +2023-09-14 16:00:00,27.966880284915064 +2023-09-14 17:00:00,17.49380298927085 +2023-09-14 18:00:00,28.253441845694045 +2023-09-14 19:00:00,8.079794046151664 +2023-09-14 20:00:00,6.4260755294535 +2023-09-14 21:00:00,16.56991994324227 +2023-09-14 22:00:00,24.84139036179494 +2023-09-14 23:00:00,4.90927416078973 +2023-09-15 00:00:00,24.03703053778647 +2023-09-15 01:00:00,9.680003912116636 +2023-09-15 02:00:00,20.55284122193757 +2023-09-15 03:00:00,6.463683517820378 +2023-09-15 04:00:00,9.239102981180622 +2023-09-15 05:00:00,23.02580588984571 +2023-09-15 06:00:00,5.278983830055695 +2023-09-15 07:00:00,1.4957108873244385 +2023-09-15 08:00:00,28.86709983280251 +2023-09-15 09:00:00,18.51658536406513 +2023-09-15 10:00:00,3.157593327130916 +2023-09-15 11:00:00,11.622836506380812 +2023-09-15 12:00:00,20.73046961888039 +2023-09-15 13:00:00,5.426572362401563 +2023-09-15 14:00:00,26.93801551628469 +2023-09-15 15:00:00,8.450095738468415 +2023-09-15 16:00:00,7.001407916192196 +2023-09-15 17:00:00,20.91383063038095 +2023-09-15 18:00:00,16.137620652262612 +2023-09-15 19:00:00,24.849563514247794 +2023-09-15 20:00:00,2.076406003511655 +2023-09-15 21:00:00,10.707105645490502 +2023-09-15 22:00:00,4.536128180232138 +2023-09-15 23:00:00,21.873652474735287 +2023-09-16 00:00:00,2.6221595298481493 +2023-09-16 01:00:00,28.78778181305364 +2023-09-16 02:00:00,7.986911455152219 +2023-09-16 03:00:00,9.506481229388172 +2023-09-16 04:00:00,27.7479249975804 +2023-09-16 05:00:00,17.378813432779427 +2023-09-16 06:00:00,3.188836907436521 +2023-09-16 07:00:00,17.289013396166244 +2023-09-16 08:00:00,29.32186767319667 +2023-09-16 09:00:00,18.13612741881818 +2023-09-16 10:00:00,29.11116853557103 +2023-09-16 11:00:00,10.502214983642943 +2023-09-16 12:00:00,27.80332632130045 +2023-09-16 13:00:00,0.6504007953613777 +2023-09-16 14:00:00,19.26391674024748 +2023-09-16 15:00:00,10.74800136221439 +2023-09-16 16:00:00,21.6830643119378 +2023-09-16 17:00:00,17.18401851606743 +2023-09-16 18:00:00,7.0019828486643565 +2023-09-16 19:00:00,18.941131927491377 +2023-09-16 20:00:00,21.914397417162764 +2023-09-16 21:00:00,14.948196292939302 +2023-09-16 22:00:00,15.571840208162351 +2023-09-16 23:00:00,18.34722709697318 +2023-09-17 00:00:00,13.48766702884942 +2023-09-17 01:00:00,9.66857185579247 +2023-09-17 02:00:00,3.657303243015465 +2023-09-17 03:00:00,18.384308019817947 +2023-09-17 04:00:00,20.978223059940483 +2023-09-17 05:00:00,3.4248181377497 +2023-09-17 06:00:00,16.338375771508908 +2023-09-17 07:00:00,20.635604924182054 +2023-09-17 08:00:00,11.473391133678035 +2023-09-17 09:00:00,29.240154334732352 +2023-09-17 10:00:00,25.022365734747225 +2023-09-17 11:00:00,23.207105914676387 +2023-09-17 12:00:00,19.50566997549021 +2023-09-17 13:00:00,16.576598667355217 +2023-09-17 14:00:00,27.291988454686464 +2023-09-17 15:00:00,24.375071496710007 +2023-09-17 16:00:00,26.772342600206567 +2023-09-17 17:00:00,4.546234849986903 +2023-09-17 18:00:00,21.871036413833146 +2023-09-17 19:00:00,21.301283637652503 +2023-09-17 20:00:00,5.492706864123129 +2023-09-17 21:00:00,16.232416137743407 +2023-09-17 22:00:00,15.287125889086386 +2023-09-17 23:00:00,26.978072687267865 +2023-09-18 00:00:00,27.717178563828057 +2023-09-18 01:00:00,27.70167403153334 +2023-09-18 02:00:00,21.295967293662745 +2023-09-18 03:00:00,3.036491123597859 +2023-09-18 04:00:00,17.820365201569366 +2023-09-18 05:00:00,0.624507815512858 +2023-09-18 06:00:00,12.723221976254784 +2023-09-18 07:00:00,7.448030463315286 +2023-09-18 08:00:00,11.448201951940415 +2023-09-18 09:00:00,5.938149512379466 +2023-09-18 10:00:00,10.16699466760236 +2023-09-18 11:00:00,21.721290119491147 +2023-09-18 12:00:00,10.601581976206036 +2023-09-18 13:00:00,4.731892833523473 +2023-09-18 14:00:00,7.738846959144895 +2023-09-18 15:00:00,5.593222135044019 +2023-09-18 16:00:00,29.272986611252428 +2023-09-18 17:00:00,6.443197570569398 +2023-09-18 18:00:00,18.0817340456284 +2023-09-18 19:00:00,12.65552234294088 +2023-09-18 20:00:00,13.607053617327724 +2023-09-18 21:00:00,22.7708829565428 +2023-09-18 22:00:00,1.980897409901652 +2023-09-18 23:00:00,20.087271310092863 +2023-09-19 00:00:00,1.1095808312221234 +2023-09-19 01:00:00,15.46070867928621 +2023-09-19 02:00:00,25.215606284919215 +2023-09-19 03:00:00,22.141920949633885 +2023-09-19 04:00:00,21.571926563308367 +2023-09-19 05:00:00,15.84503435170965 +2023-09-19 06:00:00,4.69802439267371 +2023-09-19 07:00:00,27.56481088525594 +2023-09-19 08:00:00,2.037214239832723 +2023-09-19 09:00:00,10.535579504093452 +2023-09-19 10:00:00,19.422312451011813 +2023-09-19 11:00:00,1.6064290977103768 +2023-09-19 12:00:00,21.927014147733573 +2023-09-19 13:00:00,24.90581418534786 +2023-09-19 14:00:00,6.980832258348082 +2023-09-19 15:00:00,10.075079475094856 +2023-09-19 16:00:00,7.789245613392826 +2023-09-19 17:00:00,14.430663149494254 +2023-09-19 18:00:00,26.184257331863737 +2023-09-19 19:00:00,21.779579668197712 +2023-09-19 20:00:00,26.14608529468896 +2023-09-19 21:00:00,28.824341324684934 +2023-09-19 22:00:00,2.1227642447559525 +2023-09-19 23:00:00,7.669079277985821 +2023-09-20 00:00:00,7.604144301987691 +2023-09-20 01:00:00,26.35856395294253 +2023-09-20 02:00:00,12.913376266622723 +2023-09-20 03:00:00,15.927654923014368 +2023-09-20 04:00:00,18.32097390688019 +2023-09-20 05:00:00,28.22492321399886 +2023-09-20 06:00:00,3.524705858145485 +2023-09-20 07:00:00,21.191035072961235 +2023-09-20 08:00:00,6.246499947433131 +2023-09-20 09:00:00,21.39285850747127 +2023-09-20 10:00:00,13.119474085011683 +2023-09-20 11:00:00,21.177045338222914 +2023-09-20 12:00:00,5.281699013798002 +2023-09-20 13:00:00,4.9461713396196005 +2023-09-20 14:00:00,29.64573581457717 +2023-09-20 15:00:00,9.21699936554646 +2023-09-20 16:00:00,24.54421183105365 +2023-09-20 17:00:00,10.84440605767794 +2023-09-20 18:00:00,26.706117108966176 +2023-09-20 19:00:00,10.266761111435002 +2023-09-20 20:00:00,22.584920735637105 +2023-09-20 21:00:00,4.413073268239476 +2023-09-20 22:00:00,19.97758895479688 +2023-09-20 23:00:00,10.164126145873206 +2023-09-21 00:00:00,8.993133932634178 +2023-09-21 01:00:00,21.47531454164748 +2023-09-21 02:00:00,12.461208955215405 +2023-09-21 03:00:00,22.951301962794396 +2023-09-21 04:00:00,4.74445323106719 +2023-09-21 05:00:00,22.415802119648287 +2023-09-21 06:00:00,23.5727826539752 +2023-09-21 07:00:00,2.289524920227093 +2023-09-21 08:00:00,8.217156279901122 +2023-09-21 09:00:00,2.8594332487957272 +2023-09-21 10:00:00,21.643879344916225 +2023-09-21 11:00:00,0.8948765479743759 +2023-09-21 12:00:00,8.434753377000074 +2023-09-21 13:00:00,1.9459881749653771 +2023-09-21 14:00:00,26.091069558033745 +2023-09-21 15:00:00,2.8585919893031333 +2023-09-21 16:00:00,4.492231925417026 +2023-09-21 17:00:00,27.95084369476405 +2023-09-21 18:00:00,21.291243974108028 +2023-09-21 19:00:00,5.1056952100069495 +2023-09-21 20:00:00,27.836871537686523 +2023-09-21 21:00:00,7.152207496223838 +2023-09-21 22:00:00,16.450124230661583 +2023-09-21 23:00:00,12.082558623753792 +2023-09-22 00:00:00,9.270241229219218 +2023-09-22 01:00:00,26.240438449821607 +2023-09-22 02:00:00,14.855506297279591 +2023-09-22 03:00:00,13.090502328738593 +2023-09-22 04:00:00,25.22046176627918 +2023-09-22 05:00:00,15.429207663941872 +2023-09-22 06:00:00,14.990269457467488 +2023-09-22 07:00:00,16.91072294253607 +2023-09-22 08:00:00,18.181158549887265 +2023-09-22 09:00:00,13.96123652100091 +2023-09-22 10:00:00,24.90344877731378 +2023-09-22 11:00:00,3.11425547208578 +2023-09-22 12:00:00,19.37676742445008 +2023-09-22 13:00:00,9.033828569110018 +2023-09-22 14:00:00,16.029838524561548 +2023-09-22 15:00:00,14.886557702345032 +2023-09-22 16:00:00,4.949635876295993 +2023-09-22 17:00:00,18.512720820178927 +2023-09-22 18:00:00,12.045616252970646 +2023-09-22 19:00:00,27.81382526413202 +2023-09-22 20:00:00,1.0142434887884 +2023-09-22 21:00:00,19.26921706582024 +2023-09-22 22:00:00,22.525599754040933 +2023-09-22 23:00:00,28.688019887943497 +2023-09-23 00:00:00,17.737602919111623 +2023-09-23 01:00:00,16.724038597037918 +2023-09-23 02:00:00,3.3418834504560597 +2023-09-23 03:00:00,16.897840094893 +2023-09-23 04:00:00,2.099857253533788 +2023-09-23 05:00:00,2.4583435193938863 +2023-09-23 06:00:00,12.580522112118466 +2023-09-23 07:00:00,0.2209640798919776 +2023-09-23 08:00:00,9.639361391430318 +2023-09-23 09:00:00,24.22546711218521 +2023-09-23 10:00:00,5.699151127376209 +2023-09-23 11:00:00,6.157208962793503 +2023-09-23 12:00:00,19.69932659969417 +2023-09-23 13:00:00,25.9492294255512 +2023-09-23 14:00:00,11.155340999464446 +2023-09-23 15:00:00,3.189760093680052 +2023-09-23 16:00:00,14.085214021122637 +2023-09-23 17:00:00,7.110523327146141 +2023-09-23 18:00:00,24.622516172120857 +2023-09-23 19:00:00,24.33226733365836 +2023-09-23 20:00:00,9.292968393151298 +2023-09-23 21:00:00,29.90797496399235 +2023-09-23 22:00:00,4.880518825524838 +2023-09-23 23:00:00,7.1110748320446335 +2023-09-24 00:00:00,21.631680361021463 +2023-09-24 01:00:00,22.959417471169218 +2023-09-24 02:00:00,6.435870698035355 +2023-09-24 03:00:00,29.32214328351106 +2023-09-24 04:00:00,0.7019654907809969 +2023-09-24 05:00:00,29.711228307778292 +2023-09-24 06:00:00,12.877939845814762 +2023-09-24 07:00:00,0.7112082468469416 +2023-09-24 08:00:00,25.91736865617825 +2023-09-24 09:00:00,10.999193520489053 +2023-09-24 10:00:00,1.2712795589288362 +2023-09-24 11:00:00,7.71321086310956 +2023-09-24 12:00:00,19.67356614394547 +2023-09-24 13:00:00,29.47557321635709 +2023-09-24 14:00:00,19.97455206055197 +2023-09-24 15:00:00,25.51669455544961 +2023-09-24 16:00:00,27.388440337297887 +2023-09-24 17:00:00,20.526306391040087 +2023-09-24 18:00:00,1.1478013850977389 +2023-09-24 19:00:00,14.390572455869837 +2023-09-24 20:00:00,16.081854255682757 +2023-09-24 21:00:00,19.53224359938278 +2023-09-24 22:00:00,20.36001553279448 +2023-09-24 23:00:00,24.035684486085763 +2023-09-25 00:00:00,12.989975472559664 +2023-09-25 01:00:00,21.586701798383626 +2023-09-25 02:00:00,8.859753346800103 +2023-09-25 03:00:00,12.163850843167657 +2023-09-25 04:00:00,2.625327069904034 +2023-09-25 05:00:00,0.3440818498706099 +2023-09-25 06:00:00,0.0165235189375856 +2023-09-25 07:00:00,10.47982761955806 +2023-09-25 08:00:00,29.709828330453902 +2023-09-25 09:00:00,22.876619479425408 +2023-09-25 10:00:00,18.508151544373813 +2023-09-25 11:00:00,25.167923531138875 +2023-09-25 12:00:00,28.283785931755904 +2023-09-25 13:00:00,8.824583706978236 +2023-09-25 14:00:00,28.657647122786283 +2023-09-25 15:00:00,12.447408218234964 +2023-09-25 16:00:00,12.910607109336617 +2023-09-25 17:00:00,3.1023946394101958 +2023-09-25 18:00:00,6.690789430609558 +2023-09-25 19:00:00,18.75644940579223 +2023-09-25 20:00:00,26.85539347734273 +2023-09-25 21:00:00,26.76072039117131 +2023-09-25 22:00:00,21.13789672546245 +2023-09-25 23:00:00,15.508864431292109 +2023-09-26 00:00:00,21.298771753815423 +2023-09-26 01:00:00,26.045593135083596 +2023-09-26 02:00:00,13.231796803564269 +2023-09-26 03:00:00,2.6554117638091466 +2023-09-26 04:00:00,5.334761548890381 +2023-09-26 05:00:00,7.687931223638 +2023-09-26 06:00:00,0.5886251504265172 +2023-09-26 07:00:00,1.65943707186213 +2023-09-26 08:00:00,18.728809459739143 +2023-09-26 09:00:00,7.549691859847794 +2023-09-26 10:00:00,2.510580631697692 +2023-09-26 11:00:00,28.867882835430613 +2023-09-26 12:00:00,2.0418638516044805 +2023-09-26 13:00:00,28.13580814021174 +2023-09-26 14:00:00,26.703155260618093 +2023-09-26 15:00:00,5.344787354991306 +2023-09-26 16:00:00,14.250732306692738 +2023-09-26 17:00:00,27.038060172729523 +2023-09-26 18:00:00,7.549665397878571 +2023-09-26 19:00:00,22.5041468244564 +2023-09-26 20:00:00,21.7577989218844 +2023-09-26 21:00:00,18.07022964887049 +2023-09-26 22:00:00,21.074764889673464 +2023-09-26 23:00:00,4.513514259814242 +2023-09-27 00:00:00,5.811537491942467 +2023-09-27 01:00:00,10.655681890149818 +2023-09-27 02:00:00,2.1705426623099457 +2023-09-27 03:00:00,9.10445927946222 +2023-09-27 04:00:00,10.460059148210949 +2023-09-27 05:00:00,23.540862637701 +2023-09-27 06:00:00,3.870897798499557 +2023-09-27 07:00:00,18.038158175236116 +2023-09-27 08:00:00,15.473148328616794 +2023-09-27 09:00:00,21.46373406639427 +2023-09-27 10:00:00,20.42312708759673 +2023-09-27 11:00:00,13.33846055636958 +2023-09-27 12:00:00,17.97622984600692 +2023-09-27 13:00:00,8.186052748057604 +2023-09-27 14:00:00,2.849664031940806 +2023-09-27 15:00:00,4.802737685721029 +2023-09-27 16:00:00,10.699728600497355 +2023-09-27 17:00:00,17.262606060558653 +2023-09-27 18:00:00,14.588294591802164 +2023-09-27 19:00:00,26.21862043860896 +2023-09-27 20:00:00,4.831644706238066 +2023-09-27 21:00:00,22.811222325511984 +2023-09-27 22:00:00,22.27662063470201 +2023-09-27 23:00:00,10.360780289507929 +2023-09-28 00:00:00,21.111470570169768 +2023-09-28 01:00:00,7.49462207156954 +2023-09-28 02:00:00,20.01825008903566 +2023-09-28 03:00:00,14.812086366325286 +2023-09-28 04:00:00,21.072743916804978 +2023-09-28 05:00:00,25.05814721114854 +2023-09-28 06:00:00,23.38818636867888 +2023-09-28 07:00:00,9.113632152315152 +2023-09-28 08:00:00,1.7752677470421552 +2023-09-28 09:00:00,3.6027967070563607 +2023-09-28 10:00:00,11.78246864166218 +2023-09-28 11:00:00,10.56626579005687 +2023-09-28 12:00:00,23.338358208861177 +2023-09-28 13:00:00,27.358637491024187 +2023-09-28 14:00:00,21.161259446247342 +2023-09-28 15:00:00,17.52583413376573 +2023-09-28 16:00:00,12.162327085245357 +2023-09-28 17:00:00,8.840239501338198 +2023-09-28 18:00:00,18.83411232194906 +2023-09-28 19:00:00,10.832541851836918 +2023-09-28 20:00:00,0.3893265425544667 +2023-09-28 21:00:00,27.938708266793277 +2023-09-28 22:00:00,25.678955500999656 +2023-09-28 23:00:00,10.392662685129782 +2023-09-29 00:00:00,26.41822575205554 +2023-09-29 01:00:00,9.241760425649684 +2023-09-29 02:00:00,20.731429268272613 +2023-09-29 03:00:00,7.926525191121528 +2023-09-29 04:00:00,1.9008252227176905 +2023-09-29 05:00:00,2.404354214893292 +2023-09-29 06:00:00,2.5841073632678646 +2023-09-29 07:00:00,17.185520527288137 +2023-09-29 08:00:00,8.769243091268551 +2023-09-29 09:00:00,6.020142632476073 +2023-09-29 10:00:00,20.433315128354767 +2023-09-29 11:00:00,14.478187581967685 +2023-09-29 12:00:00,25.60517336275708 +2023-09-29 13:00:00,25.65084215997866 +2023-09-29 14:00:00,12.19324065772224 +2023-09-29 15:00:00,2.884016440039715 +2023-09-29 16:00:00,24.05169738106847 +2023-09-29 17:00:00,10.081019586547333 +2023-09-29 18:00:00,10.099080483382386 +2023-09-29 19:00:00,25.90350880667995 +2023-09-29 20:00:00,11.326052327512103 +2023-09-29 21:00:00,18.283053645468776 +2023-09-29 22:00:00,23.54558537889117 +2023-09-29 23:00:00,4.271241287964208 +2023-09-30 00:00:00,16.094003400371996 +2023-09-30 01:00:00,4.44306637117505 +2023-09-30 02:00:00,7.392635195858457 +2023-09-30 03:00:00,6.611206114207317 +2023-09-30 04:00:00,16.771252468486892 +2023-09-30 05:00:00,3.495606778795927 +2023-09-30 06:00:00,29.41961880526696 +2023-09-30 07:00:00,14.002107502089574 +2023-09-30 08:00:00,29.37481454337695 +2023-09-30 09:00:00,19.80994178713697 +2023-09-30 10:00:00,13.30642970820952 +2023-09-30 11:00:00,19.15155284559654 +2023-09-30 12:00:00,2.9068047079041284 +2023-09-30 13:00:00,1.5662577035513523 +2023-09-30 14:00:00,26.906912058524373 +2023-09-30 15:00:00,0.7566295616578322 +2023-09-30 16:00:00,3.6058318719412807 +2023-09-30 17:00:00,6.947403651640361 +2023-09-30 18:00:00,20.983429799966785 +2023-09-30 19:00:00,18.736344361943782 +2023-09-30 20:00:00,12.786252866676165 +2023-09-30 21:00:00,27.625915758243323 +2023-09-30 22:00:00,13.461796138128753 +2023-09-30 23:00:00,18.98070749099773 +2023-10-01 00:00:00,23.047592654458697 +2023-10-01 01:00:00,0.7236054403465408 +2023-10-01 02:00:00,11.168395605031025 +2023-10-01 03:00:00,13.477242282233776 +2023-10-01 04:00:00,10.45524546508439 +2023-10-01 05:00:00,14.79831369046877 +2023-10-01 06:00:00,15.556788507317023 +2023-10-01 07:00:00,15.401819757420078 +2023-10-01 08:00:00,20.590890876733525 +2023-10-01 09:00:00,11.654882120472529 +2023-10-01 10:00:00,7.286898425050895 +2023-10-01 11:00:00,19.429289852575216 +2023-10-01 12:00:00,8.447450396571591 +2023-10-01 13:00:00,9.893959611070002 +2023-10-01 14:00:00,17.760728929784293 +2023-10-01 15:00:00,27.349576981623752 +2023-10-01 16:00:00,20.75634249774324 +2023-10-01 17:00:00,25.91961173600824 +2023-10-01 18:00:00,13.556499841537576 +2023-10-01 19:00:00,26.681571350921494 +2023-10-01 20:00:00,6.624743200715796 +2023-10-01 21:00:00,24.09920170785724 +2023-10-01 22:00:00,17.834459465149845 +2023-10-01 23:00:00,3.570889444205674 +2023-10-02 00:00:00,22.081792733390227 +2023-10-02 01:00:00,14.578941370278836 +2023-10-02 02:00:00,26.931463470404587 +2023-10-02 03:00:00,3.775555874515588 +2023-10-02 04:00:00,8.899640854415107 +2023-10-02 05:00:00,26.64026947945776 +2023-10-02 06:00:00,16.268220815504357 +2023-10-02 07:00:00,5.863884860608106 +2023-10-02 08:00:00,26.04610532793207 +2023-10-02 09:00:00,23.023363164913345 +2023-10-02 10:00:00,22.384430512975875 +2023-10-02 11:00:00,21.948043409962214 +2023-10-02 12:00:00,25.481454416170187 +2023-10-02 13:00:00,8.888921316604838 +2023-10-02 14:00:00,20.974074331324708 +2023-10-02 15:00:00,23.990955343172654 +2023-10-02 16:00:00,7.30720732237342 +2023-10-02 17:00:00,0.100632481794024 +2023-10-02 18:00:00,1.834932760528727 +2023-10-02 19:00:00,28.27227025656444 +2023-10-02 20:00:00,17.564028935748485 +2023-10-02 21:00:00,0.3897458360238315 +2023-10-02 22:00:00,11.526390802819096 +2023-10-02 23:00:00,27.890628409724503 +2023-10-03 00:00:00,4.453823718845066 +2023-10-03 01:00:00,25.11799778840007 +2023-10-03 02:00:00,4.470740153805606 +2023-10-03 03:00:00,29.779330783582186 +2023-10-03 04:00:00,4.563435530233715 +2023-10-03 05:00:00,1.1630637447152914 +2023-10-03 06:00:00,9.91127227339176 +2023-10-03 07:00:00,22.85554097157058 +2023-10-03 08:00:00,28.38151889295983 +2023-10-03 09:00:00,10.204923563061929 +2023-10-03 10:00:00,4.681811341653333 +2023-10-03 11:00:00,21.569595643117736 +2023-10-03 12:00:00,26.26975513131414 +2023-10-03 13:00:00,8.056896186791299 +2023-10-03 14:00:00,23.857767811722173 +2023-10-03 15:00:00,23.256866002307 +2023-10-03 16:00:00,25.089590579031697 +2023-10-03 17:00:00,29.992434787898137 +2023-10-03 18:00:00,4.030545592160203 +2023-10-03 19:00:00,27.59570739623418 +2023-10-03 20:00:00,3.623835517973059 +2023-10-03 21:00:00,23.67147580826017 +2023-10-03 22:00:00,23.9294982047474 +2023-10-03 23:00:00,29.89564432673553 +2023-10-04 00:00:00,25.047448497854 +2023-10-04 01:00:00,0.2466819235614548 +2023-10-04 02:00:00,19.23489511686618 +2023-10-04 03:00:00,24.4128777309398 +2023-10-04 04:00:00,14.501886488439334 +2023-10-04 05:00:00,1.2612090932072495 +2023-10-04 06:00:00,10.571871212557353 +2023-10-04 07:00:00,6.7518532463205405 +2023-10-04 08:00:00,10.95430303043737 +2023-10-04 09:00:00,28.041992259382564 +2023-10-04 10:00:00,4.955940938254352 +2023-10-04 11:00:00,7.712371385643655 +2023-10-04 12:00:00,5.72878069981509 +2023-10-04 13:00:00,19.698812846767144 +2023-10-04 14:00:00,5.3376882212408585 +2023-10-04 15:00:00,15.03194838434928 +2023-10-04 16:00:00,23.62871775126366 +2023-10-04 17:00:00,11.030298197913297 +2023-10-04 18:00:00,20.67091424780194 +2023-10-04 19:00:00,16.587661534369964 +2023-10-04 20:00:00,3.183156742054918 +2023-10-04 21:00:00,5.178657817398179 +2023-10-04 22:00:00,1.0186612583059762 +2023-10-04 23:00:00,21.933015720184905 +2023-10-05 00:00:00,24.87741006836594 +2023-10-05 01:00:00,0.2227393268413069 +2023-10-05 02:00:00,3.695638239453587 +2023-10-05 03:00:00,17.354959456135436 +2023-10-05 04:00:00,24.57207776704343 +2023-10-05 05:00:00,29.501968170226903 +2023-10-05 06:00:00,24.18105663797456 +2023-10-05 07:00:00,1.714667279903137 +2023-10-05 08:00:00,28.783606532270976 +2023-10-05 09:00:00,27.59749286194926 +2023-10-05 10:00:00,4.413251017776228 +2023-10-05 11:00:00,17.237772810088757 +2023-10-05 12:00:00,6.800316382900719 +2023-10-05 13:00:00,23.270792118544755 +2023-10-05 14:00:00,19.03704421724959 +2023-10-05 15:00:00,5.1043476641747 +2023-10-05 16:00:00,8.716483449886603 +2023-10-05 17:00:00,20.251023466117 +2023-10-05 18:00:00,22.637166046131224 +2023-10-05 19:00:00,8.172750079940242 +2023-10-05 20:00:00,4.707866784823548 +2023-10-05 21:00:00,12.86189773626819 +2023-10-05 22:00:00,1.861797308899724 +2023-10-05 23:00:00,0.4420727709038174 +2023-10-06 00:00:00,11.441652323194324 +2023-10-06 01:00:00,28.842939441317284 +2023-10-06 02:00:00,6.938420344552807 +2023-10-06 03:00:00,23.5899812824983 +2023-10-06 04:00:00,13.31938798014152 +2023-10-06 05:00:00,6.7545885345391055 +2023-10-06 06:00:00,17.890176490969996 +2023-10-06 07:00:00,22.92045670215039 +2023-10-06 08:00:00,5.475742326325875 +2023-10-06 09:00:00,10.14876119288409 +2023-10-06 10:00:00,22.73277600504229 +2023-10-06 11:00:00,28.60433679741204 +2023-10-06 12:00:00,23.298689646601748 +2023-10-06 13:00:00,5.807282646844277 +2023-10-06 14:00:00,14.014570872897666 +2023-10-06 15:00:00,5.349376528563512 +2023-10-06 16:00:00,18.72263122929714 +2023-10-06 17:00:00,18.415584111480992 +2023-10-06 18:00:00,1.2246335224234497 +2023-10-06 19:00:00,1.2570130455615958 +2023-10-06 20:00:00,21.565074852364685 +2023-10-06 21:00:00,7.84111291750423 +2023-10-06 22:00:00,17.683426164819547 +2023-10-06 23:00:00,6.165430337278006 +2023-10-07 00:00:00,2.440148081976189 +2023-10-07 01:00:00,25.37376516250538 +2023-10-07 02:00:00,5.073565363983513 +2023-10-07 03:00:00,12.748856939969912 +2023-10-07 04:00:00,15.618694581808056 +2023-10-07 05:00:00,22.926521969758664 +2023-10-07 06:00:00,15.326478925314724 +2023-10-07 07:00:00,10.244027163152737 +2023-10-07 08:00:00,12.745244968677968 +2023-10-07 09:00:00,11.513052602970674 +2023-10-07 10:00:00,26.07844974620321 +2023-10-07 11:00:00,28.111292782066407 +2023-10-07 12:00:00,28.52748946569107 +2023-10-07 13:00:00,15.469790546884989 +2023-10-07 14:00:00,28.68197275761293 +2023-10-07 15:00:00,8.879059371807458 +2023-10-07 16:00:00,3.928051633064188 +2023-10-07 17:00:00,27.50683480782552 +2023-10-07 18:00:00,24.24583843609573 +2023-10-07 19:00:00,27.97778420034008 +2023-10-07 20:00:00,9.509322723803496 +2023-10-07 21:00:00,16.514601217405783 +2023-10-07 22:00:00,20.186613667625075 +2023-10-07 23:00:00,24.72595662998356 +2023-10-08 00:00:00,10.93046082191072 +2023-10-08 01:00:00,17.307192036916618 +2023-10-08 02:00:00,29.370141698479955 +2023-10-08 03:00:00,17.084370804871945 +2023-10-08 04:00:00,22.713075218160046 +2023-10-08 05:00:00,27.591855482144027 +2023-10-08 06:00:00,4.13718715536446 +2023-10-08 07:00:00,1.845212131329752 +2023-10-08 08:00:00,4.738305654304042 +2023-10-08 09:00:00,22.78784264530488 +2023-10-08 10:00:00,0.8292235619069654 +2023-10-08 11:00:00,23.46701616024617 +2023-10-08 12:00:00,27.14932626409705 +2023-10-08 13:00:00,17.384044031682276 +2023-10-08 14:00:00,16.633031634095182 +2023-10-08 15:00:00,14.856401434244368 +2023-10-08 16:00:00,5.011934469728905 +2023-10-08 17:00:00,22.976097749274565 +2023-10-08 18:00:00,15.23343963061916 +2023-10-08 19:00:00,7.891858132732949 +2023-10-08 20:00:00,20.258037115096283 +2023-10-08 21:00:00,4.467912225634598 +2023-10-08 22:00:00,20.054695634736944 +2023-10-08 23:00:00,20.86554932489124 +2023-10-09 00:00:00,7.493872279456633 +2023-10-09 01:00:00,8.294319889342415 +2023-10-09 02:00:00,4.692653813016806 +2023-10-09 03:00:00,10.914637947972285 +2023-10-09 04:00:00,15.6304598146978 +2023-10-09 05:00:00,28.840663919657235 +2023-10-09 06:00:00,26.051189768953996 +2023-10-09 07:00:00,12.440780190946604 +2023-10-09 08:00:00,15.5628745213726 +2023-10-09 09:00:00,2.989639138235667 +2023-10-09 10:00:00,7.197721051099288 +2023-10-09 11:00:00,19.934913110350134 +2023-10-09 12:00:00,7.043463786155217 +2023-10-09 13:00:00,9.83910649822602 +2023-10-09 14:00:00,5.340412161036112 +2023-10-09 15:00:00,11.844137333760944 +2023-10-09 16:00:00,11.798161282632396 +2023-10-09 17:00:00,23.843327477257706 +2023-10-09 18:00:00,24.662072014965123 +2023-10-09 19:00:00,24.72207551479814 +2023-10-09 20:00:00,20.8394982899774 +2023-10-09 21:00:00,15.80646388107757 +2023-10-09 22:00:00,21.475040040993647 +2023-10-09 23:00:00,5.303839095007136 +2023-10-10 00:00:00,11.415540619002345 +2023-10-10 01:00:00,1.5563282022291725 +2023-10-10 02:00:00,20.114817153720303 +2023-10-10 03:00:00,10.097335284895582 +2023-10-10 04:00:00,17.529034575168083 +2023-10-10 05:00:00,3.316729198839435 +2023-10-10 06:00:00,28.697241446895227 +2023-10-10 07:00:00,28.237771855053683 +2023-10-10 08:00:00,16.577776024009136 +2023-10-10 09:00:00,10.711999437764824 +2023-10-10 10:00:00,8.865855461242603 +2023-10-10 11:00:00,8.416978499788954 +2023-10-10 12:00:00,24.939792916681885 +2023-10-10 13:00:00,19.882684342747112 +2023-10-10 14:00:00,2.1470166353639266 +2023-10-10 15:00:00,9.853893656737684 +2023-10-10 16:00:00,27.906742136563253 +2023-10-10 17:00:00,29.04235814155724 +2023-10-10 18:00:00,12.758237777760286 +2023-10-10 19:00:00,20.218208850707576 +2023-10-10 20:00:00,26.36075342411408 +2023-10-10 21:00:00,28.58722523741565 +2023-10-10 22:00:00,4.553976540956187 +2023-10-10 23:00:00,4.445583107592518 +2023-10-11 00:00:00,8.592868760705878 +2023-10-11 01:00:00,12.545849031150276 +2023-10-11 02:00:00,25.747264221810468 +2023-10-11 03:00:00,24.7542271251353 +2023-10-11 04:00:00,18.95001002126128 +2023-10-11 05:00:00,9.98390989880138 +2023-10-11 06:00:00,23.60607695076362 +2023-10-11 07:00:00,14.035228144169723 +2023-10-11 08:00:00,27.0798623257345 +2023-10-11 09:00:00,7.210228771931527 +2023-10-11 10:00:00,22.660565593456717 +2023-10-11 11:00:00,26.24447369440505 +2023-10-11 12:00:00,22.73802395298454 +2023-10-11 13:00:00,3.515592069661194 +2023-10-11 14:00:00,29.840721964063327 +2023-10-11 15:00:00,8.049851446632658 +2023-10-11 16:00:00,22.575163093992156 +2023-10-11 17:00:00,11.534616597250183 +2023-10-11 18:00:00,13.476869625778953 +2023-10-11 19:00:00,6.638279635866904 +2023-10-11 20:00:00,4.348387936206439 +2023-10-11 21:00:00,6.17328065199947 +2023-10-11 22:00:00,4.8778782388816975 +2023-10-11 23:00:00,9.328052776636326 +2023-10-12 00:00:00,3.473335655891612 +2023-10-12 01:00:00,17.504529819404684 +2023-10-12 02:00:00,29.07451697435797 +2023-10-12 03:00:00,13.502124934350263 +2023-10-12 04:00:00,29.35617614157909 +2023-10-12 05:00:00,28.21064186727081 +2023-10-12 06:00:00,7.202022441010037 +2023-10-12 07:00:00,25.80175830345122 +2023-10-12 08:00:00,6.625017862526315 +2023-10-12 09:00:00,22.494140424842605 +2023-10-12 10:00:00,24.22864529939184 +2023-10-12 11:00:00,16.70047461319007 +2023-10-12 12:00:00,4.189015219460487 +2023-10-12 13:00:00,19.8395738912559 +2023-10-12 14:00:00,23.536940364640685 +2023-10-12 15:00:00,27.668885193115575 +2023-10-12 16:00:00,13.505790864889 +2023-10-12 17:00:00,14.237415071580989 +2023-10-12 18:00:00,10.37379973215302 +2023-10-12 19:00:00,16.654101824500373 +2023-10-12 20:00:00,11.915593632950962 +2023-10-12 21:00:00,4.997544185257192 +2023-10-12 22:00:00,27.203907445334 +2023-10-12 23:00:00,10.121621779014774 +2023-10-13 00:00:00,25.48323656723056 +2023-10-13 01:00:00,7.749732706968744 +2023-10-13 02:00:00,12.65982597315099 +2023-10-13 03:00:00,27.901485959714343 +2023-10-13 04:00:00,1.1921114980243086 +2023-10-13 05:00:00,6.363349818290477 +2023-10-13 06:00:00,6.527488616070512 +2023-10-13 07:00:00,2.407799336238514 +2023-10-13 08:00:00,18.25820441047613 +2023-10-13 09:00:00,20.980918058120256 +2023-10-13 10:00:00,4.000565862369671 +2023-10-13 11:00:00,28.79963424385692 +2023-10-13 12:00:00,0.7883723302337942 +2023-10-13 13:00:00,7.240180107582014 +2023-10-13 14:00:00,15.27117326116062 +2023-10-13 15:00:00,21.546917055931303 +2023-10-13 16:00:00,6.317894105612808 +2023-10-13 17:00:00,8.576001847079372 +2023-10-13 18:00:00,19.780366117794223 +2023-10-13 19:00:00,28.76642770310728 +2023-10-13 20:00:00,10.576187062271874 +2023-10-13 21:00:00,13.562357772385512 +2023-10-13 22:00:00,4.25729162058629 +2023-10-13 23:00:00,27.77745223518465 +2023-10-14 00:00:00,23.214425037354705 +2023-10-14 01:00:00,28.90220800331913 +2023-10-14 02:00:00,15.979516155267666 +2023-10-14 03:00:00,11.729655711296678 +2023-10-14 04:00:00,7.527354012874059 +2023-10-14 05:00:00,29.684278689377777 +2023-10-14 06:00:00,26.573316498209927 +2023-10-14 07:00:00,4.891824715111946 +2023-10-14 08:00:00,11.3054595420676 +2023-10-14 09:00:00,10.662279828695452 +2023-10-14 10:00:00,9.047306876116116 +2023-10-14 11:00:00,1.6777453595579994 +2023-10-14 12:00:00,1.074713791366988 +2023-10-14 13:00:00,29.4155132737566 +2023-10-14 14:00:00,25.25819708908205 +2023-10-14 15:00:00,16.789256973323628 +2023-10-14 16:00:00,18.556763409413847 +2023-10-14 17:00:00,26.45936042790501 +2023-10-14 18:00:00,13.87332502604066 +2023-10-14 19:00:00,17.850458725428012 +2023-10-14 20:00:00,25.39712181708074 +2023-10-14 21:00:00,6.585710131008325 +2023-10-14 22:00:00,25.85079414180508 +2023-10-14 23:00:00,9.2186211803307 +2023-10-15 00:00:00,4.416929779583492 +2023-10-15 01:00:00,11.465341427152495 +2023-10-15 02:00:00,11.514684654653529 +2023-10-15 03:00:00,28.022331992606333 +2023-10-15 04:00:00,14.097465860649642 +2023-10-15 05:00:00,6.93427926828404 +2023-10-15 06:00:00,20.1805221591225 +2023-10-15 07:00:00,20.88368149747316 +2023-10-15 08:00:00,9.693664726534148 +2023-10-15 09:00:00,8.815055933855282 +2023-10-15 10:00:00,19.544267280794216 +2023-10-15 11:00:00,2.387547882437685 +2023-10-15 12:00:00,22.479243180788732 +2023-10-15 13:00:00,22.41232514756288 +2023-10-15 14:00:00,14.900388943722175 +2023-10-15 15:00:00,5.8354754769358905 +2023-10-15 16:00:00,24.713245867040797 +2023-10-15 17:00:00,8.290449915767278 +2023-10-15 18:00:00,16.9809104617173 +2023-10-15 19:00:00,7.390607119872767 +2023-10-15 20:00:00,28.33059119810973 +2023-10-15 21:00:00,27.408743600740625 +2023-10-15 22:00:00,9.054927162642306 +2023-10-15 23:00:00,7.817700404644034 +2023-10-16 00:00:00,6.994459819482306 +2023-10-16 01:00:00,5.28476558362367 +2023-10-16 02:00:00,2.1824753042884035 +2023-10-16 03:00:00,12.138838379086842 +2023-10-16 04:00:00,17.523491667972408 +2023-10-16 05:00:00,22.248152403015776 +2023-10-16 06:00:00,26.21037192977044 +2023-10-16 07:00:00,22.5175869768313 +2023-10-16 08:00:00,22.584820258653497 +2023-10-16 09:00:00,10.964261291736786 +2023-10-16 10:00:00,9.270584018372205 +2023-10-16 11:00:00,5.239835567910914 +2023-10-16 12:00:00,16.592341374020062 +2023-10-16 13:00:00,17.344301800613895 +2023-10-16 14:00:00,22.69775846454911 +2023-10-16 15:00:00,2.5101971049113327 +2023-10-16 16:00:00,16.724623364515576 +2023-10-16 17:00:00,23.109736833463824 +2023-10-16 18:00:00,3.527966082897761 +2023-10-16 19:00:00,24.604218558970796 +2023-10-16 20:00:00,16.954174746848658 +2023-10-16 21:00:00,29.907664521116363 +2023-10-16 22:00:00,8.834616354822046 +2023-10-16 23:00:00,22.822329080182413 +2023-10-17 00:00:00,24.649512921921183 +2023-10-17 01:00:00,27.29226273587591 +2023-10-17 02:00:00,19.02580515229267 +2023-10-17 03:00:00,16.09971906709785 +2023-10-17 04:00:00,26.138576648255185 +2023-10-17 05:00:00,9.999974199382155 +2023-10-17 06:00:00,12.668813309398091 +2023-10-17 07:00:00,12.146338970771671 +2023-10-17 08:00:00,8.00739702746906 +2023-10-17 09:00:00,13.585781682394945 +2023-10-17 10:00:00,7.668908991558645 +2023-10-17 11:00:00,18.28544532444068 +2023-10-17 12:00:00,1.3198863818282036 +2023-10-17 13:00:00,12.309306987818246 +2023-10-17 14:00:00,4.457652519371498 +2023-10-17 15:00:00,3.2063288253040154 +2023-10-17 16:00:00,0.4764264355706127 +2023-10-17 17:00:00,29.180708620154448 +2023-10-17 18:00:00,2.1186613983057736 +2023-10-17 19:00:00,20.594197681349844 +2023-10-17 20:00:00,22.813595365498557 +2023-10-17 21:00:00,5.0985745803651685 +2023-10-17 22:00:00,9.136608831562391 +2023-10-17 23:00:00,27.07033594552688 +2023-10-18 00:00:00,17.475013826464384 +2023-10-18 01:00:00,4.152046471506719 +2023-10-18 02:00:00,15.34131996268966 +2023-10-18 03:00:00,12.485195068779642 +2023-10-18 04:00:00,23.92214354225147 +2023-10-18 05:00:00,17.449286934158184 +2023-10-18 06:00:00,17.121681217701546 +2023-10-18 07:00:00,27.550991062700284 +2023-10-18 08:00:00,11.687124888162 +2023-10-18 09:00:00,25.832122274214534 +2023-10-18 10:00:00,6.548685476539292 +2023-10-18 11:00:00,5.142319825443062 +2023-10-18 12:00:00,17.972483542850977 +2023-10-18 13:00:00,12.677253573041243 +2023-10-18 14:00:00,0.1061820000080993 +2023-10-18 15:00:00,0.609086075841534 +2023-10-18 16:00:00,5.318182359152566 +2023-10-18 17:00:00,16.712554759192408 +2023-10-18 18:00:00,16.302660760222988 +2023-10-18 19:00:00,4.031879377919369 +2023-10-18 20:00:00,15.798227817014842 +2023-10-18 21:00:00,0.1851727167827654 +2023-10-18 22:00:00,23.515709614493588 +2023-10-18 23:00:00,4.572317924785933 +2023-10-19 00:00:00,18.94819386577806 +2023-10-19 01:00:00,7.870937477194523 +2023-10-19 02:00:00,0.8449613632214137 +2023-10-19 03:00:00,9.624122236544173 +2023-10-19 04:00:00,20.415594171182107 +2023-10-19 05:00:00,3.407521417161949 +2023-10-19 06:00:00,26.7997160589174 +2023-10-19 07:00:00,12.7910035532248 +2023-10-19 08:00:00,17.46720177909003 +2023-10-19 09:00:00,10.638293140191266 +2023-10-19 10:00:00,14.164164343668617 +2023-10-19 11:00:00,18.09744075951504 +2023-10-19 12:00:00,3.772069660556747 +2023-10-19 13:00:00,5.779546019856156 +2023-10-19 14:00:00,20.082439548539973 +2023-10-19 15:00:00,5.448122665376412 +2023-10-19 16:00:00,7.43431339288505 +2023-10-19 17:00:00,16.300007958521082 +2023-10-19 18:00:00,26.773761491911 +2023-10-19 19:00:00,16.033098631917277 +2023-10-19 20:00:00,20.983734060733088 +2023-10-19 21:00:00,7.175072960690768 +2023-10-19 22:00:00,27.11554397188249 +2023-10-19 23:00:00,27.23916167119691 +2023-10-20 00:00:00,1.347738498419685 +2023-10-20 01:00:00,21.708541429132115 +2023-10-20 02:00:00,13.757503092090996 +2023-10-20 03:00:00,29.286425273276784 +2023-10-20 04:00:00,19.032388669002778 +2023-10-20 05:00:00,8.344382528282171 +2023-10-20 06:00:00,25.78352792390221 +2023-10-20 07:00:00,17.341089061089505 +2023-10-20 08:00:00,19.550716042736425 +2023-10-20 09:00:00,0.3947274117937527 +2023-10-20 10:00:00,26.13055175814973 +2023-10-20 11:00:00,17.74668254920438 +2023-10-20 12:00:00,19.60438241629672 +2023-10-20 13:00:00,0.3019579407959938 +2023-10-20 14:00:00,12.568847927453602 +2023-10-20 15:00:00,18.542073317737746 +2023-10-20 16:00:00,10.049704360221272 +2023-10-20 17:00:00,26.65170658524035 +2023-10-20 18:00:00,11.564962498312187 +2023-10-20 19:00:00,16.19355316521422 +2023-10-20 20:00:00,4.89068288660738 +2023-10-20 21:00:00,16.824196497627007 +2023-10-20 22:00:00,23.01487389305591 +2023-10-20 23:00:00,17.208001107909624 +2023-10-21 00:00:00,8.59113061613095 +2023-10-21 01:00:00,0.433471651890196 +2023-10-21 02:00:00,29.07430903179003 +2023-10-21 03:00:00,0.6347404998736761 +2023-10-21 04:00:00,2.038022324041054 +2023-10-21 05:00:00,22.576474274909398 +2023-10-21 06:00:00,17.132318526273757 +2023-10-21 07:00:00,3.057385394732947 +2023-10-21 08:00:00,1.5815873972495464 +2023-10-21 09:00:00,7.000707518988055 +2023-10-21 10:00:00,12.75520455573171 +2023-10-21 11:00:00,0.8665333697056166 +2023-10-21 12:00:00,6.900304525559855 +2023-10-21 13:00:00,20.215066245230982 +2023-10-21 14:00:00,0.7200598092426858 +2023-10-21 15:00:00,23.04929088181597 +2023-10-21 16:00:00,3.4291016169360318 +2023-10-21 17:00:00,19.069372133685214 +2023-10-21 18:00:00,8.237302968775989 +2023-10-21 19:00:00,8.597131270486187 +2023-10-21 20:00:00,13.088001845610613 +2023-10-21 21:00:00,27.34444616386857 +2023-10-21 22:00:00,26.667953750743614 +2023-10-21 23:00:00,21.63476703751581 +2023-10-22 00:00:00,18.23761125590026 +2023-10-22 01:00:00,23.260219448502745 +2023-10-22 02:00:00,24.066579078836742 +2023-10-22 03:00:00,11.812423905643412 +2023-10-22 04:00:00,19.57262049276404 +2023-10-22 05:00:00,29.028570819274623 +2023-10-22 06:00:00,23.85530061031212 +2023-10-22 07:00:00,7.9856554952529635 +2023-10-22 08:00:00,22.3108720403423 +2023-10-22 09:00:00,1.6883403230493987 +2023-10-22 10:00:00,17.636839226953875 +2023-10-22 11:00:00,1.9340153413541767 +2023-10-22 12:00:00,20.176747328077475 +2023-10-22 13:00:00,0.2199243682675622 +2023-10-22 14:00:00,13.053456458505256 +2023-10-22 15:00:00,16.434320943687087 +2023-10-22 16:00:00,23.18705188779436 +2023-10-22 17:00:00,23.286384237593587 +2023-10-22 18:00:00,21.14105335397631 +2023-10-22 19:00:00,26.328051454118704 +2023-10-22 20:00:00,23.989110560403432 +2023-10-22 21:00:00,26.75915569980813 +2023-10-22 22:00:00,15.641737701284528 +2023-10-22 23:00:00,27.727488707925268 +2023-10-23 00:00:00,26.4646773046201 +2023-10-23 01:00:00,0.0226310532746332 +2023-10-23 02:00:00,7.372036451889191 +2023-10-23 03:00:00,22.43456803778464 +2023-10-23 04:00:00,6.817786447672071 +2023-10-23 05:00:00,24.034196049926063 +2023-10-23 06:00:00,21.17502366358663 +2023-10-23 07:00:00,17.918131156331246 +2023-10-23 08:00:00,7.814362797587857 +2023-10-23 09:00:00,15.64465450590689 +2023-10-23 10:00:00,17.72681119377559 +2023-10-23 11:00:00,25.85874492706293 +2023-10-23 12:00:00,13.216447388780017 +2023-10-23 13:00:00,4.472761412190814 +2023-10-23 14:00:00,7.80871145271536 +2023-10-23 15:00:00,15.126572409220891 +2023-10-23 16:00:00,7.089969343686887 +2023-10-23 17:00:00,12.422236534053418 +2023-10-23 18:00:00,25.60026723652937 +2023-10-23 19:00:00,0.0801616800508719 +2023-10-23 20:00:00,19.56027215764677 +2023-10-23 21:00:00,9.041027487956304 +2023-10-23 22:00:00,28.01627302021017 +2023-10-23 23:00:00,11.808591617445137 +2023-10-24 00:00:00,17.65868096174124 +2023-10-24 01:00:00,27.87983346588871 +2023-10-24 02:00:00,20.126020187059183 +2023-10-24 03:00:00,12.189773056547272 +2023-10-24 04:00:00,23.23359568975781 +2023-10-24 05:00:00,16.779818037111347 +2023-10-24 06:00:00,6.30136933805296 +2023-10-24 07:00:00,26.81319766007935 +2023-10-24 08:00:00,6.363706174206543 +2023-10-24 09:00:00,15.15526531619831 +2023-10-24 10:00:00,8.73733091432841 +2023-10-24 11:00:00,1.7891200618090377 +2023-10-24 12:00:00,13.73213442352589 +2023-10-24 13:00:00,8.502480678779486 +2023-10-24 14:00:00,4.8033911388747565 +2023-10-24 15:00:00,18.90325432924976 +2023-10-24 16:00:00,15.901907329857824 +2023-10-24 17:00:00,17.220138300453137 +2023-10-24 18:00:00,11.87553137260602 +2023-10-24 19:00:00,18.84521565733111 +2023-10-24 20:00:00,11.29261305155426 +2023-10-24 21:00:00,3.220863025872088 +2023-10-24 22:00:00,16.160900043774163 +2023-10-24 23:00:00,0.3465755988995822 +2023-10-25 00:00:00,20.528642042094383 +2023-10-25 01:00:00,2.202616003839541 +2023-10-25 02:00:00,12.400091666645 +2023-10-25 03:00:00,0.7960723822983007 +2023-10-25 04:00:00,15.318562316792525 +2023-10-25 05:00:00,19.93011577792633 +2023-10-25 06:00:00,0.2087405065002423 +2023-10-25 07:00:00,26.249845472068227 +2023-10-25 08:00:00,26.444450997586696 +2023-10-25 09:00:00,27.537325234183093 +2023-10-25 10:00:00,5.03244518781694 +2023-10-25 11:00:00,25.839995698894324 +2023-10-25 12:00:00,4.079341123785553 +2023-10-25 13:00:00,0.3085849106041305 +2023-10-25 14:00:00,11.406985014784992 +2023-10-25 15:00:00,26.720281261775337 +2023-10-25 16:00:00,11.54651306511913 +2023-10-25 17:00:00,13.382335228787134 +2023-10-25 18:00:00,15.3684770150765 +2023-10-25 19:00:00,1.742810176098284 +2023-10-25 20:00:00,16.158950501293134 +2023-10-25 21:00:00,3.308663194138525 +2023-10-25 22:00:00,3.067814934390828 +2023-10-25 23:00:00,26.40332153411032 +2023-10-26 00:00:00,2.931897862399073 +2023-10-26 01:00:00,15.00036538367285 +2023-10-26 02:00:00,27.39324040086565 +2023-10-26 03:00:00,8.943728715572586 +2023-10-26 04:00:00,7.596968735439569 +2023-10-26 05:00:00,19.539543402549917 +2023-10-26 06:00:00,6.820043414658273 +2023-10-26 07:00:00,26.020075905390733 +2023-10-26 08:00:00,6.118911421717417 +2023-10-26 09:00:00,24.28146240915885 +2023-10-26 10:00:00,18.40529683335004 +2023-10-26 11:00:00,19.65625108738412 +2023-10-26 12:00:00,16.41081725053332 +2023-10-26 13:00:00,18.103888793914194 +2023-10-26 14:00:00,27.23632758153328 +2023-10-26 15:00:00,23.45742814225587 +2023-10-26 16:00:00,21.08037743797633 +2023-10-26 17:00:00,1.4112747201428388 +2023-10-26 18:00:00,24.286743931540137 +2023-10-26 19:00:00,24.43608930195793 +2023-10-26 20:00:00,29.31406658628063 +2023-10-26 21:00:00,15.181234731585066 +2023-10-26 22:00:00,28.526170921680528 +2023-10-26 23:00:00,11.377877492541224 +2023-10-27 00:00:00,21.203883252072806 +2023-10-27 01:00:00,9.659848213727845 +2023-10-27 02:00:00,12.457372434956511 +2023-10-27 03:00:00,1.393534998771314 +2023-10-27 04:00:00,11.44492031291128 +2023-10-27 05:00:00,16.14493504877008 +2023-10-27 06:00:00,6.722896909605728 +2023-10-27 07:00:00,13.224737414261652 +2023-10-27 08:00:00,5.546057834280523 +2023-10-27 09:00:00,10.310426558502376 +2023-10-27 10:00:00,9.680688340799673 +2023-10-27 11:00:00,22.90416687083767 +2023-10-27 12:00:00,21.22743885524652 +2023-10-27 13:00:00,25.936283034379684 +2023-10-27 14:00:00,26.98639832158583 +2023-10-27 15:00:00,27.681806205844342 +2023-10-27 16:00:00,10.995452720514658 +2023-10-27 17:00:00,26.60204104803415 +2023-10-27 18:00:00,4.304507865610699 +2023-10-27 19:00:00,0.5454534738578809 +2023-10-27 20:00:00,26.816405615596526 +2023-10-27 21:00:00,8.945946837851464 +2023-10-27 22:00:00,25.00320753139024 +2023-10-27 23:00:00,23.542764222518645 +2023-10-28 00:00:00,22.1477881036701 +2023-10-28 01:00:00,26.136886900278988 +2023-10-28 02:00:00,11.543720318564636 +2023-10-28 03:00:00,0.6005063301393065 +2023-10-28 04:00:00,20.172212458949065 +2023-10-28 05:00:00,18.884349998482 +2023-10-28 06:00:00,13.476444758335056 +2023-10-28 07:00:00,9.035845577951756 +2023-10-28 08:00:00,21.34182600298673 +2023-10-28 09:00:00,26.57861783580204 +2023-10-28 10:00:00,16.20735377166583 +2023-10-28 11:00:00,8.317580985954793 +2023-10-28 12:00:00,25.17248163754398 +2023-10-28 13:00:00,15.10256338885629 +2023-10-28 14:00:00,16.999335963038455 +2023-10-28 15:00:00,28.28475779759103 +2023-10-28 16:00:00,9.93745136748438 +2023-10-28 17:00:00,8.269134493928597 +2023-10-28 18:00:00,25.36712093054073 +2023-10-28 19:00:00,5.830351060832632 +2023-10-28 20:00:00,3.223303427782971 +2023-10-28 21:00:00,10.773541729086222 +2023-10-28 22:00:00,6.869830001393737 +2023-10-28 23:00:00,27.72742714941997 +2023-10-29 00:00:00,16.59838036552755 +2023-10-29 01:00:00,24.25873639606648 +2023-10-29 02:00:00,19.90968224930816 +2023-10-29 03:00:00,15.534801509080564 +2023-10-29 04:00:00,14.99974599619606 +2023-10-29 05:00:00,1.0140140925141603 +2023-10-29 06:00:00,27.357081921817517 +2023-10-29 07:00:00,22.836745297492065 +2023-10-29 08:00:00,4.944663572894804 +2023-10-29 09:00:00,21.19514005913049 +2023-10-29 10:00:00,21.442565039438573 +2023-10-29 11:00:00,1.949106523338785 +2023-10-29 12:00:00,27.09076582189748 +2023-10-29 13:00:00,16.34468678349173 +2023-10-29 14:00:00,0.696633591010487 +2023-10-29 15:00:00,25.125916820765507 +2023-10-29 16:00:00,23.53809254331336 +2023-10-29 17:00:00,3.943935114954852 +2023-10-29 18:00:00,26.35865560100265 +2023-10-29 19:00:00,25.978986354978225 +2023-10-29 20:00:00,4.496963827297118 +2023-10-29 21:00:00,26.217472544119545 +2023-10-29 22:00:00,2.1426017320735555 +2023-10-29 23:00:00,3.553342660860248 +2023-10-30 00:00:00,1.822041754322855 +2023-10-30 01:00:00,8.295295855000704 +2023-10-30 02:00:00,26.645932437155484 +2023-10-30 03:00:00,20.230292543009643 +2023-10-30 04:00:00,7.289876136978544 +2023-10-30 05:00:00,23.274123483986678 +2023-10-30 06:00:00,15.88103909121682 +2023-10-30 07:00:00,15.19416797049064 +2023-10-30 08:00:00,19.11215601445085 +2023-10-30 09:00:00,3.819907951912377 +2023-10-30 10:00:00,21.59366339114749 +2023-10-30 11:00:00,13.96209460119334 +2023-10-30 12:00:00,6.540236073541122 +2023-10-30 13:00:00,16.86390810360181 +2023-10-30 14:00:00,21.22836804285792 +2023-10-30 15:00:00,16.753647859260415 +2023-10-30 16:00:00,16.06880459252332 +2023-10-30 17:00:00,4.602316283260281 +2023-10-30 18:00:00,12.519559752042236 +2023-10-30 19:00:00,27.210781732847877 +2023-10-30 20:00:00,19.47847210614422 +2023-10-30 21:00:00,12.993128426548438 +2023-10-30 22:00:00,24.26242663036418 +2023-10-30 23:00:00,15.46357322464942 +2023-10-31 00:00:00,6.048633561827578 +2023-10-31 01:00:00,10.585528320376987 +2023-10-31 02:00:00,3.716370151290632 +2023-10-31 03:00:00,21.10735518537062 +2023-10-31 04:00:00,27.87091389103783 +2023-10-31 05:00:00,27.682724302164964 +2023-10-31 06:00:00,29.706324912655816 +2023-10-31 07:00:00,13.71449956112436 +2023-10-31 08:00:00,27.36735241668598 +2023-10-31 09:00:00,13.936298960443043 +2023-10-31 10:00:00,19.6044534231454 +2023-10-31 11:00:00,10.674215025673297 +2023-10-31 12:00:00,21.38366429690674 +2023-10-31 13:00:00,1.6759250832898764 +2023-10-31 14:00:00,17.89131657513903 +2023-10-31 15:00:00,10.907687276910323 +2023-10-31 16:00:00,18.780736309447278 +2023-10-31 17:00:00,26.693468842305258 +2023-10-31 18:00:00,10.27142786401345 +2023-10-31 19:00:00,23.569031897630285 +2023-10-31 20:00:00,28.09284534284033 +2023-10-31 21:00:00,21.619720594058045 +2023-10-31 22:00:00,11.777802003066329 +2023-10-31 23:00:00,2.6983083704722235 +2023-11-01 00:00:00,21.472815660376117 +2023-11-01 01:00:00,12.229135691461105 +2023-11-01 02:00:00,1.3326120085986193 +2023-11-01 03:00:00,3.174218686524229 +2023-11-01 04:00:00,13.3346171052882 +2023-11-01 05:00:00,20.415646142153697 +2023-11-01 06:00:00,15.034392986547564 +2023-11-01 07:00:00,21.342168069155367 +2023-11-01 08:00:00,16.012127632169662 +2023-11-01 09:00:00,10.974044822528356 +2023-11-01 10:00:00,20.67844626553196 +2023-11-01 11:00:00,22.56763491995027 +2023-11-01 12:00:00,14.443114857611231 +2023-11-01 13:00:00,2.1267226051853405 +2023-11-01 14:00:00,14.959964488210971 +2023-11-01 15:00:00,25.47618472278095 +2023-11-01 16:00:00,6.258767293270271 +2023-11-01 17:00:00,11.992485168694074 +2023-11-01 18:00:00,18.448787706226632 +2023-11-01 19:00:00,4.243827975791491 +2023-11-01 20:00:00,14.3921531992915 +2023-11-01 21:00:00,3.674764256162677 +2023-11-01 22:00:00,2.407638831094495 +2023-11-01 23:00:00,12.27067259569401 +2023-11-02 00:00:00,9.791607154771762 +2023-11-02 01:00:00,7.241455655036387 +2023-11-02 02:00:00,9.228356707937143 +2023-11-02 03:00:00,0.5561285853929254 +2023-11-02 04:00:00,19.73844441954148 +2023-11-02 05:00:00,20.705067226192742 +2023-11-02 06:00:00,24.56816084951902 +2023-11-02 07:00:00,6.088552767918104 +2023-11-02 08:00:00,21.01043150269321 +2023-11-02 09:00:00,24.251928148972866 +2023-11-02 10:00:00,18.904801647373805 +2023-11-02 11:00:00,9.587408912181704 +2023-11-02 12:00:00,3.181970836040532 +2023-11-02 13:00:00,12.87673735686017 +2023-11-02 14:00:00,0.3622273256494313 +2023-11-02 15:00:00,27.324906560399285 +2023-11-02 16:00:00,16.57341812514192 +2023-11-02 17:00:00,5.458008999794595 +2023-11-02 18:00:00,29.57535343443929 +2023-11-02 19:00:00,20.5313882541994 +2023-11-02 20:00:00,0.5407313472028652 +2023-11-02 21:00:00,27.47903326319022 +2023-11-02 22:00:00,9.750068789386589 +2023-11-02 23:00:00,12.162853601321157 +2023-11-03 00:00:00,14.741091762419664 +2023-11-03 01:00:00,25.1345879698098 +2023-11-03 02:00:00,9.507291770439773 +2023-11-03 03:00:00,12.849239687056816 +2023-11-03 04:00:00,8.566740298742946 +2023-11-03 05:00:00,9.978915378468155 +2023-11-03 06:00:00,24.81351319083493 +2023-11-03 07:00:00,0.5472545647555616 +2023-11-03 08:00:00,23.49301168608141 +2023-11-03 09:00:00,6.596553252228067 +2023-11-03 10:00:00,5.523872223575143 +2023-11-03 11:00:00,25.114730756068244 +2023-11-03 12:00:00,27.81034448251818 +2023-11-03 13:00:00,20.968588097829752 +2023-11-03 14:00:00,26.239922498886564 +2023-11-03 15:00:00,8.175415174383758 +2023-11-03 16:00:00,10.82058937172902 +2023-11-03 17:00:00,29.176491823935308 +2023-11-03 18:00:00,29.833565236521103 +2023-11-03 19:00:00,16.848265641387453 +2023-11-03 20:00:00,6.7007549201305325 +2023-11-03 21:00:00,11.364948650608609 +2023-11-03 22:00:00,5.832197761426968 +2023-11-03 23:00:00,1.324660608714675 +2023-11-04 00:00:00,13.76100036193863 +2023-11-04 01:00:00,2.490897402386944 +2023-11-04 02:00:00,10.675026159508816 +2023-11-04 03:00:00,23.566863564000563 +2023-11-04 04:00:00,12.475975872830006 +2023-11-04 05:00:00,7.337568622476769 +2023-11-04 06:00:00,23.894708582611724 +2023-11-04 07:00:00,17.57158597929461 +2023-11-04 08:00:00,9.905434344039444 +2023-11-04 09:00:00,9.080021101012896 +2023-11-04 10:00:00,5.438288399686856 +2023-11-04 11:00:00,9.340894291202597 +2023-11-04 12:00:00,12.031871354518316 +2023-11-04 13:00:00,19.844484768971355 +2023-11-04 14:00:00,20.08545803650945 +2023-11-04 15:00:00,23.3648168712992 +2023-11-04 16:00:00,1.1022995104135125 +2023-11-04 17:00:00,21.49417144598545 +2023-11-04 18:00:00,16.2230171995211 +2023-11-04 19:00:00,1.0623555898292114 +2023-11-04 20:00:00,28.278721704440542 +2023-11-04 21:00:00,10.443593178987935 +2023-11-04 22:00:00,15.993658414417451 +2023-11-04 23:00:00,25.93986912707398 +2023-11-05 00:00:00,8.494415935508732 +2023-11-05 01:00:00,24.18203657617157 +2023-11-05 02:00:00,8.200855301773355 +2023-11-05 03:00:00,1.5803663730655082 +2023-11-05 04:00:00,17.689930360900576 +2023-11-05 05:00:00,10.146344815645753 +2023-11-05 06:00:00,3.081551119670134 +2023-11-05 07:00:00,24.723807274702548 +2023-11-05 08:00:00,15.3386740457824 +2023-11-05 09:00:00,24.23730428115758 +2023-11-05 10:00:00,2.371797132251748 +2023-11-05 11:00:00,13.678690431257646 +2023-11-05 12:00:00,14.8562889514549 +2023-11-05 13:00:00,29.329586103083297 +2023-11-05 14:00:00,26.179414272543323 +2023-11-05 15:00:00,4.7954504080845375 +2023-11-05 16:00:00,29.44201795688139 +2023-11-05 17:00:00,29.475600249490164 +2023-11-05 18:00:00,14.19326754672179 +2023-11-05 19:00:00,7.727917545565798 +2023-11-05 20:00:00,19.137929548998816 +2023-11-05 21:00:00,15.825459042865116 +2023-11-05 22:00:00,2.6402625957567816 +2023-11-05 23:00:00,22.01500708233168 +2023-11-06 00:00:00,16.729576953176174 +2023-11-06 01:00:00,29.218531786146023 +2023-11-06 02:00:00,15.41535440625078 +2023-11-06 03:00:00,24.491592616520027 +2023-11-06 04:00:00,21.13874160094832 +2023-11-06 05:00:00,19.790586122384006 +2023-11-06 06:00:00,21.698220985825007 +2023-11-06 07:00:00,15.545487881475513 +2023-11-06 08:00:00,28.97000992864092 +2023-11-06 09:00:00,13.37368091127153 +2023-11-06 10:00:00,10.402787377881136 +2023-11-06 11:00:00,27.0854178325408 +2023-11-06 12:00:00,26.273285681492474 +2023-11-06 13:00:00,26.107881124907134 +2023-11-06 14:00:00,11.979040233794086 +2023-11-06 15:00:00,2.150412001985641 +2023-11-06 16:00:00,17.995312690013968 +2023-11-06 17:00:00,20.082620723481885 +2023-11-06 18:00:00,25.18056113374853 +2023-11-06 19:00:00,25.746444245711512 +2023-11-06 20:00:00,9.837628216508666 +2023-11-06 21:00:00,9.01822992794603 +2023-11-06 22:00:00,12.441147302158251 +2023-11-06 23:00:00,11.443712066592122 +2023-11-07 00:00:00,10.109204918218332 +2023-11-07 01:00:00,9.038509444104596 +2023-11-07 02:00:00,1.738786824291666 +2023-11-07 03:00:00,22.02021366457376 +2023-11-07 04:00:00,8.918370274556773 +2023-11-07 05:00:00,29.89783253855665 +2023-11-07 06:00:00,4.89999954631916 +2023-11-07 07:00:00,7.053802287225297 +2023-11-07 08:00:00,22.088019048751136 +2023-11-07 09:00:00,4.399579963477668 +2023-11-07 10:00:00,21.053161617805216 +2023-11-07 11:00:00,21.30119660948085 +2023-11-07 12:00:00,20.673692289480712 +2023-11-07 13:00:00,12.558923757700928 +2023-11-07 14:00:00,11.52067426876686 +2023-11-07 15:00:00,3.5759754355675977 +2023-11-07 16:00:00,26.85780475708096 +2023-11-07 17:00:00,12.90191394932637 +2023-11-07 18:00:00,20.885100508411984 +2023-11-07 19:00:00,26.12134076470696 +2023-11-07 20:00:00,10.256564550837435 +2023-11-07 21:00:00,15.163783016677955 +2023-11-07 22:00:00,19.017351451730168 +2023-11-07 23:00:00,4.116404614907196 +2023-11-08 00:00:00,6.21270902597149 +2023-11-08 01:00:00,3.442021218944205 +2023-11-08 02:00:00,15.056127079406956 +2023-11-08 03:00:00,20.344686786123905 +2023-11-08 04:00:00,10.415054601892786 +2023-11-08 05:00:00,9.6674137092639 +2023-11-08 06:00:00,11.41993083916489 +2023-11-08 07:00:00,26.640865447947384 +2023-11-08 08:00:00,2.7097058776248897 +2023-11-08 09:00:00,4.226762894874261 +2023-11-08 10:00:00,28.387477317972 +2023-11-08 11:00:00,27.019370878392085 +2023-11-08 12:00:00,3.95095964474548 +2023-11-08 13:00:00,1.200158654288721 +2023-11-08 14:00:00,14.267080208921612 +2023-11-08 15:00:00,28.35774344384909 +2023-11-08 16:00:00,21.729302548033814 +2023-11-08 17:00:00,11.849537218409496 +2023-11-08 18:00:00,26.715290753826626 +2023-11-08 19:00:00,5.512199703175958 +2023-11-08 20:00:00,6.720191520967481 +2023-11-08 21:00:00,28.775487519343308 +2023-11-08 22:00:00,19.56491888047673 +2023-11-08 23:00:00,2.822086675229283 +2023-11-09 00:00:00,24.58705695264057 +2023-11-09 01:00:00,29.11455696571481 +2023-11-09 02:00:00,17.83233177248271 +2023-11-09 03:00:00,19.42748479469384 +2023-11-09 04:00:00,10.316468292671408 +2023-11-09 05:00:00,19.23036272661726 +2023-11-09 06:00:00,29.60727794406409 +2023-11-09 07:00:00,3.188170004785368 +2023-11-09 08:00:00,7.724493892073301 +2023-11-09 09:00:00,10.972785268967884 +2023-11-09 10:00:00,4.478883874779397 +2023-11-09 11:00:00,10.973904476151173 +2023-11-09 12:00:00,21.758463871578662 +2023-11-09 13:00:00,4.428438650744929 +2023-11-09 14:00:00,14.171620345509124 +2023-11-09 15:00:00,16.488673365871442 +2023-11-09 16:00:00,10.753981441337224 +2023-11-09 17:00:00,7.032030077465876 +2023-11-09 18:00:00,17.65470908487359 +2023-11-09 19:00:00,11.451252237544326 +2023-11-09 20:00:00,20.72106953763573 +2023-11-09 21:00:00,26.944538186645826 +2023-11-09 22:00:00,23.550476200047832 +2023-11-09 23:00:00,13.830681280919917 +2023-11-10 00:00:00,27.97563572031604 +2023-11-10 01:00:00,14.922782029597784 +2023-11-10 02:00:00,28.271484174104728 +2023-11-10 03:00:00,1.4215232474630213 +2023-11-10 04:00:00,4.288784434122329 +2023-11-10 05:00:00,27.36360440764938 +2023-11-10 06:00:00,10.740233304270763 +2023-11-10 07:00:00,4.322269496549247 +2023-11-10 08:00:00,25.98377790985184 +2023-11-10 09:00:00,17.165406998129917 +2023-11-10 10:00:00,4.280071235152235 +2023-11-10 11:00:00,2.216045266405829 +2023-11-10 12:00:00,29.96270006607425 +2023-11-10 13:00:00,19.48974987159952 +2023-11-10 14:00:00,0.7030486860771157 +2023-11-10 15:00:00,12.216040539822606 +2023-11-10 16:00:00,0.8204900821817696 +2023-11-10 17:00:00,27.32844809126428 +2023-11-10 18:00:00,12.271640432210145 +2023-11-10 19:00:00,0.6065048378565252 +2023-11-10 20:00:00,26.39823600257584 +2023-11-10 21:00:00,2.0050246574139097 +2023-11-10 22:00:00,25.946425004265155 +2023-11-10 23:00:00,24.666467564986515 +2023-11-11 00:00:00,13.680164575039775 +2023-11-11 01:00:00,0.3188030511981976 +2023-11-11 02:00:00,18.61148388734782 +2023-11-11 03:00:00,1.1403191310643523 +2023-11-11 04:00:00,22.7076537867723 +2023-11-11 05:00:00,26.65428902546139 +2023-11-11 06:00:00,18.980437080018984 +2023-11-11 07:00:00,17.36234425308196 +2023-11-11 08:00:00,23.91616149088069 +2023-11-11 09:00:00,17.59815808242814 +2023-11-11 10:00:00,20.01293178850585 +2023-11-11 11:00:00,3.100056905247353 +2023-11-11 12:00:00,3.85136714768452 +2023-11-11 13:00:00,0.0600674101943865 +2023-11-11 14:00:00,13.710826510442573 +2023-11-11 15:00:00,13.635951492822644 +2023-11-11 16:00:00,19.22185689831312 +2023-11-11 17:00:00,7.6779363506591825 +2023-11-11 18:00:00,12.749781679673012 +2023-11-11 19:00:00,27.53884085008001 +2023-11-11 20:00:00,16.851956654648742 +2023-11-11 21:00:00,15.644207138442848 +2023-11-11 22:00:00,3.816647659202391 +2023-11-11 23:00:00,1.703643772439769 +2023-11-12 00:00:00,19.617753037538225 +2023-11-12 01:00:00,5.342309698026209 +2023-11-12 02:00:00,20.175094894593297 +2023-11-12 03:00:00,13.196736239679309 +2023-11-12 04:00:00,13.91917603879856 +2023-11-12 05:00:00,4.696637149637243 +2023-11-12 06:00:00,28.168031919057867 +2023-11-12 07:00:00,6.741777922189346 +2023-11-12 08:00:00,12.513553090509047 +2023-11-12 09:00:00,24.944961452146043 +2023-11-12 10:00:00,24.60073029558332 +2023-11-12 11:00:00,0.2565654051700083 +2023-11-12 12:00:00,3.012746920412078 +2023-11-12 13:00:00,13.413620033650565 +2023-11-12 14:00:00,7.242662310863441 +2023-11-12 15:00:00,22.11893500433916 +2023-11-12 16:00:00,3.89526162483563 +2023-11-12 17:00:00,20.38165296618318 +2023-11-12 18:00:00,5.71224617752315 +2023-11-12 19:00:00,12.993032550303363 +2023-11-12 20:00:00,6.492447885816819 +2023-11-12 21:00:00,17.533377708342368 +2023-11-12 22:00:00,6.594011826079782 +2023-11-12 23:00:00,6.12927940679641 +2023-11-13 00:00:00,12.775032862090772 +2023-11-13 01:00:00,11.583251611939154 +2023-11-13 02:00:00,16.411746356450575 +2023-11-13 03:00:00,28.63777868059963 +2023-11-13 04:00:00,27.22420778952972 +2023-11-13 05:00:00,15.02953438253152 +2023-11-13 06:00:00,17.170172399306892 +2023-11-13 07:00:00,24.775661349255827 +2023-11-13 08:00:00,4.907572718626386 +2023-11-13 09:00:00,10.305448323317629 +2023-11-13 10:00:00,2.953435183597406 +2023-11-13 11:00:00,27.214706041873416 +2023-11-13 12:00:00,27.978607339227864 +2023-11-13 13:00:00,15.854360314824833 +2023-11-13 14:00:00,16.082444428292703 +2023-11-13 15:00:00,10.535814358177046 +2023-11-13 16:00:00,8.56886722632714 +2023-11-13 17:00:00,11.946964870021734 +2023-11-13 18:00:00,1.5664148627208574 +2023-11-13 19:00:00,24.435815191044867 +2023-11-13 20:00:00,8.725949807983062 +2023-11-13 21:00:00,11.318977029940088 +2023-11-13 22:00:00,22.94957639870472 +2023-11-13 23:00:00,23.45615911411886 +2023-11-14 00:00:00,11.46070560897543 +2023-11-14 01:00:00,21.043234295747084 +2023-11-14 02:00:00,17.41935789604887 +2023-11-14 03:00:00,24.28358381750403 +2023-11-14 04:00:00,4.872617375758103 +2023-11-14 05:00:00,27.090267428055565 +2023-11-14 06:00:00,29.316652402230485 +2023-11-14 07:00:00,26.738849764174773 +2023-11-14 08:00:00,22.102616525256146 +2023-11-14 09:00:00,25.75890477233311 +2023-11-14 10:00:00,6.819972558468911 +2023-11-14 11:00:00,12.110270320780469 +2023-11-14 12:00:00,25.333597628542503 +2023-11-14 13:00:00,26.98933094455857 +2023-11-14 14:00:00,24.86599143912541 +2023-11-14 15:00:00,20.56255101983856 +2023-11-14 16:00:00,7.522540391413308 +2023-11-14 17:00:00,9.31229381663757 +2023-11-14 18:00:00,21.01357945254247 +2023-11-14 19:00:00,6.832737882270875 +2023-11-14 20:00:00,1.365542000775111 +2023-11-14 21:00:00,15.27045910776084 +2023-11-14 22:00:00,0.6646475361413373 +2023-11-14 23:00:00,29.756925837346163 +2023-11-15 00:00:00,28.49589675768364 +2023-11-15 01:00:00,18.18920806360683 +2023-11-15 02:00:00,24.251030175859803 +2023-11-15 03:00:00,24.67640054749865 +2023-11-15 04:00:00,12.3391061045613 +2023-11-15 05:00:00,12.406672829557294 +2023-11-15 06:00:00,5.814269052485144 +2023-11-15 07:00:00,10.563405870167866 +2023-11-15 08:00:00,4.615548245752658 +2023-11-15 09:00:00,29.437325269931648 +2023-11-15 10:00:00,13.8647424431834 +2023-11-15 11:00:00,14.645438143009583 +2023-11-15 12:00:00,25.95402674928745 +2023-11-15 13:00:00,17.33817331195241 +2023-11-15 14:00:00,23.766752052198218 +2023-11-15 15:00:00,25.396827033182376 +2023-11-15 16:00:00,28.91927641118075 +2023-11-15 17:00:00,14.221467282598969 +2023-11-15 18:00:00,23.16397825969883 +2023-11-15 19:00:00,15.223529361798278 +2023-11-15 20:00:00,16.526289579028727 +2023-11-15 21:00:00,18.59179869428211 +2023-11-15 22:00:00,23.637070685766 +2023-11-15 23:00:00,9.159878963571806 +2023-11-16 00:00:00,17.841901697181353 +2023-11-16 01:00:00,13.71297394847697 +2023-11-16 02:00:00,27.672806490387664 +2023-11-16 03:00:00,19.08533672179683 +2023-11-16 04:00:00,0.9610014724738604 +2023-11-16 05:00:00,2.4111436395818897 +2023-11-16 06:00:00,3.856994629893026 +2023-11-16 07:00:00,13.997588118333944 +2023-11-16 08:00:00,5.1720645558148135 +2023-11-16 09:00:00,20.7462920766279 +2023-11-16 10:00:00,28.875613664653205 +2023-11-16 11:00:00,7.383524556381385 +2023-11-16 12:00:00,23.381541061326537 +2023-11-16 13:00:00,13.045489251579436 +2023-11-16 14:00:00,0.8873191196933394 +2023-11-16 15:00:00,5.0761502209541565 +2023-11-16 16:00:00,23.16328873071936 +2023-11-16 17:00:00,3.68950799664419 +2023-11-16 18:00:00,4.979552235983253 +2023-11-16 19:00:00,18.23972203450148 +2023-11-16 20:00:00,27.30906024185534 +2023-11-16 21:00:00,0.7589192340710849 +2023-11-16 22:00:00,13.777142588105551 +2023-11-16 23:00:00,20.72818569917317 +2023-11-17 00:00:00,29.49174509697437 +2023-11-17 01:00:00,11.549530699771022 +2023-11-17 02:00:00,26.298883457608824 +2023-11-17 03:00:00,17.831303285472522 +2023-11-17 04:00:00,25.41534023121172 +2023-11-17 05:00:00,14.360377384341694 +2023-11-17 06:00:00,1.1780427625238488 +2023-11-17 07:00:00,11.345895136232215 +2023-11-17 08:00:00,27.68180265204506 +2023-11-17 09:00:00,18.206646646845268 +2023-11-17 10:00:00,19.36591330670661 +2023-11-17 11:00:00,12.662426240344796 +2023-11-17 12:00:00,15.960518895022132 +2023-11-17 13:00:00,19.646142454285314 +2023-11-17 14:00:00,19.105764190383358 +2023-11-17 15:00:00,25.986916633966597 +2023-11-17 16:00:00,11.846996469774185 +2023-11-17 17:00:00,21.42003284034526 +2023-11-17 18:00:00,21.664788766114118 +2023-11-17 19:00:00,17.00343688500367 +2023-11-17 20:00:00,20.748694013952548 +2023-11-17 21:00:00,14.7679845112157 +2023-11-17 22:00:00,17.71447215730076 +2023-11-17 23:00:00,9.134514028615191 +2023-11-18 00:00:00,24.016220818804857 +2023-11-18 01:00:00,23.745466007773423 +2023-11-18 02:00:00,27.625894015403357 +2023-11-18 03:00:00,15.324565738783772 +2023-11-18 04:00:00,8.289923440841386 +2023-11-18 05:00:00,26.45508471385854 +2023-11-18 06:00:00,13.706875435803717 +2023-11-18 07:00:00,29.778183240202665 +2023-11-18 08:00:00,14.73066766195329 +2023-11-18 09:00:00,25.11785540885335 +2023-11-18 10:00:00,21.319227379946785 +2023-11-18 11:00:00,25.01863124874184 +2023-11-18 12:00:00,19.836530609981388 +2023-11-18 13:00:00,10.30948840510025 +2023-11-18 14:00:00,27.736947324010934 +2023-11-18 15:00:00,23.611365274518413 +2023-11-18 16:00:00,11.618959767420735 +2023-11-18 17:00:00,16.08944885966686 +2023-11-18 18:00:00,16.564921100701913 +2023-11-18 19:00:00,11.9970591118027 +2023-11-18 20:00:00,1.3108693148438788 +2023-11-18 21:00:00,12.725043823900569 +2023-11-18 22:00:00,2.89707579316264 +2023-11-18 23:00:00,18.077312161347432 +2023-11-19 00:00:00,29.374769187118986 +2023-11-19 01:00:00,14.691719443580798 +2023-11-19 02:00:00,24.83858770896361 +2023-11-19 03:00:00,6.104879840323415 +2023-11-19 04:00:00,22.00519404769126 +2023-11-19 05:00:00,12.310809522712104 +2023-11-19 06:00:00,4.10162081216452 +2023-11-19 07:00:00,27.05722874144899 +2023-11-19 08:00:00,18.99957649717028 +2023-11-19 09:00:00,9.375280008895992 +2023-11-19 10:00:00,11.723016810959066 +2023-11-19 11:00:00,23.332863019552143 +2023-11-19 12:00:00,2.5686040128914667 +2023-11-19 13:00:00,20.62221898087312 +2023-11-19 14:00:00,11.622806107550266 +2023-11-19 15:00:00,11.404447497448723 +2023-11-19 16:00:00,19.37570385407112 +2023-11-19 17:00:00,25.51564602452469 +2023-11-19 18:00:00,9.691618814933983 +2023-11-19 19:00:00,8.272838481678894 +2023-11-19 20:00:00,4.475252286994892 +2023-11-19 21:00:00,18.65573207805841 +2023-11-19 22:00:00,21.100117995442183 +2023-11-19 23:00:00,1.854451042477956 +2023-11-20 00:00:00,22.124172040050546 +2023-11-20 01:00:00,23.39878569567006 +2023-11-20 02:00:00,20.673949424657 +2023-11-20 03:00:00,7.406537404054854 +2023-11-20 04:00:00,3.6683397314400015 +2023-11-20 05:00:00,13.015523385644784 +2023-11-20 06:00:00,22.797070569350407 +2023-11-20 07:00:00,9.21481699123248 +2023-11-20 08:00:00,4.5419506406109 +2023-11-20 09:00:00,18.659321492181288 +2023-11-20 10:00:00,0.9585932147977884 +2023-11-20 11:00:00,18.91762544014846 +2023-11-20 12:00:00,19.937901740468984 +2023-11-20 13:00:00,7.791326380280223 +2023-11-20 14:00:00,18.155466015058803 +2023-11-20 15:00:00,1.989282520127783 +2023-11-20 16:00:00,27.46075471141395 +2023-11-20 17:00:00,9.09734281065781 +2023-11-20 18:00:00,27.46197251219121 +2023-11-20 19:00:00,25.85119882382163 +2023-11-20 20:00:00,29.934597488239763 +2023-11-20 21:00:00,20.8000954263222 +2023-11-20 22:00:00,22.78643012773332 +2023-11-20 23:00:00,14.059084857722604 +2023-11-21 00:00:00,2.4180789773457203 +2023-11-21 01:00:00,12.22954321143498 +2023-11-21 02:00:00,21.1210759235 +2023-11-21 03:00:00,28.437062257170048 +2023-11-21 04:00:00,4.448938896386591 +2023-11-21 05:00:00,25.041394348826167 +2023-11-21 06:00:00,15.221510559410412 +2023-11-21 07:00:00,1.3714475597793463 +2023-11-21 08:00:00,22.390118445477786 +2023-11-21 09:00:00,0.8001650345574385 +2023-11-21 10:00:00,10.473525124599426 +2023-11-21 11:00:00,11.794347578997748 +2023-11-21 12:00:00,11.680987190803862 +2023-11-21 13:00:00,28.62812071079137 +2023-11-21 14:00:00,8.056186827999714 +2023-11-21 15:00:00,3.372605769971886 +2023-11-21 16:00:00,20.670196859160917 +2023-11-21 17:00:00,0.0535551585066162 +2023-11-21 18:00:00,29.31396430530977 +2023-11-21 19:00:00,4.755539296607434 +2023-11-21 20:00:00,27.733222102617194 +2023-11-21 21:00:00,22.862816294935858 +2023-11-21 22:00:00,23.235991224176853 +2023-11-21 23:00:00,4.551334843597255 +2023-11-22 00:00:00,24.89612365564988 +2023-11-22 01:00:00,24.54071864304225 +2023-11-22 02:00:00,18.84168193354533 +2023-11-22 03:00:00,28.97712744143395 +2023-11-22 04:00:00,13.381382793758526 +2023-11-22 05:00:00,24.3742642102072 +2023-11-22 06:00:00,9.115265939407276 +2023-11-22 07:00:00,18.963753897857263 +2023-11-22 08:00:00,7.835215063694616 +2023-11-22 09:00:00,28.59091971561378 +2023-11-22 10:00:00,9.79187973511362 +2023-11-22 11:00:00,13.803936118775836 +2023-11-22 12:00:00,17.747106802945293 +2023-11-22 13:00:00,2.215598205376763 +2023-11-22 14:00:00,25.09097537347817 +2023-11-22 15:00:00,2.578922867653869 +2023-11-22 16:00:00,17.26666620798754 +2023-11-22 17:00:00,16.612816203257054 +2023-11-22 18:00:00,4.306899615798331 +2023-11-22 19:00:00,12.845130438349166 +2023-11-22 20:00:00,28.718972122183224 +2023-11-22 21:00:00,15.72160691670584 +2023-11-22 22:00:00,27.3305672686303 +2023-11-22 23:00:00,2.773465008501103 +2023-11-23 00:00:00,24.540485439580188 +2023-11-23 01:00:00,3.302728657409346 +2023-11-23 02:00:00,24.352235989967912 +2023-11-23 03:00:00,9.529175578415067 +2023-11-23 04:00:00,1.3147271649525205 +2023-11-23 05:00:00,9.826636886832162 +2023-11-23 06:00:00,6.810916129553744 +2023-11-23 07:00:00,17.161991499834354 +2023-11-23 08:00:00,7.917035774638599 +2023-11-23 09:00:00,29.489348894227195 +2023-11-23 10:00:00,29.80136628141148 +2023-11-23 11:00:00,12.49150141288262 +2023-11-23 12:00:00,8.617065151577693 +2023-11-23 13:00:00,25.529161587973928 +2023-11-23 14:00:00,7.119146639332875 +2023-11-23 15:00:00,11.710182648114 +2023-11-23 16:00:00,12.273397197411644 +2023-11-23 17:00:00,7.815562939114655 +2023-11-23 18:00:00,28.900845511514863 +2023-11-23 19:00:00,10.66029380950734 +2023-11-23 20:00:00,12.189830466599778 +2023-11-23 21:00:00,22.58323154626081 +2023-11-23 22:00:00,9.194312161552212 +2023-11-23 23:00:00,21.974350676476988 +2023-11-24 00:00:00,26.18957712967072 +2023-11-24 01:00:00,5.998151962921319 +2023-11-24 02:00:00,22.014431946577183 +2023-11-24 03:00:00,29.410226757813728 +2023-11-24 04:00:00,22.48518797480305 +2023-11-24 05:00:00,20.879425306174166 +2023-11-24 06:00:00,9.364801595857912 +2023-11-24 07:00:00,11.4136323018177 +2023-11-24 08:00:00,23.708159516318965 +2023-11-24 09:00:00,15.420567068661338 +2023-11-24 10:00:00,21.030281718312487 +2023-11-24 11:00:00,29.15476785076141 +2023-11-24 12:00:00,8.162222887018096 +2023-11-24 13:00:00,2.2452040160163 +2023-11-24 14:00:00,7.061494816033905 +2023-11-24 15:00:00,11.196588595516962 +2023-11-24 16:00:00,11.036855866073124 +2023-11-24 17:00:00,14.089693066739285 +2023-11-24 18:00:00,22.761507109559545 +2023-11-24 19:00:00,24.764702400064667 +2023-11-24 20:00:00,2.91334456623522 +2023-11-24 21:00:00,0.5191332173985486 +2023-11-24 22:00:00,0.7064352332758783 +2023-11-24 23:00:00,1.179328281560622 +2023-11-25 00:00:00,26.394899562013983 +2023-11-25 01:00:00,28.493718031067843 +2023-11-25 02:00:00,10.621233898967445 +2023-11-25 03:00:00,14.060217517936564 +2023-11-25 04:00:00,21.021950078439907 +2023-11-25 05:00:00,27.60915199377981 +2023-11-25 06:00:00,7.08742927079369 +2023-11-25 07:00:00,9.208636656569938 +2023-11-25 08:00:00,14.835085448489668 +2023-11-25 09:00:00,17.76575230907383 +2023-11-25 10:00:00,5.021382049779426 +2023-11-25 11:00:00,26.253754579093307 +2023-11-25 12:00:00,23.830487238357343 +2023-11-25 13:00:00,12.196938640200448 +2023-11-25 14:00:00,26.87403405320604 +2023-11-25 15:00:00,16.80108132691198 +2023-11-25 16:00:00,29.86448300793328 +2023-11-25 17:00:00,26.97868874135034 +2023-11-25 18:00:00,26.33955063035871 +2023-11-25 19:00:00,20.05322722029412 +2023-11-25 20:00:00,10.89085921971572 +2023-11-25 21:00:00,19.454253447798028 +2023-11-25 22:00:00,12.647286803944866 +2023-11-25 23:00:00,25.550463633887468 +2023-11-26 00:00:00,29.03466557587327 +2023-11-26 01:00:00,14.043896436572252 +2023-11-26 02:00:00,10.208317442811923 +2023-11-26 03:00:00,17.34204941002036 +2023-11-26 04:00:00,11.262320752507511 +2023-11-26 05:00:00,6.725300964653584 +2023-11-26 06:00:00,22.88692182971801 +2023-11-26 07:00:00,22.60398384315152 +2023-11-26 08:00:00,5.534885508739212 +2023-11-26 09:00:00,9.863447636978467 +2023-11-26 10:00:00,24.59605295839536 +2023-11-26 11:00:00,25.393976177929968 +2023-11-26 12:00:00,18.646947450059447 +2023-11-26 13:00:00,25.953516610554537 +2023-11-26 14:00:00,27.422020886186747 +2023-11-26 15:00:00,28.031115575372816 +2023-11-26 16:00:00,23.11775186007802 +2023-11-26 17:00:00,7.472707600711858 +2023-11-26 18:00:00,27.832955567648497 +2023-11-26 19:00:00,1.1744423052557218 +2023-11-26 20:00:00,11.32255053187761 +2023-11-26 21:00:00,11.538777856881222 +2023-11-26 22:00:00,24.490888067272728 +2023-11-26 23:00:00,2.225750722841896 +2023-11-27 00:00:00,6.640515107405035 +2023-11-27 01:00:00,20.56510427489441 +2023-11-27 02:00:00,20.36340175526792 +2023-11-27 03:00:00,20.72913157654562 +2023-11-27 04:00:00,21.92023678005777 +2023-11-27 05:00:00,4.845119184260474 +2023-11-27 06:00:00,25.514571642764977 +2023-11-27 07:00:00,6.232257851621212 +2023-11-27 08:00:00,23.1276510407768 +2023-11-27 09:00:00,4.9520168595903815 +2023-11-27 10:00:00,3.171885668581421 +2023-11-27 11:00:00,6.064365074384515 +2023-11-27 12:00:00,21.712603916930053 +2023-11-27 13:00:00,11.240130694429803 +2023-11-27 14:00:00,25.429173398367944 +2023-11-27 15:00:00,4.842366994406397 +2023-11-27 16:00:00,7.8208115083543 +2023-11-27 17:00:00,4.040496915205312 +2023-11-27 18:00:00,0.318587773664265 +2023-11-27 19:00:00,18.04875480308388 +2023-11-27 20:00:00,14.092611255104504 +2023-11-27 21:00:00,17.028763784148047 +2023-11-27 22:00:00,19.659082410882107 +2023-11-27 23:00:00,11.66858530268825 +2023-11-28 00:00:00,23.47588763432626 +2023-11-28 01:00:00,9.239505781589283 +2023-11-28 02:00:00,19.64500302846149 +2023-11-28 03:00:00,14.943600336166329 +2023-11-28 04:00:00,1.0684904054349398 +2023-11-28 05:00:00,20.939239085826014 +2023-11-28 06:00:00,12.089705215466394 +2023-11-28 07:00:00,22.36814983687151 +2023-11-28 08:00:00,19.8711735303664 +2023-11-28 09:00:00,21.122884920896222 +2023-11-28 10:00:00,2.1469367645943613 +2023-11-28 11:00:00,0.5519796836007562 +2023-11-28 12:00:00,13.269734079955114 +2023-11-28 13:00:00,25.830778006683357 +2023-11-28 14:00:00,3.9258382900596014 +2023-11-28 15:00:00,2.3981050922925573 +2023-11-28 16:00:00,12.581760157114235 +2023-11-28 17:00:00,3.7637909568480032 +2023-11-28 18:00:00,12.93680511662466 +2023-11-28 19:00:00,24.612094694600145 +2023-11-28 20:00:00,20.25021225438899 +2023-11-28 21:00:00,11.958390788511904 +2023-11-28 22:00:00,9.820406864975835 +2023-11-28 23:00:00,8.420852194958911 +2023-11-29 00:00:00,5.194957507265373 +2023-11-29 01:00:00,21.25669101021681 +2023-11-29 02:00:00,12.314676359647912 +2023-11-29 03:00:00,8.73190613930777 +2023-11-29 04:00:00,10.68957792026332 +2023-11-29 05:00:00,27.82320215048312 +2023-11-29 06:00:00,20.57256976930246 +2023-11-29 07:00:00,19.39185009416908 +2023-11-29 08:00:00,26.888947828056075 +2023-11-29 09:00:00,8.527275649476714 +2023-11-29 10:00:00,20.14950974319087 +2023-11-29 11:00:00,12.918746634548446 +2023-11-29 12:00:00,6.251756382136065 +2023-11-29 13:00:00,27.71416746773809 +2023-11-29 14:00:00,19.39493615119697 +2023-11-29 15:00:00,19.61267293766945 +2023-11-29 16:00:00,26.654399287967287 +2023-11-29 17:00:00,25.767742680047167 +2023-11-29 18:00:00,5.191266747441387 +2023-11-29 19:00:00,5.49779596180576 +2023-11-29 20:00:00,14.314782775045082 +2023-11-29 21:00:00,11.661721036671258 +2023-11-29 22:00:00,17.007078848139944 +2023-11-29 23:00:00,15.006548603695856 +2023-11-30 00:00:00,12.704962036097102 +2023-11-30 01:00:00,4.504820208070402 +2023-11-30 02:00:00,29.37388398937297 +2023-11-30 03:00:00,10.37647830599621 +2023-11-30 04:00:00,28.078246002145697 +2023-11-30 05:00:00,6.985138895815752 +2023-11-30 06:00:00,17.627396980045738 +2023-11-30 07:00:00,3.67319373592608 +2023-11-30 08:00:00,9.930159741042395 +2023-11-30 09:00:00,16.574994259524342 +2023-11-30 10:00:00,19.20005224427394 +2023-11-30 11:00:00,25.6107995632524 +2023-11-30 12:00:00,25.82672961491588 +2023-11-30 13:00:00,15.528698336865776 +2023-11-30 14:00:00,7.607596376059228 +2023-11-30 15:00:00,4.0370610901569846 +2023-11-30 16:00:00,0.2005309812526878 +2023-11-30 17:00:00,8.003261221988874 +2023-11-30 18:00:00,26.07089988300313 +2023-11-30 19:00:00,8.785369192396452 +2023-11-30 20:00:00,11.894401363576623 +2023-11-30 21:00:00,10.779041632548529 +2023-11-30 22:00:00,18.288898741933483 +2023-11-30 23:00:00,14.703189024650198 +2023-12-01 00:00:00,7.289529448647654 +2023-12-01 01:00:00,23.51172997387264 +2023-12-01 02:00:00,28.549547714234265 +2023-12-01 03:00:00,27.289303439331643 +2023-12-01 04:00:00,2.0616303811737904 +2023-12-01 05:00:00,23.58989846093089 +2023-12-01 06:00:00,8.739083752394803 +2023-12-01 07:00:00,27.70470824522705 +2023-12-01 08:00:00,19.36219311245679 +2023-12-01 09:00:00,26.795353234041627 +2023-12-01 10:00:00,1.430696614560728 +2023-12-01 11:00:00,25.79057982630949 +2023-12-01 12:00:00,18.63824328841274 +2023-12-01 13:00:00,17.549384281808095 +2023-12-01 14:00:00,17.35767761151472 +2023-12-01 15:00:00,11.215583920943931 +2023-12-01 16:00:00,1.596838525263382 +2023-12-01 17:00:00,4.812338694292738 +2023-12-01 18:00:00,20.291292668075723 +2023-12-01 19:00:00,16.035218757345465 +2023-12-01 20:00:00,17.031901908672225 +2023-12-01 21:00:00,24.020672108355136 +2023-12-01 22:00:00,19.50777176847436 +2023-12-01 23:00:00,28.504225465444865 +2023-12-02 00:00:00,14.094648586372903 +2023-12-02 01:00:00,3.6049593857005457 +2023-12-02 02:00:00,19.103573752305845 +2023-12-02 03:00:00,2.771518262481072 +2023-12-02 04:00:00,27.074783836956662 +2023-12-02 05:00:00,19.56595845436491 +2023-12-02 06:00:00,13.773022809892328 +2023-12-02 07:00:00,14.89289521387425 +2023-12-02 08:00:00,21.19011689314517 +2023-12-02 09:00:00,21.614916795280973 +2023-12-02 10:00:00,22.66944496639688 +2023-12-02 11:00:00,3.270507046407211 +2023-12-02 12:00:00,2.1074635622720197 +2023-12-02 13:00:00,27.432004582264536 +2023-12-02 14:00:00,0.5215046250387512 +2023-12-02 15:00:00,23.29831828185985 +2023-12-02 16:00:00,14.086352898289867 +2023-12-02 17:00:00,19.62015643332897 +2023-12-02 18:00:00,3.1938750005374104 +2023-12-02 19:00:00,21.12810432162249 +2023-12-02 20:00:00,9.305369510719052 +2023-12-02 21:00:00,27.561495148922937 +2023-12-02 22:00:00,25.682706229621427 +2023-12-02 23:00:00,5.34822853032228 +2023-12-03 00:00:00,4.485893067885906 +2023-12-03 01:00:00,3.303015820693518 +2023-12-03 02:00:00,5.986468569981512 +2023-12-03 03:00:00,21.03887161518759 +2023-12-03 04:00:00,21.035197911257963 +2023-12-03 05:00:00,23.379487018560965 +2023-12-03 06:00:00,29.199791980922424 +2023-12-03 07:00:00,18.530258393507488 +2023-12-03 08:00:00,29.276172465366106 +2023-12-03 09:00:00,28.794234543059204 +2023-12-03 10:00:00,21.478117802238742 +2023-12-03 11:00:00,21.091474814137637 +2023-12-03 12:00:00,21.191850822623483 +2023-12-03 13:00:00,25.503549013512384 +2023-12-03 14:00:00,0.6465133750030239 +2023-12-03 15:00:00,2.1180297449681285 +2023-12-03 16:00:00,20.35009102360377 +2023-12-03 17:00:00,0.6957660610873551 +2023-12-03 18:00:00,24.373364833912326 +2023-12-03 19:00:00,12.644171779514515 +2023-12-03 20:00:00,11.077952818292207 +2023-12-03 21:00:00,4.543517193586094 +2023-12-03 22:00:00,25.487833038889335 +2023-12-03 23:00:00,15.183327124875811 +2023-12-04 00:00:00,29.036320828890187 +2023-12-04 01:00:00,27.48529228903303 +2023-12-04 02:00:00,12.769176056521848 +2023-12-04 03:00:00,19.157106566132107 +2023-12-04 04:00:00,26.69401072456447 +2023-12-04 05:00:00,20.731217587016356 +2023-12-04 06:00:00,0.6750230022989312 +2023-12-04 07:00:00,5.329871921686275 +2023-12-04 08:00:00,18.726349220384822 +2023-12-04 09:00:00,19.693004393499773 +2023-12-04 10:00:00,14.55240204319536 +2023-12-04 11:00:00,25.081839904593608 +2023-12-04 12:00:00,25.73689536928876 +2023-12-04 13:00:00,0.1928575851994496 +2023-12-04 14:00:00,10.16787649019894 +2023-12-04 15:00:00,7.746974814851676 +2023-12-04 16:00:00,14.058620678423123 +2023-12-04 17:00:00,2.857689360531773 +2023-12-04 18:00:00,9.350383703315456 +2023-12-04 19:00:00,9.499921243916903 +2023-12-04 20:00:00,7.780543561593878 +2023-12-04 21:00:00,21.710520119466832 +2023-12-04 22:00:00,7.6813830852410625 +2023-12-04 23:00:00,1.996246866194703 +2023-12-05 00:00:00,8.924887485727165 +2023-12-05 01:00:00,1.662534963631943 +2023-12-05 02:00:00,8.442557822517351 +2023-12-05 03:00:00,6.40822699170854 +2023-12-05 04:00:00,2.969691062300148 +2023-12-05 05:00:00,29.61169414630311 +2023-12-05 06:00:00,16.711135330308878 +2023-12-05 07:00:00,21.163482897988025 +2023-12-05 08:00:00,16.360570845265112 +2023-12-05 09:00:00,4.873784836581977 +2023-12-05 10:00:00,7.228097688771285 +2023-12-05 11:00:00,22.979925609605736 +2023-12-05 12:00:00,25.26862823686168 +2023-12-05 13:00:00,7.202764633491313 +2023-12-05 14:00:00,23.541185330877 +2023-12-05 15:00:00,15.421298898545482 +2023-12-05 16:00:00,21.525611991836964 +2023-12-05 17:00:00,2.9408387838222283 +2023-12-05 18:00:00,7.555957443837434 +2023-12-05 19:00:00,23.676322444124622 +2023-12-05 20:00:00,29.679660204809515 +2023-12-05 21:00:00,3.9564055411888543 +2023-12-05 22:00:00,13.779009575781968 +2023-12-05 23:00:00,9.516217289526269 +2023-12-06 00:00:00,0.3906882574139048 +2023-12-06 01:00:00,26.665743268409805 +2023-12-06 02:00:00,28.571290604664007 +2023-12-06 03:00:00,14.831052633227484 +2023-12-06 04:00:00,10.288390080998848 +2023-12-06 05:00:00,8.008983171905356 +2023-12-06 06:00:00,20.58104146679328 +2023-12-06 07:00:00,5.332891394544187 +2023-12-06 08:00:00,9.289435120456632 +2023-12-06 09:00:00,23.426299069197157 +2023-12-06 10:00:00,10.799670195995914 +2023-12-06 11:00:00,11.9419130713985 +2023-12-06 12:00:00,28.05631351572485 +2023-12-06 13:00:00,15.83163352537008 +2023-12-06 14:00:00,3.401874639532392 +2023-12-06 15:00:00,10.26666161224792 +2023-12-06 16:00:00,0.858527975055684 +2023-12-06 17:00:00,2.267370654813722 +2023-12-06 18:00:00,17.465520148783355 +2023-12-06 19:00:00,19.1474268146088 +2023-12-06 20:00:00,10.944794365517808 +2023-12-06 21:00:00,10.128323277353774 +2023-12-06 22:00:00,13.209682796465472 +2023-12-06 23:00:00,21.982894159567515 +2023-12-07 00:00:00,19.66580238544553 +2023-12-07 01:00:00,8.235630373574875 +2023-12-07 02:00:00,28.772845328128938 +2023-12-07 03:00:00,7.355318371502561 +2023-12-07 04:00:00,23.90472280047404 +2023-12-07 05:00:00,19.86263097553848 +2023-12-07 06:00:00,17.63017535623944 +2023-12-07 07:00:00,22.61162068286279 +2023-12-07 08:00:00,25.182199764757137 +2023-12-07 09:00:00,22.61696106729609 +2023-12-07 10:00:00,27.882882126429017 +2023-12-07 11:00:00,2.2251525790598348 +2023-12-07 12:00:00,18.728589447059285 +2023-12-07 13:00:00,17.994365698226552 +2023-12-07 14:00:00,16.370621527941964 +2023-12-07 15:00:00,23.29855726575681 +2023-12-07 16:00:00,9.105591750796624 +2023-12-07 17:00:00,29.54974955738866 +2023-12-07 18:00:00,11.565042165615475 +2023-12-07 19:00:00,28.814632827391197 +2023-12-07 20:00:00,18.282956287788966 +2023-12-07 21:00:00,22.81177045913153 +2023-12-07 22:00:00,21.060701717256936 +2023-12-07 23:00:00,23.785724598235877 +2023-12-08 00:00:00,8.75329796601958 +2023-12-08 01:00:00,5.249763696833433 +2023-12-08 02:00:00,20.996926069673293 +2023-12-08 03:00:00,13.838609427575996 +2023-12-08 04:00:00,14.86192238115656 +2023-12-08 05:00:00,13.99390572204326 +2023-12-08 06:00:00,24.82559224631937 +2023-12-08 07:00:00,23.268969398137507 +2023-12-08 08:00:00,29.847284669170797 +2023-12-08 09:00:00,27.162779104936 +2023-12-08 10:00:00,27.892846477033245 +2023-12-08 11:00:00,15.446289969615789 +2023-12-08 12:00:00,10.5681269592777 +2023-12-08 13:00:00,15.051860388141238 +2023-12-08 14:00:00,10.897524366581218 +2023-12-08 15:00:00,12.58640516725366 +2023-12-08 16:00:00,9.522753489304224 +2023-12-08 17:00:00,8.322485903491875 +2023-12-08 18:00:00,13.420798393688878 +2023-12-08 19:00:00,27.8026918367833 +2023-12-08 20:00:00,1.4407094647294594 +2023-12-08 21:00:00,24.852429050477745 +2023-12-08 22:00:00,3.846613212891228 +2023-12-08 23:00:00,11.841287649258769 +2023-12-09 00:00:00,20.00127602502953 +2023-12-09 01:00:00,27.59039563244645 +2023-12-09 02:00:00,24.30017817486328 +2023-12-09 03:00:00,19.77409474856244 +2023-12-09 04:00:00,6.224270141718968 +2023-12-09 05:00:00,15.584753645103364 +2023-12-09 06:00:00,15.673784641811745 +2023-12-09 07:00:00,26.720957118060127 +2023-12-09 08:00:00,7.562029828398497 +2023-12-09 09:00:00,24.67161992300168 +2023-12-09 10:00:00,24.605505920462573 +2023-12-09 11:00:00,21.735910891384272 +2023-12-09 12:00:00,11.390596385674163 +2023-12-09 13:00:00,26.69919318496643 +2023-12-09 14:00:00,0.2764406091921512 +2023-12-09 15:00:00,23.917525739164784 +2023-12-09 16:00:00,25.190533612461017 +2023-12-09 17:00:00,27.786386764527855 +2023-12-09 18:00:00,20.608165657630693 +2023-12-09 19:00:00,9.057002321632774 +2023-12-09 20:00:00,25.60654836280373 +2023-12-09 21:00:00,24.40208506660241 +2023-12-09 22:00:00,16.79287992282642 +2023-12-09 23:00:00,5.921505261432071 +2023-12-10 00:00:00,14.29925243265392 +2023-12-10 01:00:00,23.871104869673218 +2023-12-10 02:00:00,16.991337990408287 +2023-12-10 03:00:00,12.230090419718472 +2023-12-10 04:00:00,16.426045874833957 +2023-12-10 05:00:00,20.32321101727144 +2023-12-10 06:00:00,0.6281764400139167 +2023-12-10 07:00:00,24.756845446686377 +2023-12-10 08:00:00,15.518886838502723 +2023-12-10 09:00:00,24.637036226736416 +2023-12-10 10:00:00,4.819818718521471 +2023-12-10 11:00:00,14.38417231479716 +2023-12-10 12:00:00,19.54533442393439 +2023-12-10 13:00:00,11.950376718098337 +2023-12-10 14:00:00,4.555305701448443 +2023-12-10 15:00:00,14.473977056499654 +2023-12-10 16:00:00,2.602883284813701 +2023-12-10 17:00:00,25.77352285275932 +2023-12-10 18:00:00,4.2664488079491845 +2023-12-10 19:00:00,14.4632322772849 +2023-12-10 20:00:00,24.06492794812994 +2023-12-10 21:00:00,7.4090249036584925 +2023-12-10 22:00:00,19.92912762922526 +2023-12-10 23:00:00,6.79468849183194 +2023-12-11 00:00:00,28.833409922111965 +2023-12-11 01:00:00,8.848472234042305 +2023-12-11 02:00:00,7.450708777756848 +2023-12-11 03:00:00,11.385623158506537 +2023-12-11 04:00:00,21.650727375913263 +2023-12-11 05:00:00,23.048434559788703 +2023-12-11 06:00:00,14.852885716671375 +2023-12-11 07:00:00,11.359438270852245 +2023-12-11 08:00:00,25.95784988907122 +2023-12-11 09:00:00,10.810161575590808 +2023-12-11 10:00:00,20.7931888183971 +2023-12-11 11:00:00,6.555366092428203 +2023-12-11 12:00:00,17.762472952778346 +2023-12-11 13:00:00,28.189644025797 +2023-12-11 14:00:00,0.9095278953356544 +2023-12-11 15:00:00,21.69940931829221 +2023-12-11 16:00:00,18.55631722191808 +2023-12-11 17:00:00,4.152575951546181 +2023-12-11 18:00:00,20.74362375938366 +2023-12-11 19:00:00,21.2806605165132 +2023-12-11 20:00:00,4.5010414689253375 +2023-12-11 21:00:00,27.598966819542223 +2023-12-11 22:00:00,27.704749298188812 +2023-12-11 23:00:00,5.186158289447075 +2023-12-12 00:00:00,24.866815020986667 +2023-12-12 01:00:00,7.608942224948135 +2023-12-12 02:00:00,10.02833834046001 +2023-12-12 03:00:00,5.090485531960752 +2023-12-12 04:00:00,16.736947559746156 +2023-12-12 05:00:00,3.3203941569237507 +2023-12-12 06:00:00,23.629211138237896 +2023-12-12 07:00:00,23.19521870522643 +2023-12-12 08:00:00,27.16894256500042 +2023-12-12 09:00:00,4.254771875527745 +2023-12-12 10:00:00,28.69760775798991 +2023-12-12 11:00:00,11.044775137487502 +2023-12-12 12:00:00,2.553340220583001 +2023-12-12 13:00:00,4.995890112812996 +2023-12-12 14:00:00,6.020235453012077 +2023-12-12 15:00:00,5.669318661602264 +2023-12-12 16:00:00,27.087193255688543 +2023-12-12 17:00:00,27.6519131314804 +2023-12-12 18:00:00,11.58886786628093 +2023-12-12 19:00:00,0.4233545134732774 +2023-12-12 20:00:00,4.849517078343101 +2023-12-12 21:00:00,9.881511321808338 +2023-12-12 22:00:00,11.84164176136361 +2023-12-12 23:00:00,28.408811974394105 +2023-12-13 00:00:00,29.92002914192284 +2023-12-13 01:00:00,14.723607408360722 +2023-12-13 02:00:00,10.089283002337805 +2023-12-13 03:00:00,28.517651947576407 +2023-12-13 04:00:00,8.229259843529846 +2023-12-13 05:00:00,21.199691240449937 +2023-12-13 06:00:00,9.683469114319376 +2023-12-13 07:00:00,22.866865394727323 +2023-12-13 08:00:00,16.388653486086724 +2023-12-13 09:00:00,13.648516043952355 +2023-12-13 10:00:00,13.80388138345183 +2023-12-13 11:00:00,29.1610786022345 +2023-12-13 12:00:00,1.254746282217365 +2023-12-13 13:00:00,16.289191238140333 +2023-12-13 14:00:00,0.9578188559579814 +2023-12-13 15:00:00,3.7214041994154448 +2023-12-13 16:00:00,29.992084671916064 +2023-12-13 17:00:00,1.2782030413318235 +2023-12-13 18:00:00,2.4781719290086035 +2023-12-13 19:00:00,11.039989372547636 +2023-12-13 20:00:00,1.5227349568442528 +2023-12-13 21:00:00,14.184528840965232 +2023-12-13 22:00:00,3.7331836262197218 +2023-12-13 23:00:00,14.14718196153092 +2023-12-14 00:00:00,24.357080763393444 +2023-12-14 01:00:00,0.1871944467513464 +2023-12-14 02:00:00,23.909671148276765 +2023-12-14 03:00:00,10.19083621933493 +2023-12-14 04:00:00,18.90165724047561 +2023-12-14 05:00:00,6.664328842268175 +2023-12-14 06:00:00,7.535443766758063 +2023-12-14 07:00:00,12.935208509808469 +2023-12-14 08:00:00,21.59679260926109 +2023-12-14 09:00:00,6.150208961004382 +2023-12-14 10:00:00,13.537479154900224 +2023-12-14 11:00:00,25.85115738890372 +2023-12-14 12:00:00,18.893354546336564 +2023-12-14 13:00:00,23.146440484177703 +2023-12-14 14:00:00,17.199407661591597 +2023-12-14 15:00:00,19.0067418682844 +2023-12-14 16:00:00,11.181169268053628 +2023-12-14 17:00:00,25.12397963149484 +2023-12-14 18:00:00,13.452197374872464 +2023-12-14 19:00:00,7.367656311317788 +2023-12-14 20:00:00,1.8638434629730103 +2023-12-14 21:00:00,29.282507247158527 +2023-12-14 22:00:00,26.332230252697112 +2023-12-14 23:00:00,14.0002736449705 +2023-12-15 00:00:00,11.975690903837954 +2023-12-15 01:00:00,2.4552154555361483 +2023-12-15 02:00:00,15.270103662278483 +2023-12-15 03:00:00,1.513384394473335 +2023-12-15 04:00:00,4.290199353532362 +2023-12-15 05:00:00,17.113293856307816 +2023-12-15 06:00:00,22.85379550221861 +2023-12-15 07:00:00,13.43770635089668 +2023-12-15 08:00:00,27.24274075273843 +2023-12-15 09:00:00,29.161958294020533 +2023-12-15 10:00:00,28.58780301401005 +2023-12-15 11:00:00,21.920973875948164 +2023-12-15 12:00:00,27.656385840287776 +2023-12-15 13:00:00,0.2626784269670756 +2023-12-15 14:00:00,22.840147094170334 +2023-12-15 15:00:00,14.636828761641665 +2023-12-15 16:00:00,23.039532876854167 +2023-12-15 17:00:00,23.680272282496528 +2023-12-15 18:00:00,3.5187060424090566 +2023-12-15 19:00:00,29.74832331887671 +2023-12-15 20:00:00,15.24975855158287 +2023-12-15 21:00:00,3.5420953798204344 +2023-12-15 22:00:00,18.827675903009105 +2023-12-15 23:00:00,3.61458458044834 +2023-12-16 00:00:00,8.884100651271135 +2023-12-16 01:00:00,8.146658668011344 +2023-12-16 02:00:00,24.268955385481743 +2023-12-16 03:00:00,26.418911457539767 +2023-12-16 04:00:00,3.5005643766601766 +2023-12-16 05:00:00,17.365452834025334 +2023-12-16 06:00:00,27.31733443004482 +2023-12-16 07:00:00,25.995139582439585 +2023-12-16 08:00:00,27.27190551334332 +2023-12-16 09:00:00,5.230051559826595 +2023-12-16 10:00:00,1.5863317897878426 +2023-12-16 11:00:00,28.878167639345023 +2023-12-16 12:00:00,5.859513746299223 +2023-12-16 13:00:00,26.67956741497554 +2023-12-16 14:00:00,3.75745242239553 +2023-12-16 15:00:00,4.878345651973579 +2023-12-16 16:00:00,5.227303865000828 +2023-12-16 17:00:00,18.85636596041027 +2023-12-16 18:00:00,29.782076366992925 +2023-12-16 19:00:00,26.89190922796544 +2023-12-16 20:00:00,1.592714683216142 +2023-12-16 21:00:00,0.5539390559693502 +2023-12-16 22:00:00,19.64971745752353 +2023-12-16 23:00:00,8.30571171857417 +2023-12-17 00:00:00,25.487786360422408 +2023-12-17 01:00:00,4.638035435530079 +2023-12-17 02:00:00,5.620484406881138 +2023-12-17 03:00:00,5.89646139589237 +2023-12-17 04:00:00,17.369194664774213 +2023-12-17 05:00:00,19.705565703642595 +2023-12-17 06:00:00,13.92279600152981 +2023-12-17 07:00:00,4.014004073998413 +2023-12-17 08:00:00,25.365916384392577 +2023-12-17 09:00:00,19.505304766350843 +2023-12-17 10:00:00,7.9385808905385025 +2023-12-17 11:00:00,3.998743252811876 +2023-12-17 12:00:00,14.661623439611056 +2023-12-17 13:00:00,21.927760975673035 +2023-12-17 14:00:00,4.973077461057347 +2023-12-17 15:00:00,10.261647251125472 +2023-12-17 16:00:00,13.570785780770306 +2023-12-17 17:00:00,6.144185654555122 +2023-12-17 18:00:00,9.885214799902204 +2023-12-17 19:00:00,8.285303013079968 +2023-12-17 20:00:00,9.18443375436569 +2023-12-17 21:00:00,10.622212770481912 +2023-12-17 22:00:00,16.7795619448689 +2023-12-17 23:00:00,15.13152994825574 +2023-12-18 00:00:00,24.43076546871281 +2023-12-18 01:00:00,20.86908744511053 +2023-12-18 02:00:00,6.081763253731837 +2023-12-18 03:00:00,26.33685429416559 +2023-12-18 04:00:00,18.976644353933217 +2023-12-18 05:00:00,21.68746924671925 +2023-12-18 06:00:00,27.81740186519616 +2023-12-18 07:00:00,13.58966820877604 +2023-12-18 08:00:00,4.411763244250126 +2023-12-18 09:00:00,29.535845332942618 +2023-12-18 10:00:00,29.74125190573048 +2023-12-18 11:00:00,1.000156320988097 +2023-12-18 12:00:00,15.527880515584435 +2023-12-18 13:00:00,11.069734748476357 +2023-12-18 14:00:00,19.426399842581628 +2023-12-18 15:00:00,8.052570877805485 +2023-12-18 16:00:00,2.4449217136355528 +2023-12-18 17:00:00,4.196162165785914 +2023-12-18 18:00:00,9.942063985737793 +2023-12-18 19:00:00,17.51497815952106 +2023-12-18 20:00:00,21.434851058784 +2023-12-18 21:00:00,24.70457209076442 +2023-12-18 22:00:00,0.6217724179500361 +2023-12-18 23:00:00,25.209602191563604 +2023-12-19 00:00:00,12.081317164947984 +2023-12-19 01:00:00,19.232272326854705 +2023-12-19 02:00:00,5.921718343138856 +2023-12-19 03:00:00,28.4719919070508 +2023-12-19 04:00:00,11.57640419829164 +2023-12-19 05:00:00,7.614276919292608 +2023-12-19 06:00:00,6.131614739997923 +2023-12-19 07:00:00,12.141114983521932 +2023-12-19 08:00:00,7.91451620387432 +2023-12-19 09:00:00,21.628471599951776 +2023-12-19 10:00:00,5.710353457264654 +2023-12-19 11:00:00,8.269114000168194 +2023-12-19 12:00:00,4.25161424377253 +2023-12-19 13:00:00,4.619899074354783 +2023-12-19 14:00:00,27.823744807900862 +2023-12-19 15:00:00,10.662761540671376 +2023-12-19 16:00:00,29.450106296291388 +2023-12-19 17:00:00,22.896578368699288 +2023-12-19 18:00:00,14.193613712263014 +2023-12-19 19:00:00,27.64291236325934 +2023-12-19 20:00:00,26.079186963749173 +2023-12-19 21:00:00,20.92789705689445 +2023-12-19 22:00:00,29.37606769609872 +2023-12-19 23:00:00,27.71141000674841 +2023-12-20 00:00:00,10.42933345098178 +2023-12-20 01:00:00,27.330581394313835 +2023-12-20 02:00:00,24.194405502925235 +2023-12-20 03:00:00,29.586072703731 +2023-12-20 04:00:00,12.03029241973825 +2023-12-20 05:00:00,28.725874009589504 +2023-12-20 06:00:00,6.039948567804548 +2023-12-20 07:00:00,17.837627986602083 +2023-12-20 08:00:00,2.5558913478027057 +2023-12-20 09:00:00,10.39589881679788 +2023-12-20 10:00:00,17.15171213969604 +2023-12-20 11:00:00,20.10745733272847 +2023-12-20 12:00:00,11.542481045459557 +2023-12-20 13:00:00,5.191285244481609 +2023-12-20 14:00:00,26.748791971667192 +2023-12-20 15:00:00,14.683808507992763 +2023-12-20 16:00:00,20.31868063253993 +2023-12-20 17:00:00,20.772476418821007 +2023-12-20 18:00:00,0.3409528873054901 +2023-12-20 19:00:00,4.408257933901458 +2023-12-20 20:00:00,6.923506378648213 +2023-12-20 21:00:00,18.38341668300341 +2023-12-20 22:00:00,4.435130539524921 +2023-12-20 23:00:00,26.444676555111485 +2023-12-21 00:00:00,18.593975572506267 +2023-12-21 01:00:00,21.92625028429478 +2023-12-21 02:00:00,29.8464263037512 +2023-12-21 03:00:00,0.6247588267888793 +2023-12-21 04:00:00,5.07059729356818 +2023-12-21 05:00:00,20.86846234624284 +2023-12-21 06:00:00,28.754763911557603 +2023-12-21 07:00:00,20.361977482718896 +2023-12-21 08:00:00,0.2875962862443859 +2023-12-21 09:00:00,13.653416012616937 +2023-12-21 10:00:00,10.084655326244247 +2023-12-21 11:00:00,23.067362365008616 +2023-12-21 12:00:00,2.678957980130481 +2023-12-21 13:00:00,4.091092391216867 +2023-12-21 14:00:00,4.798924013260607 +2023-12-21 15:00:00,2.783044663424575 +2023-12-21 16:00:00,9.575908749596833 +2023-12-21 17:00:00,3.294305418241628 +2023-12-21 18:00:00,22.415096256767324 +2023-12-21 19:00:00,7.022360733126299 +2023-12-21 20:00:00,14.84161105458158 +2023-12-21 21:00:00,9.39926229712712 +2023-12-21 22:00:00,0.3140531987706374 +2023-12-21 23:00:00,5.63910689296209 +2023-12-22 00:00:00,28.655699513023933 +2023-12-22 01:00:00,28.794843078792752 +2023-12-22 02:00:00,20.640290853127816 +2023-12-22 03:00:00,20.29211724756853 +2023-12-22 04:00:00,13.706960904978075 +2023-12-22 05:00:00,13.376817916493174 +2023-12-22 06:00:00,20.245493691806203 +2023-12-22 07:00:00,7.116680205848656 +2023-12-22 08:00:00,17.17587612215872 +2023-12-22 09:00:00,11.41312613849608 +2023-12-22 10:00:00,16.271458964828234 +2023-12-22 11:00:00,19.352297193251086 +2023-12-22 12:00:00,20.13098123970491 +2023-12-22 13:00:00,19.0311002458484 +2023-12-22 14:00:00,15.768904418198924 +2023-12-22 15:00:00,14.059897502946516 +2023-12-22 16:00:00,16.084655824088493 +2023-12-22 17:00:00,29.315154959489305 +2023-12-22 18:00:00,0.1061893573916317 +2023-12-22 19:00:00,4.941875188970231 +2023-12-22 20:00:00,7.294465601265545 +2023-12-22 21:00:00,17.387984180637503 +2023-12-22 22:00:00,17.393005700416523 +2023-12-22 23:00:00,19.31562860262856 +2023-12-23 00:00:00,21.28972490543845 +2023-12-23 01:00:00,4.605223934904985 +2023-12-23 02:00:00,15.720693486024045 +2023-12-23 03:00:00,10.06534272200083 +2023-12-23 04:00:00,18.67067606203396 +2023-12-23 05:00:00,2.985053687959589 +2023-12-23 06:00:00,4.668432362231379 +2023-12-23 07:00:00,11.29504882927118 +2023-12-23 08:00:00,20.45781953020429 +2023-12-23 09:00:00,15.25427946324583 +2023-12-23 10:00:00,12.74872647401941 +2023-12-23 11:00:00,29.26009462919202 +2023-12-23 12:00:00,3.093868167529129 +2023-12-23 13:00:00,20.455557089962262 +2023-12-23 14:00:00,2.0095657619815688 +2023-12-23 15:00:00,9.788176477449896 +2023-12-23 16:00:00,21.95901681154123 +2023-12-23 17:00:00,6.898654534076755 +2023-12-23 18:00:00,5.841748198726807 +2023-12-23 19:00:00,17.506304954831997 +2023-12-23 20:00:00,21.811767663704707 +2023-12-23 21:00:00,16.05882765911005 +2023-12-23 22:00:00,22.909568807248046 +2023-12-23 23:00:00,27.50236692320185 +2023-12-24 00:00:00,2.3879286134851743 +2023-12-24 01:00:00,16.250583926651238 +2023-12-24 02:00:00,23.90235636362773 +2023-12-24 03:00:00,13.309572905066045 +2023-12-24 04:00:00,8.54315552952575 +2023-12-24 05:00:00,3.355869188359224 +2023-12-24 06:00:00,14.742761299959998 +2023-12-24 07:00:00,17.42113406689626 +2023-12-24 08:00:00,22.9131073404928 +2023-12-24 09:00:00,0.8015471322737122 +2023-12-24 10:00:00,5.857755303271305 +2023-12-24 11:00:00,20.35855244486672 +2023-12-24 12:00:00,11.390906354733623 +2023-12-24 13:00:00,7.893096458615868 +2023-12-24 14:00:00,26.788363034790684 +2023-12-24 15:00:00,19.107134769293506 +2023-12-24 16:00:00,10.312941940500046 +2023-12-24 17:00:00,23.09766203361275 +2023-12-24 18:00:00,28.566077424986677 +2023-12-24 19:00:00,2.7800134397275142 +2023-12-24 20:00:00,14.328270461487309 +2023-12-24 21:00:00,28.17628421050493 +2023-12-24 22:00:00,7.427034364434819 +2023-12-24 23:00:00,8.159297493109374 +2023-12-25 00:00:00,21.373367124412688 +2023-12-25 01:00:00,10.01222374711034 +2023-12-25 02:00:00,21.189552991086305 +2023-12-25 03:00:00,7.756645257688386 +2023-12-25 04:00:00,22.07537562329483 +2023-12-25 05:00:00,6.196698161699073 +2023-12-25 06:00:00,15.306332191834546 +2023-12-25 07:00:00,19.820804320943907 +2023-12-25 08:00:00,17.466402992594052 +2023-12-25 09:00:00,9.532733984103633 +2023-12-25 10:00:00,16.14739171613074 +2023-12-25 11:00:00,0.6462993729582389 +2023-12-25 12:00:00,19.721117488805607 +2023-12-25 13:00:00,27.26732264757972 +2023-12-25 14:00:00,1.062187929892534 +2023-12-25 15:00:00,10.83024927250093 +2023-12-25 16:00:00,25.28694016942204 +2023-12-25 17:00:00,28.41361123952729 +2023-12-25 18:00:00,24.06827226146187 +2023-12-25 19:00:00,27.72157905691052 +2023-12-25 20:00:00,7.042980481606026 +2023-12-25 21:00:00,3.742613211459368 +2023-12-25 22:00:00,12.685304921244551 +2023-12-25 23:00:00,24.13145192601104 +2023-12-26 00:00:00,12.33810211264043 +2023-12-26 01:00:00,1.2693032754438085 +2023-12-26 02:00:00,2.3727538983107177 +2023-12-26 03:00:00,11.5530493408588 +2023-12-26 04:00:00,25.32946699830889 +2023-12-26 05:00:00,27.190294201941644 +2023-12-26 06:00:00,25.9026804846241 +2023-12-26 07:00:00,20.936302259449874 +2023-12-26 08:00:00,18.16557078980401 +2023-12-26 09:00:00,8.468192085721283 +2023-12-26 10:00:00,8.606941164650642 +2023-12-26 11:00:00,5.993515725397184 +2023-12-26 12:00:00,16.971080526889892 +2023-12-26 13:00:00,4.619819820717167 +2023-12-26 14:00:00,15.279681710027148 +2023-12-26 15:00:00,27.730340821875807 +2023-12-26 16:00:00,18.266808540434678 +2023-12-26 17:00:00,3.8135988325289913 +2023-12-26 18:00:00,15.559607558302346 +2023-12-26 19:00:00,26.21315388128228 +2023-12-26 20:00:00,12.924087056707892 +2023-12-26 21:00:00,21.43013515290584 +2023-12-26 22:00:00,15.299349753079632 +2023-12-26 23:00:00,21.060515900024647 +2023-12-27 00:00:00,3.990904894582349 +2023-12-27 01:00:00,4.841457646359142 +2023-12-27 02:00:00,7.720154497359651 +2023-12-27 03:00:00,11.386293881378464 +2023-12-27 04:00:00,28.697847111167462 +2023-12-27 05:00:00,28.70765784210193 +2023-12-27 06:00:00,17.714662971927886 +2023-12-27 07:00:00,11.377253355604086 +2023-12-27 08:00:00,3.615536548784757 +2023-12-27 09:00:00,2.877120827732076 +2023-12-27 10:00:00,23.30155448894383 +2023-12-27 11:00:00,9.573671353426592 +2023-12-27 12:00:00,1.80417133291126 +2023-12-27 13:00:00,23.492840836139838 +2023-12-27 14:00:00,7.933805565323073 +2023-12-27 15:00:00,9.225972055544556 +2023-12-27 16:00:00,5.320895124753953 +2023-12-27 17:00:00,15.823217410173614 +2023-12-27 18:00:00,5.055007334590541 +2023-12-27 19:00:00,11.592678413333422 +2023-12-27 20:00:00,19.271259801065668 +2023-12-27 21:00:00,6.229559882435956 +2023-12-27 22:00:00,21.823078422136263 +2023-12-27 23:00:00,18.095387992492537 +2023-12-28 00:00:00,24.121515689298118 +2023-12-28 01:00:00,21.074806119973704 +2023-12-28 02:00:00,11.61317561505267 +2023-12-28 03:00:00,20.979540824262983 +2023-12-28 04:00:00,29.254773736849987 +2023-12-28 05:00:00,9.483106136234174 +2023-12-28 06:00:00,3.4560925289708413 +2023-12-28 07:00:00,18.12484253411396 +2023-12-28 08:00:00,18.72646328407438 +2023-12-28 09:00:00,21.89798836055402 +2023-12-28 10:00:00,5.537978896603892 +2023-12-28 11:00:00,3.3751980036866147 +2023-12-28 12:00:00,4.467831580739783 +2023-12-28 13:00:00,3.586868924437004 +2023-12-28 14:00:00,20.11442906645075 +2023-12-28 15:00:00,21.668203941176422 +2023-12-28 16:00:00,6.970606936927811 +2023-12-28 17:00:00,9.68215702511172 +2023-12-28 18:00:00,17.242934913385774 +2023-12-28 19:00:00,4.802687790922543 +2023-12-28 20:00:00,4.566063924425583 +2023-12-28 21:00:00,21.91952535822781 +2023-12-28 22:00:00,25.260922970019383 +2023-12-28 23:00:00,10.85503616225081 +2023-12-29 00:00:00,26.7527840751494 +2023-12-29 01:00:00,15.308461035252238 +2023-12-29 02:00:00,6.090541179621751 +2023-12-29 03:00:00,18.70052376851277 +2023-12-29 04:00:00,5.257022892418365 +2023-12-29 05:00:00,22.862877573488884 +2023-12-29 06:00:00,11.937614320759687 +2023-12-29 07:00:00,20.46346968589916 +2023-12-29 08:00:00,5.257715121981046 +2023-12-29 09:00:00,13.921007932898528 +2023-12-29 10:00:00,17.445944000924154 +2023-12-29 11:00:00,0.9184848964249016 +2023-12-29 12:00:00,9.154117985757988 +2023-12-29 13:00:00,20.503095958061653 +2023-12-29 14:00:00,27.04234473832365 +2023-12-29 15:00:00,10.072878369699684 +2023-12-29 16:00:00,22.6531601455685 +2023-12-29 17:00:00,22.27687812646397 +2023-12-29 18:00:00,17.225471836497334 +2023-12-29 19:00:00,20.54995053180229 +2023-12-29 20:00:00,15.861546104174304 +2023-12-29 21:00:00,19.33156280340756 +2023-12-29 22:00:00,0.5477425852555962 +2023-12-29 23:00:00,9.67431641948312 +2023-12-30 00:00:00,0.7192463698425178 +2023-12-30 01:00:00,28.91361288171124 +2023-12-30 02:00:00,5.8895059229117885 +2023-12-30 03:00:00,25.50104540542269 +2023-12-30 04:00:00,13.056610344939893 +2023-12-30 05:00:00,6.869144685503152 +2023-12-30 06:00:00,24.226618646638748 +2023-12-30 07:00:00,10.572940457899158 +2023-12-30 08:00:00,28.93863153477092 +2023-12-30 09:00:00,11.02633526916551 +2023-12-30 10:00:00,9.35996576887636 +2023-12-30 11:00:00,25.522565480342745 +2023-12-30 12:00:00,25.245136394568934 +2023-12-30 13:00:00,2.9281656331224912 +2023-12-30 14:00:00,9.930113232402244 +2023-12-30 15:00:00,13.439153535969544 +2023-12-30 16:00:00,24.86741057262136 +2023-12-30 17:00:00,7.580706198662459 +2023-12-30 18:00:00,29.420517729345317 +2023-12-30 19:00:00,1.5442587472314606 +2023-12-30 20:00:00,0.0402174003005939 +2023-12-30 21:00:00,21.825578539272865 +2023-12-30 22:00:00,13.707589014800153 +2023-12-30 23:00:00,1.6015620798282149 +2023-12-31 00:00:00,7.693431293693055 +2023-12-31 01:00:00,27.20079314798479 +2023-12-31 02:00:00,12.043475443755074 +2023-12-31 03:00:00,14.461732196321195 +2023-12-31 04:00:00,2.573051983386928 +2023-12-31 05:00:00,12.688488473898891 +2023-12-31 06:00:00,22.57927519802904 +2023-12-31 07:00:00,6.7265600692116365 +2023-12-31 08:00:00,10.397137492726255 +2023-12-31 09:00:00,25.95930966311534 +2023-12-31 10:00:00,8.778196860824451 +2023-12-31 11:00:00,26.97338363592992 +2023-12-31 12:00:00,25.11104052955816 +2023-12-31 13:00:00,15.152450492633005 +2023-12-31 14:00:00,15.77179408627548 +2023-12-31 15:00:00,25.45735947819876 +2023-12-31 16:00:00,27.31253601311495 +2023-12-31 17:00:00,16.818775489027285 +2023-12-31 18:00:00,22.927546938913647 +2023-12-31 19:00:00,19.324641553642746 +2023-12-31 20:00:00,14.503989564519696 +2023-12-31 21:00:00,21.058564352441323 +2023-12-31 22:00:00,8.974262390360574 +2023-12-31 23:00:00,10.552427692635623 diff --git a/Python_Engine/Python/tests/test_plot.py b/Python_Engine/Python/tests/test_plot.py new file mode 100644 index 0000000..3544bc6 --- /dev/null +++ b/Python_Engine/Python/tests/test_plot.py @@ -0,0 +1,163 @@ +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd +import pytest +from python_toolkit.plot.diurnal import diurnal, stacked_diurnals +from python_toolkit.plot.heatmap import heatmap +from python_toolkit.plot.spatial_heatmap import spatial_heatmap +from python_toolkit.plot.utilities import ( + colormap_sequential, + contrasting_colour, + create_triangulation, + lighten_color, + relative_luminance +) +from matplotlib.figure import Figure + +from pathlib import Path +from . import TIMESERIES_COLLECTION + +def test_create_triangulation(): + """_""" + # Test with valid input + x, y = np.meshgrid(range(10), range(10)) + triang = create_triangulation(x.flatten(), y.flatten()) + assert len(triang.triangles) == 162 + + # Test with invalid input + x = [0, 1, 2, 3, 4, 5] + y = [0, 1, 2, 3, 4] + with pytest.raises(ValueError): + create_triangulation(x, y) + + # Test with alpha value that is too small + x, y = np.meshgrid(range(0, 100, 10), range(0, 100, 10)) + with pytest.raises(ValueError): + create_triangulation(x, y, alpha=0.00001) + +def test_relative_luminance(): + """_""" + assert relative_luminance("#FFFFFF") == pytest.approx(1.0, rel=1e-7) + assert relative_luminance("#000000") == pytest.approx(0.0, rel=1e-7) + assert relative_luminance("#808080") == pytest.approx(0.215860500965604, rel=1e-7) + + +def test_contrasting_color(): + """_""" + assert contrasting_colour("#FFFFFF") == ".15" + assert contrasting_colour("#000000") == "w" + assert contrasting_colour("#808080") == "w" + + +def test_lighten_color(): + """_""" + # Test lightening a named color + assert lighten_color("g", 0.3) == ( + 0.5500000000000002, + 0.9999999999999999, + 0.5500000000000002, + ) + + # Test lightening a hex color + assert lighten_color("#F034A3", 0.6) == ( + 0.9647058823529411, + 0.5223529411764707, + 0.783529411764706, + ) + + # Test lightening an RGB color + assert lighten_color((0.3, 0.55, 0.1), 0.5) == ( + 0.6365384615384615, + 0.8961538461538462, + 0.42884615384615377, + ) + + # Test lightening a color by 0 + assert lighten_color("g", 0) == (1.0, 1.0, 1.0) + + # Test lightening a color by 1 + assert lighten_color("g", 1) == (0.0, 0.5, 0.0) + + +def test_colormap_sequential(): + """_""" + assert sum(colormap_sequential("red", "green", "blue")(0.25)) == pytest.approx(1.750003844675125, rel=0.01) + +def test_spatial_heatmap(): + """_""" + x = np.linspace(0, 100, 101) + y = np.linspace(0, 100, 101) + xx, yy = np.meshgrid(x, y) + zz = (np.sin(xx) * np.cos(yy)).flatten() + tri = create_triangulation(xx.flatten(), yy.flatten()) + assert isinstance(spatial_heatmap([tri], [zz], contours=[0]), plt.Figure) + plt.close("all") + +#TODO: use a preset collection, or generate one from a year and random values +def test_timeseries_diurnal(): + """_""" + assert isinstance(diurnal(TIMESERIES_COLLECTION), plt.Axes) + assert isinstance( + diurnal(TIMESERIES_COLLECTION, period="daily"), + plt.Axes, + ) + assert isinstance( + diurnal(TIMESERIES_COLLECTION, period="weekly"), + plt.Axes, + ) + assert isinstance( + diurnal(TIMESERIES_COLLECTION, period="monthly"), + plt.Axes, + ) + with pytest.raises(ValueError): + diurnal(TIMESERIES_COLLECTION, period="decadely") + diurnal( + TIMESERIES_COLLECTION.reset_index(drop=True), + period="monthly", + ) + diurnal( + TIMESERIES_COLLECTION, + period="monthly", + minmax_range=[0.95, 0.05], + ) + diurnal( + TIMESERIES_COLLECTION, + period="monthly", + quantile_range=[0.95, 0.05], + ) + plt.close("all") + + assert isinstance( + stacked_diurnals( + datasets=[ + TIMESERIES_COLLECTION, + TIMESERIES_COLLECTION, + ] + ), + plt.Figure, + ) + +def test_heatmap(): + """_""" + assert isinstance(heatmap(TIMESERIES_COLLECTION), plt.Axes) + plt.close("all") + + mask = np.random.random(8760) > 0.5 + assert isinstance(heatmap(TIMESERIES_COLLECTION, mask=mask), plt.Axes) + plt.close("all") + + mask_bad = np.random.random(10) > 0.5 + with pytest.raises(ValueError): + heatmap(TIMESERIES_COLLECTION, mask=mask_bad) + plt.close("all") + + assert isinstance( + heatmap( + pd.Series( + np.random.random(21000), + index=pd.date_range("2000-01-01", periods=21000, freq="h"), + ) + ), + plt.Axes, + ) + plt.close("all") \ No newline at end of file diff --git a/Python_Engine/Python_Engine.csproj b/Python_Engine/Python_Engine.csproj index cd6376a..55dd242 100644 --- a/Python_Engine/Python_Engine.csproj +++ b/Python_Engine/Python_Engine.csproj @@ -2,13 +2,13 @@ netstandard2.0 - 7.0.0.0 + 8.0.0.0 https://github.com/BHoM/Python_Toolkit 6.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Python - 7.3.0.0 + 8.0.0.0 ..\Build\ diff --git a/Python_Engine/Query/Directory.cs b/Python_Engine/Query/Directory.cs index f9d5ed9..d38e769 100644 --- a/Python_Engine/Query/Directory.cs +++ b/Python_Engine/Query/Directory.cs @@ -21,7 +21,7 @@ */ using BH.oM.Base.Attributes; - +using BH.oM.Python.Enums; using System.ComponentModel; using System.IO; @@ -30,14 +30,14 @@ namespace BH.Engine.Python public static partial class Query { [Description("The location where BHoM extensions reside.")] - [Output("The location where BHoM extensions reside.")] + [Output("path", "The location where BHoM extensions reside.")] public static string DirectoryExtensions() { return Path.Combine(System.IO.Directory.GetParent(BH.Engine.Base.Query.BHoMFolder()).FullName, "Extensions"); } [Description("The location where any BHoM-related Python kernels reside.")] - [Output("The location where any BHoM-related Python kernels reside.")] + [Output("path", "The location where any BHoM-related Python kernels reside.")] public static string DirectoryKernels() { @@ -48,7 +48,7 @@ public static string DirectoryKernels() } [Description("The location where any BHoM-related Python code resides.")] - [Output("The location where any BHoM-related Python code resides.")] + [Output("path", "The location where any BHoM-related Python code resides.")] public static string DirectoryCode() { string dir = Path.Combine(Query.DirectoryExtensions(), "PythonCode"); @@ -58,7 +58,7 @@ public static string DirectoryCode() } [Description("The location where any BHoM-related Python environment (or virtualenv) resides.")] - [Output("The location where any BHoM-related Python environment (or virtualenv) resides.")] + [Output("path", "The location where any BHoM-related Python environment (or virtualenv) resides.")] public static string DirectoryEnvironments() { string dir = Path.Combine(Query.DirectoryExtensions(), "PythonEnvironments"); @@ -67,11 +67,13 @@ public static string DirectoryEnvironments() return dir; } + [PreviousVersion("8.0", "BH.Engine.Python.Query.DirectoryBaseEnvironment()")] [Description("The location where the base Python environment exists.")] - [Output("The location where the base Python environment exists.")] - public static string DirectoryBaseEnvironment() + [Input("version", "The python version to get the base environment for.")] + [Output("path", "The location where the base Python environment exists.")] + public static string DirectoryBaseEnvironment(this PythonVersion version) { - return Path.Combine(Query.DirectoryEnvironments(), Query.ToolkitName()); + return Path.Combine(Query.DirectoryEnvironments(), Query.ToolkitName(), version.ToString()); } } } diff --git a/Python_Engine/Query/EmbeddableURL.cs b/Python_Engine/Query/EmbeddableURL.cs index 33d2333..72dd0fe 100644 --- a/Python_Engine/Query/EmbeddableURL.cs +++ b/Python_Engine/Query/EmbeddableURL.cs @@ -34,54 +34,55 @@ public static partial class Query [Output("url", "The url for the matching Python version.")] public static string EmbeddableURL(this PythonVersion version) { + // See the PythonVersion enum for why most of these are commented out. Dictionary versions = new Dictionary() { - //{ PythonVersion.v3_7_2, "https://www.python.org/ftp/python/3.7.2/python-3.7.2rc1-embed-amd64.zip" }, - { PythonVersion.v3_7_3, "https://www.python.org/ftp/python/3.7.3/python-3.7.3rc1-embed-amd64.zip" }, - { PythonVersion.v3_7_4, "https://www.python.org/ftp/python/3.7.4/python-3.7.4rc2-embed-amd64.zip" }, - { PythonVersion.v3_7_5, "https://www.python.org/ftp/python/3.7.5/python-3.7.5rc1-embed-amd64.zip" }, - { PythonVersion.v3_7_6, "https://www.python.org/ftp/python/3.7.6/python-3.7.6rc1-embed-amd64.zip" }, - { PythonVersion.v3_7_7, "https://www.python.org/ftp/python/3.7.7/python-3.7.7rc1-embed-amd64.zip" }, - { PythonVersion.v3_7_8, "https://www.python.org/ftp/python/3.7.8/python-3.7.8rc1-embed-amd64.zip" }, - { PythonVersion.v3_7_9, "https://www.python.org/ftp/python/3.7.9/python-3.7.9-embed-amd64.zip" }, - { PythonVersion.v3_8_0, "https://www.python.org/ftp/python/3.8.0/python-3.8.0rc1-embed-amd64.zip" }, - { PythonVersion.v3_8_1, "https://www.python.org/ftp/python/3.8.1/python-3.8.1rc1-embed-amd64.zip" }, - { PythonVersion.v3_8_2, "https://www.python.org/ftp/python/3.8.2/python-3.8.2rc2-embed-amd64.zip" }, - { PythonVersion.v3_8_3, "https://www.python.org/ftp/python/3.8.3/python-3.8.3rc1-embed-amd64.zip" }, - { PythonVersion.v3_8_4, "https://www.python.org/ftp/python/3.8.4/python-3.8.4rc1-embed-amd64.zip" }, - { PythonVersion.v3_8_5, "https://www.python.org/ftp/python/3.8.5/python-3.8.5-embed-amd64.zip" }, - { PythonVersion.v3_8_6, "https://www.python.org/ftp/python/3.8.6/python-3.8.6rc1-embed-amd64.zip" }, - { PythonVersion.v3_8_7, "https://www.python.org/ftp/python/3.8.7/python-3.8.7rc1-embed-amd64.zip" }, - { PythonVersion.v3_8_8, "https://www.python.org/ftp/python/3.8.8/python-3.8.8rc1-embed-amd64.zip" }, - { PythonVersion.v3_8_9, "https://www.python.org/ftp/python/3.8.9/python-3.8.9-embed-amd64.zip" }, - { PythonVersion.v3_9_0, "https://www.python.org/ftp/python/3.9.0/python-3.9.0rc2-embed-amd64.zip" }, - { PythonVersion.v3_9_1, "https://www.python.org/ftp/python/3.9.1/python-3.9.1rc1-embed-amd64.zip" }, - { PythonVersion.v3_9_2, "https://www.python.org/ftp/python/3.9.2/python-3.9.2rc1-embed-amd64.zip" }, - { PythonVersion.v3_9_3, "https://www.python.org/ftp/python/3.9.3/python-3.9.3-embed-amd64.zip" }, - { PythonVersion.v3_9_4, "https://www.python.org/ftp/python/3.9.4/python-3.9.4-embed-amd64.zip" }, - { PythonVersion.v3_9_5, "https://www.python.org/ftp/python/3.9.5/python-3.9.5-embed-amd64.zip" }, - { PythonVersion.v3_9_6, "https://www.python.org/ftp/python/3.9.6/python-3.9.6-embed-amd64.zip" }, - { PythonVersion.v3_9_7, "https://www.python.org/ftp/python/3.9.7/python-3.9.7-embed-amd64.zip" }, - { PythonVersion.v3_9_8, "https://www.python.org/ftp/python/3.9.8/python-3.9.8-embed-amd64.zip" }, - { PythonVersion.v3_9_9, "https://www.python.org/ftp/python/3.9.9/python-3.9.9-embed-amd64.zip" }, - { PythonVersion.v3_9_10, "https://www.python.org/ftp/python/3.9.10/python-3.9.10-embed-amd64.zip" }, - { PythonVersion.v3_10_0, "https://www.python.org/ftp/python/3.10.0/python-3.10.0rc2-embed-amd64.zip" }, - { PythonVersion.v3_10_1, "https://www.python.org/ftp/python/3.10.1/python-3.10.1-embed-amd64.zip" }, - { PythonVersion.v3_10_2, "https://www.python.org/ftp/python/3.10.2/python-3.10.2-embed-amd64.zip" }, - { PythonVersion.v3_10_3, "https://www.python.org/ftp/python/3.10.3/python-3.10.3-embed-amd64.zip" }, - { PythonVersion.v3_10_4, "https://www.python.org/ftp/python/3.10.4/python-3.10.4-embed-amd64.zip" }, - { PythonVersion.v3_10_5, "https://www.python.org/ftp/python/3.10.5/python-3.10.5-embed-amd64.zip" }, - { PythonVersion.v3_10_6, "https://www.python.org/ftp/python/3.10.6/python-3.10.6-embed-amd64.zip" }, - { PythonVersion.v3_10_7, "https://www.python.org/ftp/python/3.10.7/python-3.10.7-embed-amd64.zip" }, - { PythonVersion.v3_10_8, "https://www.python.org/ftp/python/3.10.8/python-3.10.8-embed-amd64.zip" }, - { PythonVersion.v3_10_9, "https://www.python.org/ftp/python/3.10.9/python-3.10.9-embed-amd64.zip" }, - { PythonVersion.v3_10_10, "https://www.python.org/ftp/python/3.10.10/python-3.10.10-embed-amd64.zip" }, - { PythonVersion.v3_10_11, "https://www.python.org/ftp/python/3.10.11/python-3.10.11-embed-amd64.zip" }, - { PythonVersion.v3_11_0, "https://www.python.org/ftp/python/3.11.0/python-3.11.0rc2-embed-amd64.zip" }, - { PythonVersion.v3_11_1, "https://www.python.org/ftp/python/3.11.1/python-3.11.1-embed-amd64.zip" }, - { PythonVersion.v3_11_2, "https://www.python.org/ftp/python/3.11.2/python-3.11.2-embed-amd64.zip" }, - { PythonVersion.v3_11_3, "https://www.python.org/ftp/python/3.11.3/python-3.11.3-embed-amd64.zip" }, - { PythonVersion.v3_11_4, "https://www.python.org/ftp/python/3.11.4/python-3.11.4-embed-amd64.zip" }, + //{ PythonVersion.v3_7_2, "https://www.python.org/ftp/python/3.7.2/python-3.7.2rc1-amd64.exe" }, + /*{ PythonVersion.v3_7_3, "https://www.python.org/ftp/python/3.7.3/python-3.7.3rc1-amd64.exe" }, + { PythonVersion.v3_7_4, "https://www.python.org/ftp/python/3.7.4/python-3.7.4rc2-amd64.exe" }, + { PythonVersion.v3_7_5, "https://www.python.org/ftp/python/3.7.5/python-3.7.5rc1-amd64.exe" }, + { PythonVersion.v3_7_6, "https://www.python.org/ftp/python/3.7.6/python-3.7.6rc1-amd64.exe" }, + { PythonVersion.v3_7_7, "https://www.python.org/ftp/python/3.7.7/python-3.7.7rc1-amd64.exe" }, + { PythonVersion.v3_7_8, "https://www.python.org/ftp/python/3.7.8/python-3.7.8rc1-amd64.exe" },*/ + { PythonVersion.v3_7, "https://www.python.org/ftp/python/3.7.9/python-3.7.9-amd64.exe" }, + /*{ PythonVersion.v3_8_0, "https://www.python.org/ftp/python/3.8.0/python-3.8.0rc1-amd64.exe" }, + { PythonVersion.v3_8_1, "https://www.python.org/ftp/python/3.8.1/python-3.8.1rc1-amd64.exe" }, + { PythonVersion.v3_8_2, "https://www.python.org/ftp/python/3.8.2/python-3.8.2rc2-amd64.exe" }, + { PythonVersion.v3_8_3, "https://www.python.org/ftp/python/3.8.3/python-3.8.3rc1-amd64.exe" }, + { PythonVersion.v3_8_4, "https://www.python.org/ftp/python/3.8.4/python-3.8.4rc1-amd64.exe" }, + { PythonVersion.v3_8_5, "https://www.python.org/ftp/python/3.8.5/python-3.8.5-amd64.exe" }, + { PythonVersion.v3_8_6, "https://www.python.org/ftp/python/3.8.6/python-3.8.6rc1-amd64.exe" }, + { PythonVersion.v3_8_7, "https://www.python.org/ftp/python/3.8.7/python-3.8.7rc1-amd64.exe" }, + { PythonVersion.v3_8_8, "https://www.python.org/ftp/python/3.8.8/python-3.8.8rc1-amd64.exe" },*/ + { PythonVersion.v3_8, "https://www.python.org/ftp/python/3.8.9/python-3.8.9-amd64.exe" }, + /*{ PythonVersion.v3_9_0, "https://www.python.org/ftp/python/3.9.0/python-3.9.0rc2-amd64.exe" }, + { PythonVersion.v3_9_1, "https://www.python.org/ftp/python/3.9.1/python-3.9.1rc1-amd64.exe" }, + { PythonVersion.v3_9_2, "https://www.python.org/ftp/python/3.9.2/python-3.9.2rc1-amd64.exe" }, + { PythonVersion.v3_9_3, "https://www.python.org/ftp/python/3.9.3/python-3.9.3-amd64.exe" }, + { PythonVersion.v3_9_4, "https://www.python.org/ftp/python/3.9.4/python-3.9.4-amd64.exe" }, + { PythonVersion.v3_9_5, "https://www.python.org/ftp/python/3.9.5/python-3.9.5-amd64.exe" }, + { PythonVersion.v3_9_6, "https://www.python.org/ftp/python/3.9.6/python-3.9.6-amd64.exe" }, + { PythonVersion.v3_9_7, "https://www.python.org/ftp/python/3.9.7/python-3.9.7-amd64.exe" }, + { PythonVersion.v3_9_8, "https://www.python.org/ftp/python/3.9.8/python-3.9.8-amd64.exe" }, + { PythonVersion.v3_9_9, "https://www.python.org/ftp/python/3.9.9/python-3.9.9-amd64.exe" },*/ + { PythonVersion.v3_9, "https://www.python.org/ftp/python/3.9.10/python-3.9.10-amd64.exe" }, + /*{ PythonVersion.v3_10_0, "https://www.python.org/ftp/python/3.10.0/python-3.10.0rc2-amd64.exe" }, + { PythonVersion.v3_10_1, "https://www.python.org/ftp/python/3.10.1/python-3.10.1-amd64.exe" }, + { PythonVersion.v3_10_2, "https://www.python.org/ftp/python/3.10.2/python-3.10.2-amd64.exe" }, + { PythonVersion.v3_10_3, "https://www.python.org/ftp/python/3.10.3/python-3.10.3-amd64.exe" }, + { PythonVersion.v3_10_4, "https://www.python.org/ftp/python/3.10.4/python-3.10.4-amd64.exe" }, + { PythonVersion.v3_10_5, "https://www.python.org/ftp/python/3.10.5/python-3.10.5-amd64.exe" }, + { PythonVersion.v3_10_6, "https://www.python.org/ftp/python/3.10.6/python-3.10.6-amd64.exe" }, + { PythonVersion.v3_10_7, "https://www.python.org/ftp/python/3.10.7/python-3.10.7-amd64.exe" }, + { PythonVersion.v3_10_8, "https://www.python.org/ftp/python/3.10.8/python-3.10.8-amd64.exe" }, + { PythonVersion.v3_10_9, "https://www.python.org/ftp/python/3.10.9/python-3.10.9-amd64.exe" }, + { PythonVersion.v3_10_10, "https://www.python.org/ftp/python/3.10.10/python-3.10.10-amd64.exe" },*/ + { PythonVersion.v3_10, "https://www.python.org/ftp/python/3.10.11/python-3.10.11-amd64.exe" }, + /*{ PythonVersion.v3_11_0, "https://www.python.org/ftp/python/3.11.0/python-3.11.0rc2-amd64.exe" }, + { PythonVersion.v3_11_1, "https://www.python.org/ftp/python/3.11.1/python-3.11.1-amd64.exe" }, + { PythonVersion.v3_11_2, "https://www.python.org/ftp/python/3.11.2/python-3.11.2-amd64.exe" }, + { PythonVersion.v3_11_3, "https://www.python.org/ftp/python/3.11.3/python-3.11.3-amd64.exe" },*/ + { PythonVersion.v3_11, "https://www.python.org/ftp/python/3.11.4/python-3.11.4-amd64.exe" }, }; return versions[version]; diff --git a/Python_Engine/Query/ToolkitName.cs b/Python_Engine/Query/ToolkitName.cs index db48ddc..63daee9 100644 --- a/Python_Engine/Query/ToolkitName.cs +++ b/Python_Engine/Query/ToolkitName.cs @@ -29,7 +29,7 @@ namespace BH.Engine.Python public static partial class Query { [Description("The name of this toolkit.")] - [Output("The name of this toolkit.")] + [Output("name", "The name of this toolkit.")] public static string ToolkitName() { return "Python_Toolkit"; diff --git a/Python_Engine/Query/Version.cs b/Python_Engine/Query/Version.cs index 1b3bb28..470a654 100644 --- a/Python_Engine/Query/Version.cs +++ b/Python_Engine/Query/Version.cs @@ -23,9 +23,11 @@ using BH.oM.Base.Attributes; using BH.oM.Python.Enums; using System; +using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.IO; +using System.Linq; namespace BH.Engine.Python { @@ -68,7 +70,11 @@ public static PythonVersion Version(string pythonExecutable) } } - return (PythonVersion)Enum.Parse(typeof(PythonVersion), "v" + versionString.Replace("Python ", "").Replace(".", "_")); + List strings = versionString.Replace("Python ", "").Replace(".", "_").Split('_').ToList(); + strings.RemoveAt(strings.Count - 1); + string enumParseable = "v" + strings.Aggregate((a, b) => $"{a}_{b}"); + + return (PythonVersion)Enum.Parse(typeof(PythonVersion), enumParseable); } catch { diff --git a/Python_Engine/Versioning_80.json b/Python_Engine/Versioning_80.json new file mode 100644 index 0000000..5b66a73 --- /dev/null +++ b/Python_Engine/Versioning_80.json @@ -0,0 +1,5 @@ +{ + "MessageForDeleted": { + "BH.Engine.Python.Compute.DownloadGetPip(System.String)": "The DownloadGetPip method was removed due to an update to how base python environments are installed, and the functionality within this method is now covered by BasePythonEnvironment." + } +} \ No newline at end of file diff --git a/Python_oM/Enums/PythonVersion.cs b/Python_oM/Enums/PythonVersion.cs index 1b078e9..6ee7881 100644 --- a/Python_oM/Enums/PythonVersion.cs +++ b/Python_oM/Enums/PythonVersion.cs @@ -24,16 +24,17 @@ namespace BH.oM.Python.Enums { + // There are multiple specific versions here that are commented out - When installing, only one specific version (e.g 3.10.x) per minor python version (e.g 3.x) can be installed, and changes between specific versions are usually bug fixes and not breaking. however the specific versions are kept commented for posterity. public enum PythonVersion { [Description("Undefined")] Undefined, - [Description("3.7.0")] + /*[Description("3.7.0")] v3_7_0, [Description("3.7.1")] v3_7_1, - //[Description("3.7.2")] - //v3_7_2, + [Description("3.7.2")] + v3_7_2, [Description("3.7.3")] v3_7_3, [Description("3.7.4")] @@ -45,10 +46,10 @@ public enum PythonVersion [Description("3.7.7")] v3_7_7, [Description("3.7.8")] - v3_7_8, - [Description("3.7.9")] - v3_7_9, - [Description("3.8.0")] + v3_7_8,*/ + [Description("3.7")] //3.7.9 + v3_7, + /*[Description("3.8.0")] v3_8_0, [Description("3.8.1")] v3_8_1, @@ -65,12 +66,12 @@ public enum PythonVersion [Description("3.8.7")] v3_8_7, [Description("3.8.8")] - v3_8_8, - [Description("3.8.9")] - v3_8_9, - [Description("3.8.10")] - v3_8_10, - [Description("3.9.0")] + v3_8_8,*/ + [Description("3.8")] //3.8.9 + v3_8, + //[Description("3.8.10")] + //v3_8_10, + /*[Description("3.9.0")] v3_9_0, [Description("3.9.1")] v3_9_1, @@ -89,10 +90,10 @@ public enum PythonVersion [Description("3.9.8")] v3_9_8, [Description("3.9.9")] - v3_9_9, - [Description("3.9.10")] - v3_9_10, - [Description("3.10.0")] + v3_9_9,*/ + [Description("3.9")] //3.9.10 + v3_9, + /*[Description("3.10.0")] v3_10_0, [Description("3.10.1")] v3_10_1, @@ -113,19 +114,19 @@ public enum PythonVersion [Description("3.10.9")] v3_10_9, [Description("3.10.10")] - v3_10_10, - [Description("3.10.11")] - v3_10_11, - [Description("3.11.0")] + v3_10_10,*/ + [Description("3.10")] //3.10.11 + v3_10, + /*[Description("3.11.0")] v3_11_0, [Description("3.11.1")] v3_11_1, [Description("3.11.2")] v3_11_2, [Description("3.11.3")] - v3_11_3, - [Description("3.11.4")] - v3_11_4, + v3_11_3,*/ + [Description("3.11")] //3.11.4 + v3_11, } } diff --git a/Python_oM/Python_oM.csproj b/Python_oM/Python_oM.csproj index 40ab6c8..f41e36e 100644 --- a/Python_oM/Python_oM.csproj +++ b/Python_oM/Python_oM.csproj @@ -2,13 +2,13 @@ netstandard2.0 - 7.0.0.0 + 8.0.0.0 https://github.com/BHoM/Python_Toolkit 6.0.0 BHoM Copyright © https://github.com/BHoM BH.oM.Python - 7.3.0.0 + 8.0.0.0 ..\Build\