olive-oil-transformer-model/models/olive_oil/.ipynb_checkpoints/olive_oil-512-60_30-checkpoint.ipynb

4267 lines
788 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "initial_id",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease\n",
"Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB] \n",
"Hit:3 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64 InRelease\n",
"Get:4 http://security.ubuntu.com/ubuntu jammy-security InRelease [129 kB] \n",
"Get:5 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [127 kB]\n",
"Fetched 384 kB in 1s (519 kB/s) \n",
"Reading package lists... Done\n",
"Reading package lists... Done\n",
"Building dependency tree... Done\n",
"Reading state information... Done\n",
"graphviz is already the newest version (2.42.2-6ubuntu0.1).\n",
"0 upgraded, 0 newly installed, 0 to remove and 121 not upgraded.\n",
"Requirement already satisfied: tensorflow in /usr/local/lib/python3.11/dist-packages (2.14.0)\n",
"Requirement already satisfied: absl-py>=1.0.0 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (2.0.0)\n",
"Requirement already satisfied: astunparse>=1.6.0 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (1.6.3)\n",
"Requirement already satisfied: flatbuffers>=23.5.26 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (23.5.26)\n",
"Requirement already satisfied: gast!=0.5.0,!=0.5.1,!=0.5.2,>=0.2.1 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (0.5.4)\n",
"Requirement already satisfied: google-pasta>=0.1.1 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (0.2.0)\n",
"Requirement already satisfied: h5py>=2.9.0 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (3.9.0)\n",
"Requirement already satisfied: libclang>=13.0.0 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (16.0.6)\n",
"Requirement already satisfied: ml-dtypes==0.2.0 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (0.2.0)\n",
"Requirement already satisfied: numpy>=1.23.5 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (1.26.0)\n",
"Requirement already satisfied: opt-einsum>=2.3.2 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (3.3.0)\n",
"Requirement already satisfied: packaging in /usr/local/lib/python3.11/dist-packages (from tensorflow) (23.1)\n",
"Requirement already satisfied: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.20.3 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (4.24.3)\n",
"Requirement already satisfied: setuptools in /usr/local/lib/python3.11/dist-packages (from tensorflow) (68.2.2)\n",
"Requirement already satisfied: six>=1.12.0 in /usr/lib/python3/dist-packages (from tensorflow) (1.16.0)\n",
"Requirement already satisfied: termcolor>=1.1.0 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (2.3.0)\n",
"Requirement already satisfied: typing-extensions>=3.6.6 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (4.8.0)\n",
"Requirement already satisfied: wrapt<1.15,>=1.11.0 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (1.14.1)\n",
"Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (0.37.1)\n",
"Requirement already satisfied: grpcio<2.0,>=1.24.3 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (1.58.0)\n",
"Requirement already satisfied: tensorboard<2.15,>=2.14 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (2.14.0)\n",
"Requirement already satisfied: tensorflow-estimator<2.15,>=2.14.0 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (2.14.0)\n",
"Requirement already satisfied: keras<2.15,>=2.14.0 in /usr/local/lib/python3.11/dist-packages (from tensorflow) (2.14.0)\n",
"Requirement already satisfied: wheel<1.0,>=0.23.0 in /usr/local/lib/python3.11/dist-packages (from astunparse>=1.6.0->tensorflow) (0.41.2)\n",
"Requirement already satisfied: google-auth<3,>=1.6.3 in /usr/local/lib/python3.11/dist-packages (from tensorboard<2.15,>=2.14->tensorflow) (2.23.1)\n",
"Requirement already satisfied: google-auth-oauthlib<1.1,>=0.5 in /usr/local/lib/python3.11/dist-packages (from tensorboard<2.15,>=2.14->tensorflow) (1.0.0)\n",
"Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.11/dist-packages (from tensorboard<2.15,>=2.14->tensorflow) (3.4.4)\n",
"Requirement already satisfied: requests<3,>=2.21.0 in /usr/local/lib/python3.11/dist-packages (from tensorboard<2.15,>=2.14->tensorflow) (2.31.0)\n",
"Requirement already satisfied: tensorboard-data-server<0.8.0,>=0.7.0 in /usr/local/lib/python3.11/dist-packages (from tensorboard<2.15,>=2.14->tensorflow) (0.7.1)\n",
"Requirement already satisfied: werkzeug>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from tensorboard<2.15,>=2.14->tensorflow) (2.3.7)\n",
"Requirement already satisfied: cachetools<6.0,>=2.0.0 in /usr/local/lib/python3.11/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.15,>=2.14->tensorflow) (5.3.1)\n",
"Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.11/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.15,>=2.14->tensorflow) (0.3.0)\n",
"Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.11/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.15,>=2.14->tensorflow) (4.9)\n",
"Requirement already satisfied: urllib3>=2.0.5 in /usr/local/lib/python3.11/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.15,>=2.14->tensorflow) (2.0.5)\n",
"Requirement already satisfied: requests-oauthlib>=0.7.0 in /usr/local/lib/python3.11/dist-packages (from google-auth-oauthlib<1.1,>=0.5->tensorboard<2.15,>=2.14->tensorflow) (1.3.1)\n",
"Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.11/dist-packages (from requests<3,>=2.21.0->tensorboard<2.15,>=2.14->tensorflow) (3.2.0)\n",
"Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/dist-packages (from requests<3,>=2.21.0->tensorboard<2.15,>=2.14->tensorflow) (3.4)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.11/dist-packages (from requests<3,>=2.21.0->tensorboard<2.15,>=2.14->tensorflow) (2023.7.22)\n",
"Requirement already satisfied: MarkupSafe>=2.1.1 in /usr/local/lib/python3.11/dist-packages (from werkzeug>=1.0.1->tensorboard<2.15,>=2.14->tensorflow) (2.1.3)\n",
"Requirement already satisfied: pyasn1<0.6.0,>=0.4.6 in /usr/local/lib/python3.11/dist-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard<2.15,>=2.14->tensorflow) (0.5.0)\n",
"Requirement already satisfied: oauthlib>=3.0.0 in /usr/lib/python3/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<1.1,>=0.5->tensorboard<2.15,>=2.14->tensorflow) (3.2.0)\n",
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
"\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
"Requirement already satisfied: numpy in /usr/local/lib/python3.11/dist-packages (1.26.0)\n",
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
"\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
"Requirement already satisfied: pandas in /usr/local/lib/python3.11/dist-packages (2.2.3)\n",
"Requirement already satisfied: numpy>=1.23.2 in /usr/local/lib/python3.11/dist-packages (from pandas) (1.26.0)\n",
"Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.11/dist-packages (from pandas) (2.8.2)\n",
"Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/dist-packages (from pandas) (2024.2)\n",
"Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas) (2024.2)\n",
"Requirement already satisfied: six>=1.5 in /usr/lib/python3/dist-packages (from python-dateutil>=2.8.2->pandas) (1.16.0)\n",
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
"\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
"Requirement already satisfied: keras in /usr/local/lib/python3.11/dist-packages (2.14.0)\n",
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
"\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
"Requirement already satisfied: scikit-learn in /usr/local/lib/python3.11/dist-packages (1.5.2)\n",
"Requirement already satisfied: numpy>=1.19.5 in /usr/local/lib/python3.11/dist-packages (from scikit-learn) (1.26.0)\n",
"Requirement already satisfied: scipy>=1.6.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn) (1.14.1)\n",
"Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn) (1.4.2)\n",
"Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn) (3.5.0)\n",
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
"\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
"Requirement already satisfied: matplotlib in /usr/local/lib/python3.11/dist-packages (3.8.0)\n",
"Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (1.1.1)\n",
"Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (0.11.0)\n",
"Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (4.42.1)\n",
"Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (1.4.5)\n",
"Requirement already satisfied: numpy<2,>=1.21 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (1.26.0)\n",
"Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (23.1)\n",
"Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (10.0.1)\n",
"Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (3.2.0)\n",
"Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (2.8.2)\n",
"Requirement already satisfied: six>=1.5 in /usr/lib/python3/dist-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\n",
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
"\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
"Requirement already satisfied: joblib in /usr/local/lib/python3.11/dist-packages (1.4.2)\n",
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
"\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
"Requirement already satisfied: pyarrow in /usr/local/lib/python3.11/dist-packages (18.1.0)\n",
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
"\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
"Requirement already satisfied: fastparquet in /usr/local/lib/python3.11/dist-packages (2024.11.0)\n",
"Requirement already satisfied: pandas>=1.5.0 in /usr/local/lib/python3.11/dist-packages (from fastparquet) (2.2.3)\n",
"Requirement already satisfied: numpy in /usr/local/lib/python3.11/dist-packages (from fastparquet) (1.26.0)\n",
"Requirement already satisfied: cramjam>=2.3 in /usr/local/lib/python3.11/dist-packages (from fastparquet) (2.9.0)\n",
"Requirement already satisfied: fsspec in /usr/local/lib/python3.11/dist-packages (from fastparquet) (2024.10.0)\n",
"Requirement already satisfied: packaging in /usr/local/lib/python3.11/dist-packages (from fastparquet) (23.1)\n",
"Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.5.0->fastparquet) (2.8.2)\n",
"Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.5.0->fastparquet) (2024.2)\n",
"Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.5.0->fastparquet) (2024.2)\n",
"Requirement already satisfied: six>=1.5 in /usr/lib/python3/dist-packages (from python-dateutil>=2.8.2->pandas>=1.5.0->fastparquet) (1.16.0)\n",
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
"\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
"Requirement already satisfied: scipy in /usr/local/lib/python3.11/dist-packages (1.14.1)\n",
"Requirement already satisfied: numpy<2.3,>=1.23.5 in /usr/local/lib/python3.11/dist-packages (from scipy) (1.26.0)\n",
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
"\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
"Requirement already satisfied: seaborn in /usr/local/lib/python3.11/dist-packages (0.13.2)\n",
"Requirement already satisfied: numpy!=1.24.0,>=1.20 in /usr/local/lib/python3.11/dist-packages (from seaborn) (1.26.0)\n",
"Requirement already satisfied: pandas>=1.2 in /usr/local/lib/python3.11/dist-packages (from seaborn) (2.2.3)\n",
"Requirement already satisfied: matplotlib!=3.6.1,>=3.4 in /usr/local/lib/python3.11/dist-packages (from seaborn) (3.8.0)\n",
"Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (1.1.1)\n",
"Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (0.11.0)\n",
"Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (4.42.1)\n",
"Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (1.4.5)\n",
"Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (23.1)\n",
"Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (10.0.1)\n",
"Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (3.2.0)\n",
"Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (2.8.2)\n",
"Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.2->seaborn) (2024.2)\n",
"Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.2->seaborn) (2024.2)\n",
"Requirement already satisfied: six>=1.5 in /usr/lib/python3/dist-packages (from python-dateutil>=2.7->matplotlib!=3.6.1,>=3.4->seaborn) (1.16.0)\n",
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
"\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
"Requirement already satisfied: tqdm in /usr/local/lib/python3.11/dist-packages (4.67.1)\n",
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
"\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
"Requirement already satisfied: pydot in /usr/local/lib/python3.11/dist-packages (3.0.3)\n",
"Requirement already satisfied: pyparsing>=3.0.9 in /usr/local/lib/python3.11/dist-packages (from pydot) (3.2.0)\n",
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
"\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
"Requirement already satisfied: tensorflow-io in /usr/local/lib/python3.11/dist-packages (0.37.1)\n",
"Requirement already satisfied: tensorflow-io-gcs-filesystem==0.37.1 in /usr/local/lib/python3.11/dist-packages (from tensorflow-io) (0.37.1)\n",
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
"\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython3 -m pip install --upgrade pip\u001b[0m\n",
"Requirement already satisfied: tensorflow-addons in /usr/local/lib/python3.11/dist-packages (0.23.0)\n",
"Requirement already satisfied: packaging in /usr/local/lib/python3.11/dist-packages (from tensorflow-addons) (23.1)\n",
"Requirement already satisfied: typeguard<3.0.0,>=2.7 in /usr/local/lib/python3.11/dist-packages (from tensorflow-addons) (2.13.3)\n",
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
"\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython3 -m pip install --upgrade pip\u001b[0m\n"
]
}
],
"source": [
"!apt-get update\n",
"!apt-get install graphviz -y\n",
"\n",
"!pip install tensorflow\n",
"!pip install numpy\n",
"!pip install pandas\n",
"\n",
"!pip install keras\n",
"!pip install scikit-learn\n",
"!pip install matplotlib\n",
"!pip install joblib\n",
"!pip install pyarrow\n",
"!pip install fastparquet\n",
"!pip install scipy\n",
"!pip install seaborn\n",
"!pip install tqdm\n",
"!pip install pydot\n",
"!pip install tensorflow-io\n",
"!pip install tensorflow-addons"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "a467d3f0dfd9beab",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2024-12-07 07:35:27.011449: E tensorflow/compiler/xla/stream_executor/cuda/cuda_dnn.cc:9342] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
"2024-12-07 07:35:27.011494: E tensorflow/compiler/xla/stream_executor/cuda/cuda_fft.cc:609] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
"2024-12-07 07:35:27.011539: E tensorflow/compiler/xla/stream_executor/cuda/cuda_blas.cc:1518] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
"2024-12-07 07:35:27.020703: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n",
"To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Keras version: 2.14.0\n",
"TensorFlow version: 2.14.0\n",
"TensorFlow version: 2.14.0\n",
"CUDA available: True\n",
"GPU devices: [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]\n",
"1 Physical GPUs, 1 Logical GPUs\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2024-12-07 07:35:29.539283: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1886] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 9725 MB memory: -> device: 0, name: NVIDIA L40, pci bus id: 0000:81:00.0, compute capability: 8.9\n"
]
}
],
"source": [
"import tensorflow as tf\n",
"import keras\n",
"\n",
"print(f\"Keras version: {keras.__version__}\")\n",
"print(f\"TensorFlow version: {tf.__version__}\")\n",
"print(f\"TensorFlow version: {tf.__version__}\")\n",
"print(f\"CUDA available: {tf.test.is_built_with_cuda()}\")\n",
"print(f\"GPU devices: {tf.config.list_physical_devices('GPU')}\")\n",
"\n",
"# GPU configuration\n",
"import tensorflow as tf\n",
"import os\n",
"\n",
"# Limita la crescita della memoria GPU\n",
"gpus = tf.config.experimental.list_physical_devices('GPU')\n",
"if gpus:\n",
" try:\n",
" # Imposta la crescita di memoria dinamica\n",
" for gpu in gpus:\n",
" tf.config.experimental.set_memory_growth(gpu, True)\n",
" \n",
" # Opzionalmente, limita la memoria GPU massima (uncomment se necessario)\n",
" # tf.config.experimental.set_virtual_device_configuration(\n",
" # gpus[0],\n",
" # [tf.config.experimental.VirtualDeviceConfiguration(memory_limit=1024*4)] # 4GB\n",
" # )\n",
" \n",
" logical_gpus = tf.config.experimental.list_logical_devices('GPU')\n",
" print(len(gpus), \"Physical GPUs,\", len(logical_gpus), \"Logical GPUs\")\n",
" except RuntimeError as e:\n",
" print(e)\n",
" \n",
"# Imposta le opzioni di logging\n",
"os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # Riduce i messaggi di log\n",
" \n",
"# Configura la modalità mista di precisione\n",
"tf.keras.mixed_precision.set_global_policy('float32')\n",
"\n",
"# Imposta il seed per la riproducibilità\n",
"##tf.random.set_seed(42)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "c0155cde4740b0a3",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/usr/local/lib/python3.11/dist-packages/tensorflow_addons/utils/tfa_eol_msg.py:23: UserWarning: \n",
"\n",
"TensorFlow Addons (TFA) has ended development and introduction of new features.\n",
"TFA has entered a minimal maintenance and release mode until a planned end of life in May 2024.\n",
"Please modify downstream libraries to take dependencies from other repositories in our TensorFlow community (e.g. Keras, Keras-CV, and Keras-NLP). \n",
"\n",
"For more information see: https://github.com/tensorflow/addons/issues/2807 \n",
"\n",
" warnings.warn(\n"
]
}
],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from sklearn.preprocessing import StandardScaler\n",
"import tensorflow_addons as tfa\n",
"from datetime import datetime\n",
"import os\n",
"import joblib\n",
"import re\n",
"from typing import List\n",
"\n",
"random_state_value = None\n",
"execute_name = datetime.now().strftime(\"%Y-%m-%d_%H-%M\")\n",
"\n",
"base_project_dir = './'\n",
"data_dir = '../../sources/'\n",
"models_project_dir = base_project_dir\n",
"\n",
"os.makedirs(base_project_dir, exist_ok=True)\n",
"os.makedirs(models_project_dir, exist_ok=True)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "1347fb59-50cc-4aa8-b805-ca9403037af5",
"metadata": {},
"outputs": [],
"source": [
"def clean_column_name(name: str) -> str:\n",
" \"\"\"\n",
" Rimuove caratteri speciali e spazi, converte in snake_case e abbrevia.\n",
"\n",
" Parameters\n",
" ----------\n",
" name : str\n",
" Nome della colonna da pulire\n",
"\n",
" Returns\n",
" -------\n",
" str\n",
" Nome della colonna pulito\n",
" \"\"\"\n",
" # Rimuove caratteri speciali\n",
" name = re.sub(r'[^a-zA-Z0-9\\s]', '', name)\n",
" # Converte in snake_case\n",
" name = name.lower().replace(' ', '_')\n",
"\n",
" # Abbreviazioni comuni\n",
" abbreviations = {\n",
" 'production': 'prod',\n",
" 'percentage': 'pct',\n",
" 'hectare': 'ha',\n",
" 'tonnes': 't',\n",
" 'litres': 'l',\n",
" 'minimum': 'min',\n",
" 'maximum': 'max',\n",
" 'average': 'avg'\n",
" }\n",
"\n",
" for full, abbr in abbreviations.items():\n",
" name = name.replace(full, abbr)\n",
"\n",
" return name\n",
"\n",
"\n",
"def clean_column_names(df: pd.DataFrame) -> List[str]:\n",
" \"\"\"\n",
" Pulisce tutti i nomi delle colonne in un DataFrame.\n",
"\n",
" Parameters\n",
" ----------\n",
" df : pd.DataFrame\n",
" DataFrame con le colonne da pulire\n",
"\n",
" Returns\n",
" -------\n",
" list\n",
" Lista dei nuovi nomi delle colonne puliti\n",
" \"\"\"\n",
" new_columns = []\n",
"\n",
" for col in df.columns:\n",
" # Usa regex per separare le varietà\n",
" varieties = re.findall(r'([a-z]+)_([a-z_]+)', col)\n",
" if varieties:\n",
" new_columns.append(f\"{varieties[0][0]}_{varieties[0][1]}\")\n",
" else:\n",
" new_columns.append(col)\n",
"\n",
" return new_columns"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "4da1f1bb67343e3e",
"metadata": {},
"outputs": [],
"source": [
"def save_plot(plt, title, output_dir=f'{base_project_dir}/{execute_name}_plots'):\n",
" os.makedirs(output_dir, exist_ok=True)\n",
" filename = \"\".join(x for x in title if x.isalnum() or x in [' ', '-', '_']).rstrip()\n",
" filename = filename.replace(' ', '_').lower()\n",
" filepath = os.path.join(output_dir, f\"{filename}.png\")\n",
" plt.savefig(filepath, bbox_inches='tight', dpi=300)\n",
" print(f\"Plot salvato come: {filepath}\")\n",
"\n",
"\n",
"def encode_techniques(df, mapping_path=f'{data_dir}technique_mapping.joblib'):\n",
" if not os.path.exists(mapping_path):\n",
" raise FileNotFoundError(f\"Mapping not found at {mapping_path}. Run create_technique_mapping first.\")\n",
"\n",
" technique_mapping = joblib.load(mapping_path)\n",
"\n",
" # Trova tutte le colonne delle tecniche\n",
" tech_columns = [col for col in df.columns if col.endswith('_tech')]\n",
"\n",
" # Applica il mapping a tutte le colonne delle tecniche\n",
" for col in tech_columns:\n",
" df[col] = df[col].str.lower().map(technique_mapping).fillna(0).astype(int)\n",
"\n",
" return df\n",
"\n",
"\n",
"def decode_single_technique(technique_value, mapping_path=f'{data_dir}technique_mapping.joblib'):\n",
" if not os.path.exists(mapping_path):\n",
" raise FileNotFoundError(f\"Mapping not found at {mapping_path}\")\n",
"\n",
" technique_mapping = joblib.load(mapping_path)\n",
" reverse_mapping = {v: k for k, v in technique_mapping.items()}\n",
" reverse_mapping[0] = ''\n",
"\n",
" return reverse_mapping.get(technique_value, '')\n",
"\n",
"\n",
"def prepare_comparison_data(simulated_data, olive_varieties):\n",
" # Pulisci i nomi delle colonne\n",
" df = simulated_data.copy()\n",
"\n",
" df.columns = clean_column_names(df)\n",
" df = encode_techniques(df)\n",
"\n",
" all_varieties = olive_varieties['Varietà di Olive'].unique()\n",
" varieties = [clean_column_name(variety) for variety in all_varieties]\n",
" comparison_data = []\n",
"\n",
" for variety in varieties:\n",
" olive_prod_col = next((col for col in df.columns if col.startswith(f'{variety}_') and col.endswith('_olive_prod')), None)\n",
" oil_prod_col = next((col for col in df.columns if col.startswith(f'{variety}_') and col.endswith('_avg_oil_prod')), None)\n",
" tech_col = next((col for col in df.columns if col.startswith(f'{variety}_') and col.endswith('_tech')), None)\n",
" water_need_col = next((col for col in df.columns if col.startswith(f'{variety}_') and col.endswith('_water_need')), None)\n",
"\n",
" if olive_prod_col and oil_prod_col and tech_col and water_need_col:\n",
" variety_data = df[[olive_prod_col, oil_prod_col, tech_col, water_need_col]]\n",
" variety_data = variety_data[variety_data[tech_col] != 0] # Esclude le righe dove la tecnica è 0\n",
"\n",
" if not variety_data.empty:\n",
" avg_olive_prod = pd.to_numeric(variety_data[olive_prod_col], errors='coerce').mean()\n",
" avg_oil_prod = pd.to_numeric(variety_data[oil_prod_col], errors='coerce').mean()\n",
" avg_water_need = pd.to_numeric(variety_data[water_need_col], errors='coerce').mean()\n",
" efficiency = avg_oil_prod / avg_olive_prod if avg_olive_prod > 0 else 0\n",
" water_efficiency = avg_oil_prod / avg_water_need if avg_water_need > 0 else 0\n",
"\n",
" comparison_data.append({\n",
" 'Variety': variety,\n",
" 'Avg Olive Production (kg/ha)': avg_olive_prod,\n",
" 'Avg Oil Production (L/ha)': avg_oil_prod,\n",
" 'Avg Water Need (m³/ha)': avg_water_need,\n",
" 'Oil Efficiency (L/kg)': efficiency,\n",
" 'Water Efficiency (L oil/m³ water)': water_efficiency\n",
" })\n",
"\n",
" return pd.DataFrame(comparison_data)\n",
"\n",
"\n",
"def plot_variety_comparison(comparison_data, metric):\n",
" plt.figure(figsize=(12, 6))\n",
" bars = plt.bar(comparison_data['Variety'], comparison_data[metric])\n",
" plt.title(f'Comparison of {metric} across Olive Varieties')\n",
" plt.xlabel('Variety')\n",
" plt.ylabel(metric)\n",
" plt.xticks(rotation=45, ha='right')\n",
"\n",
" for bar in bars:\n",
" height = bar.get_height()\n",
" plt.text(bar.get_x() + bar.get_width() / 2., height,\n",
" f'{height:.2f}',\n",
" ha='center', va='bottom')\n",
"\n",
" plt.tight_layout()\n",
" plt.show()\n",
" save_plot(plt, f'variety_comparison_{metric.lower().replace(\" \", \"_\").replace(\"/\", \"_\").replace(\"(\", \"\").replace(\")\", \"\")}')\n",
" plt.close()\n",
"\n",
"\n",
"def plot_efficiency_vs_production(comparison_data):\n",
" plt.figure(figsize=(10, 6))\n",
"\n",
" plt.scatter(comparison_data['Avg Olive Production (kg/ha)'],\n",
" comparison_data['Oil Efficiency (L/kg)'],\n",
" s=100)\n",
"\n",
" for i, row in comparison_data.iterrows():\n",
" plt.annotate(row['Variety'],\n",
" (row['Avg Olive Production (kg/ha)'], row['Oil Efficiency (L/kg)']),\n",
" xytext=(5, 5), textcoords='offset points')\n",
"\n",
" plt.title('Oil Efficiency vs Olive Production by Variety')\n",
" plt.xlabel('Average Olive Production (kg/ha)')\n",
" plt.ylabel('Oil Efficiency (L oil / kg olives)')\n",
" plt.tight_layout()\n",
" save_plot(plt, 'efficiency_vs_production')\n",
" plt.close()\n",
"\n",
"\n",
"def plot_water_efficiency_vs_production(comparison_data):\n",
" plt.figure(figsize=(10, 6))\n",
"\n",
" plt.scatter(comparison_data['Avg Olive Production (kg/ha)'],\n",
" comparison_data['Water Efficiency (L oil/m³ water)'],\n",
" s=100)\n",
"\n",
" for i, row in comparison_data.iterrows():\n",
" plt.annotate(row['Variety'],\n",
" (row['Avg Olive Production (kg/ha)'], row['Water Efficiency (L oil/m³ water)']),\n",
" xytext=(5, 5), textcoords='offset points')\n",
"\n",
" plt.title('Water Efficiency vs Olive Production by Variety')\n",
" plt.xlabel('Average Olive Production (kg/ha)')\n",
" plt.ylabel('Water Efficiency (L oil / m³ water)')\n",
" plt.tight_layout()\n",
" plt.show()\n",
" save_plot(plt, 'water_efficiency_vs_production')\n",
" plt.close()\n",
"\n",
"\n",
"def plot_water_need_vs_oil_production(comparison_data):\n",
" plt.figure(figsize=(10, 6))\n",
"\n",
" plt.scatter(comparison_data['Avg Water Need (m³/ha)'],\n",
" comparison_data['Avg Oil Production (L/ha)'],\n",
" s=100)\n",
"\n",
" for i, row in comparison_data.iterrows():\n",
" plt.annotate(row['Variety'],\n",
" (row['Avg Water Need (m³/ha)'], row['Avg Oil Production (L/ha)']),\n",
" xytext=(5, 5), textcoords='offset points')\n",
"\n",
" plt.title('Oil Production vs Water Need by Variety')\n",
" plt.xlabel('Average Water Need (m³/ha)')\n",
" plt.ylabel('Average Oil Production (L/ha)')\n",
" plt.tight_layout()\n",
" plt.show()\n",
" save_plot(plt, 'water_need_vs_oil_production')\n",
" plt.close()\n",
"\n",
"\n",
"def analyze_by_technique(simulated_data, olive_varieties):\n",
" # Pulisci i nomi delle colonne\n",
" df = simulated_data.copy()\n",
"\n",
" df.columns = clean_column_names(df)\n",
" df = encode_techniques(df)\n",
" all_varieties = olive_varieties['Varietà di Olive'].unique()\n",
" varieties = [clean_column_name(variety) for variety in all_varieties]\n",
"\n",
" technique_data = []\n",
"\n",
" for variety in varieties:\n",
" olive_prod_col = next((col for col in df.columns if col.startswith(f'{variety}_') and col.endswith('_olive_prod')), None)\n",
" oil_prod_col = next((col for col in df.columns if col.startswith(f'{variety}_') and col.endswith('_avg_oil_prod')), None)\n",
" tech_col = next((col for col in df.columns if col.startswith(f'{variety}_') and col.endswith('_tech')), None)\n",
" water_need_col = next((col for col in df.columns if col.startswith(f'{variety}_') and col.endswith('_water_need')), None)\n",
"\n",
" if olive_prod_col and oil_prod_col and tech_col and water_need_col:\n",
" variety_data = df[[olive_prod_col, oil_prod_col, tech_col, water_need_col]]\n",
" variety_data = variety_data[variety_data[tech_col] != 0]\n",
"\n",
" if not variety_data.empty:\n",
" for tech in variety_data[tech_col].unique():\n",
" tech_data = variety_data[variety_data[tech_col] == tech]\n",
"\n",
" avg_olive_prod = pd.to_numeric(tech_data[olive_prod_col], errors='coerce').mean()\n",
" avg_oil_prod = pd.to_numeric(tech_data[oil_prod_col], errors='coerce').mean()\n",
" avg_water_need = pd.to_numeric(tech_data[water_need_col], errors='coerce').mean()\n",
"\n",
" efficiency = avg_oil_prod / avg_olive_prod if avg_olive_prod > 0 else 0\n",
" water_efficiency = avg_oil_prod / avg_water_need if avg_water_need > 0 else 0\n",
"\n",
" technique_data.append({\n",
" 'Variety': variety,\n",
" 'Technique': tech,\n",
" 'Technique String': decode_single_technique(tech),\n",
" 'Avg Olive Production (kg/ha)': avg_olive_prod,\n",
" 'Avg Oil Production (L/ha)': avg_oil_prod,\n",
" 'Avg Water Need (m³/ha)': avg_water_need,\n",
" 'Oil Efficiency (L/kg)': efficiency,\n",
" 'Water Efficiency (L oil/m³ water)': water_efficiency\n",
" })\n",
"\n",
" return pd.DataFrame(technique_data)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "9aa4bf176c4affb9",
"metadata": {},
"outputs": [],
"source": [
"def calculate_real_error(model, test_data, test_targets, scaler_y):\n",
" # Fare predizioni\n",
" predictions = model.predict(test_data)\n",
"\n",
" # Denormalizzare predizioni e target\n",
" predictions_real = scaler_y.inverse_transform(predictions)\n",
" targets_real = scaler_y.inverse_transform(test_targets)\n",
"\n",
" # Calcolare errore percentuale per ogni target\n",
" percentage_errors = []\n",
" absolute_errors = []\n",
"\n",
" for i in range(predictions_real.shape[1]):\n",
" mae = np.mean(np.abs(predictions_real[:, i] - targets_real[:, i]))\n",
" mape = np.mean(np.abs((predictions_real[:, i] - targets_real[:, i]) / targets_real[:, i])) * 100\n",
" percentage_errors.append(mape)\n",
" absolute_errors.append(mae)\n",
"\n",
" # Stampa risultati per ogni target\n",
" target_names = ['olive_prod', 'min_oil_prod', 'max_oil_prod', 'avg_oil_prod', 'total_water_need']\n",
"\n",
" print(\"\\nErrori per target:\")\n",
" print(\"-\" * 50)\n",
" for i, target in enumerate(target_names):\n",
" print(f\"{target}:\")\n",
" print(f\"MAE assoluto: {absolute_errors[i]:.2f}\")\n",
" print(f\"Errore percentuale medio: {percentage_errors[i]:.2f}%\")\n",
" print(f\"Precisione: {100 - percentage_errors[i]:.2f}%\")\n",
" print(\"-\" * 50)\n",
"\n",
" return percentage_errors, absolute_errors"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "b3ba2b96ba678389",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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wObNm/O83YC+HEOGDMHixYuRmpr6n1vsnb582dnZqFKlCjp27IhJkyYVSJ+zZs3C0KFDcf/+fVhaWqJUqVKYPHky+vXrVyD9f0hGRgbs7OwwevRoDB48uNDHIyIi+lpwTSkiIqJi7v21oJ49e4Y///wT3333HRNSVCg0NTUxceJEzJ8//5MS2O+fs69fv8bixYtRsWJFlC5dGklJSRg6dCj+97//FVTIHxQaGgptbW307du3SMYjIiL6WnCmFBERqYUzpb48Li4uaNy4MZycnPDo0SMsX74cDx48wOHDh/N9jDvR5+Tl5YVy5crBxcUFycnJWLNmDa5cuYKwsDB06dLlc4dHREREBYQLnRMRERVzLVq0wObNm7FkyRLIZDJ88803WL58ORNS9J/l4eGBZcuWISwsTLoVcP369UpPXyMiIqIvG2dKERERERERERFRkeOaUkREREREREREVOSYlCIiIiIiIiIioiLHNaUKSE5ODh48eABDQ0PIZLLPHQ4RERERERER0WchhMDLly9hY2MDDY3850MxKVVAHjx4gLJly37uMIiIiIiIiIiI/hP++ecflClTJt96JqUKiKGhIYC3B9zIyOgzR0NERERERERE9HmkpKSgbNmyUq4kP0xKFZDcW/aMjIyYlCIiIiIiIiKir97HljfiQudERERERERERFTkmJQiIiIiIiIiIqIix6QUEREREREREREVOSaliIiIiIiIiIioyDEpRURE9P+dOHECrVu3ho2NDWQyGbZv365Q/+jRI/To0QM2NjYoUaIEPD09cfPmTaV+IiIi8P3330NfXx9GRkZo2LAh0tPTldplZGTAxcUFMpkM0dHRCnUHDhxAnTp1YGhoCHNzc7Rv3x537tz56D7s2bMHtWvXhp6eHkxMTODt7S3VPXv2DJ6enrCxsYFcLkfZsmUxYMAApKSkqHJ4iIiIiIgKFJNSRERE/19aWhpq1KiB+fPnK9UJIeDt7Y3bt29jx44duHDhAmxtbeHu7o60tDSpXUREBDw9PdG8eXOcPXsW586dw4ABA6ChofxP7siRI2FjY6NUHh8fj7Zt2+L7779HdHQ0Dhw4gKdPn6Jdu3YfjH/Lli3o1q0bevbsiYsXL+Kvv/5Cly5dpHoNDQ20bdsWO3fuxI0bN7By5UocOnQIffv2VecwEREREREVDPEZ/fHHH6JmzZrCwMBAmJubi7Zt24rr168rtElPTxf9+vUTpqamQl9fX7Rr104kJiYqtLl7965o0aKF0NPTE+bm5uKXX34RWVlZCm2OHj0qXF1dhY6OjihfvrwIDQ1VimfevHnC1tZWyOVy8e2334ozZ86ovC/JyckCgEhOTlb9ABAR0X8WALFt2zbpfWxsrAAgLl++LJVlZ2cLc3NzsXTpUqmsdu3aYty4cR/tf+/evcLR0VFcuXJFABAXLlyQ6jZt2iS0tLREdna2VLZz504hk8lEZmZmnv1lZWWJ0qVLi2XLlqmxl0LMnj1blClTRq1tiIiIiIg+RNUcyWedKXX8+HH0798ff//9N8LDw5GVlYXmzZsr/MV56NCh2LVrFzZt2oTjx4/jwYMHCn8pzs7ORsuWLZGZmYnTp09j1apVWLlyJcaPHy+1iY+PR8uWLdGkSRNER0djyJAh6NWrFw4cOCC12bBhA4YNG4YJEybg/PnzqFGjBjw8PPD48eOiORhERPSflpGRAQDQ1dWVyjQ0NCCXy3Hq1CkAwOPHj3HmzBlYWFigXr16sLS0RKNGjaT6XI8ePULv3r3x559/okSJEkpjubm5QUNDA6GhocjOzkZycjL+/PNPuLu7Q1tbO8/4zp8/j4SEBGhoaMDV1RXW1tbw8vLC5cuX892nBw8eYOvWrWjUqJHax4OIiIiI6F8roiSZSh4/fiwAiOPHjwshhHjx4oXQ1tYWmzZtktpcu3ZNABARERFCiLd/adbQ0FCYPbVw4UJhZGQkMjIyhBBCjBw5UlStWlVhrE6dOgkPDw/p/bfffiv69+8vvc/OzhY2NjZi8uTJKsXOmVJERMUL3psplZmZKcqVKyc6dOggkpKSREZGhpgyZYoAIJo3by6EECIiIkIAEKampmLFihXi/PnzYsiQIUJHR0fcuHFDCCFETk6O8PT0FJMmTRJCCBEfH680U0oIIY4dOyYsLCyEpqamACDq1q0rnj9/nm+869atEwBEuXLlxObNm0VkZKTo3LmzKFWqlHj27JlCWx8fH6GnpycAiNatW4v09PR/f8CIiIiIiP6/L2Km1PuSk5MBAKampgCAqKgoZGVlwd3dXWrj6OiIcuXKISIiAsDbtTuqV68OS0tLqY2HhwdSUlJw5coVqc27feS2ye0jMzMTUVFRCm00NDTg7u4utXlfRkYGUlJSFF5ERFR8aWtrY+vWrbhx4wZMTU1RokQJHD16FF5eXtJ6UTk5OQCAn376CT179oSrqytCQkJQuXJlrFixAgAwd+5cvHz5EgEBAfmOlZiYiN69e8PX1xfnzp3D8ePHoaOjgx9++AFCiDy3yR177NixaN++Pdzc3BAaGgqZTIZNmzYptA0JCcH58+exY8cO3Lp1C8OGDfvXx4eIiIiISF1anzuAXDk5ORgyZAjq16+PatWqAXj7P+U6OjooWbKkQltLS0skJiZKbd5NSOXW59Z9qE1KSgrS09Px/PlzZGdn59nm+vXrecY7efJkBAUFfdrOEhHRF8nNzQ3R0dFITk5GZmYmzM3NUbt2bdSsWRMAYG1tDQCoUqWKwnZOTk64d+8eAODIkSOIiIiAXC5XaFOzZk107doVq1atwvz582FsbIxp06ZJ9WvWrEHZsmVx5swZ1KlTRym2vMaWy+VwcHCQxs5lZWUFKysrODo6wtTUFA0aNMCvv/4q9UFEREREVBT+MzOl+vfvj8uXL2P9+vWfOxSVBAQEIDk5WXr9888/nzskIiIqIsbGxjA3N8fNmzcRGRmJtm3bAgDs7OxgY2OD2NhYhfY3btyAra0tAGDOnDm4ePEioqOjER0djb179wJ4u7bh77//DgB49eqV0tP6NDU1AfzfjKj3ubm5QS6XK4ydlZWFO3fuSGPnJbe/3DWziIiIiIiKyn9iptSAAQOwe/dunDhxAmXKlJHKrayskJmZiRcvXijMlnr06BGsrKykNmfPnlXo79GjR1Jd7n9zy95tY2RkBD09PWhqakJTUzPPNrl9vE8ulyv9lZuIiL5sqampiIuLk97Hx8cjOjoapqamKFeuHDZt2gRzc3OUK1cOly5dwuDBg+Ht7Y3mzZsDAGQyGUaMGIEJEyagRo0acHFxwapVq3D9+nVs3rwZAFCuXDmFMQ0MDAAA5cuXl/4NbNmyJUJCQjBx4kR07twZL1++xJgxY2BrawtXV1cAwNmzZ9G9e3ccPnwYpUuXhpGREfr27YsJEyagbNmysLW1RXBwMACgQ4cOAIC9e/fi0aNHqFWrFgwMDHDlyhWMGDEC9evXh52dXeEdWCIiIiKiPHzWmVJCCAwYMADbtm3DkSNHYG9vr1Dv5uYGbW1tHD58WCqLjY3FvXv3ULduXQBA3bp1cenSJYWn5IWHh8PIyEi6haFu3boKfeS2ye1DR0cHbm5uCm1ycnJw+PBhqQ0RERV/kZGRcHV1lRI/w4YNg6urq/RE14cPH6Jbt25wdHTEoEGD0K1bN6xbt06hjyFDhiAgIABDhw5FjRo1cPjwYYSHh6N8+fIqx/H9999j7dq12L59O1xdXeHp6Qm5XI79+/dDT08PwNvZVLGxscjKypK2Cw4Oho+PD7p164ZatWrh7t27OHLkCExMTAAAenp6WLp0Kb777js4OTlh6NChaNOmDXbv3v2vjhsRERER0aeQifxWTC0C/fr1w9q1a7Fjxw5UrlxZKjc2Npb+p/vnn3/G3r17sXLlShgZGWHgwIEAgNOnTwMAsrOz4eLiAhsbG0ybNg2JiYno1q0bevXqhT/++APA2790V6tWDf3794efnx+OHDmCQYMGYc+ePfDw8ADw9rYJX19fLF68GN9++y1mzZqFjRs34vr160prTeUlJSUFxsbGSE5OhpGRUYEeJyIiIiIiIiKiL4WqOZLPmpSSyWR5loeGhqJHjx4AgNevX2P48OFYt24dMjIy4OHhgQULFijcVnf37l38/PPPOHbsGPT19eHr64spU6ZAS+v/7k48duwYhg4diqtXr6JMmTL49ddfpTFyzZs3D8HBwUhMTISLiwvmzJmD2rVrq7QvTEoREREREREREX0hSanihEkpIiIiIiIiIiLVcyT/iYXOiYiI8mM3es/nDoEKwZ0pLT93CERERET0mX3Whc6JiIiIiIiIiOjrxKQUEREREREREREVOSaliIiIiIiIiIioyDEpRURERERERERERY5JKSIiIiIiIiIiKnJMShERERERERERUZFjUoqIiIiIiIiIiIock1JERERERERERFTkmJQiIiIiIiIiIqIix6QUEREREREREREVOSaliIiIiIiIiIioyDEpRURERERERERERY5JKSIiIiIiIiIiKnJMShERERERERERUZFjUoqIiIiIiIiIiIock1JERERERERERFTkmJQiIiIiIiIiIqIix6QUEREREREREREVOSaliIiIiIiIiIioyDEpRURERERERERERY5JKSIiIiIiIiIiKnJMShERERERERERUZFjUoqIiIiIiIiIiIock1JERERERERERFTkmJQiIiIiIiIiIqIix6QUEREREREREREVOSaliIiIiIiIiIioyDEpRURERERERERERY5JKSIiIiIiIiIiKnJMShERERERERERUZFjUoqIiIiIiIiIiIock1JERERERERERFTkmJQiIiIiIiIiIqIix6QUEREREREREREVOSaliIiIiIiIiIioyDEpRURERERERERERY5JKSIiIiIiIiIiKnJMShERERERERERUZH7rEmpEydOoHXr1rCxsYFMJsP27dsV6mUyWZ6v4OBgqY2dnZ1S/ZQpUxT6iYmJQYMGDaCrq4uyZcti2rRpSrFs2rQJjo6O0NXVRfXq1bF3795C2WciIiIiIiIiIvrMSam0tDTUqFED8+fPz7P+4cOHCq8VK1ZAJpOhffv2Cu0mTpyo0G7gwIFSXUpKCpo3bw5bW1tERUUhODgYgYGBWLJkidTm9OnT6Ny5M/z9/XHhwgV4e3vD29sbly9fLpwdJyIiIiIiIiL6yml9zsG9vLzg5eWVb72VlZXC+x07dqBJkyZwcHBQKDc0NFRqmyssLAyZmZlYsWIFdHR0ULVqVURHR2PmzJno06cPAGD27Nnw9PTEiBEjAACTJk1CeHg45s2bh0WLFv2bXSQiIiIiIiIiojx8MWtKPXr0CHv27IG/v79S3ZQpU1CqVCm4uroiODgYb968keoiIiLQsGFD6OjoSGUeHh6IjY3F8+fPpTbu7u4KfXp4eCAiIqKQ9oaIiIiIiIiI6Ov2WWdKqWPVqlUwNDREu3btFMoHDRqEb775Bqampjh9+jQCAgLw8OFDzJw5EwCQmJgIe3t7hW0sLS2lOhMTEyQmJkpl77ZJTEzMN56MjAxkZGRI71NSUv7V/hERERERERERfU2+mKTUihUr0LVrV+jq6iqUDxs2TPrZ2dkZOjo6+OmnnzB58mTI5fJCi2fy5MkICgoqtP6JiIiIiIiIiIqzL+L2vZMnTyI2Nha9evX6aNvatWvjzZs3uHPnDoC361I9evRIoU3u+9x1qPJrk986VQAQEBCA5ORk6fXPP/+os0tERERERERERF+1LyIptXz5cri5uaFGjRofbRsdHQ0NDQ1YWFgAAOrWrYsTJ04gKytLahMeHo7KlSvDxMREanP48GGFfsLDw1G3bt18x5HL5TAyMlJ4ERERERERERGRaj5rUio1NRXR0dGIjo4GAMTHxyM6Ohr37t2T2qSkpGDTpk15zpKKiIjArFmzcPHiRdy+fRthYWEYOnQofvzxRynh1KVLF+jo6MDf3x9XrlzBhg0bMHv2bIXb/gYPHoz9+/djxowZuH79OgIDAxEZGYkBAwYU7gEgIiIiIiIiIvpKfdY1pSIjI9GkSRPpfW6iyNfXFytXrgQArF+/HkIIdO7cWWl7uVyO9evXIzAwEBkZGbC3t8fQoUMVEk7GxsY4ePAg+vfvDzc3N5iZmWH8+PHo06eP1KZevXpYu3Ytxo0bhzFjxqBixYrYvn07qlWrVkh7TkRERERERET0dZMJIcTnDqI4SElJgbGxMZKTk3krHxFRAbIbvedzh0CF4M6Ulp87BCIiIiIqJKrmSL6INaWIiIiIiIiIiKh4YVKKiIiIiIiIiIiKHJNSRERERERERERU5JiUIiIiIiIiIiKiIsekFBERERERERERFTkmpYiIiIiIiIiIqMgxKUVEREREREREREWOSSkiIiIiIiIiIipyTEoREREREREREVGRY1KKiIiIiIiIiIiKHJNSRERERERERERU5JiUIiIiIiIiIiKiIsekFBEVCydOnEDr1q1hY2MDmUyG7du3K9T36NEDMplM4eXp6anQ5vz582jWrBlKliyJUqVKoU+fPkhNTZXqV65cqdRH7uvx48cAgIcPH6JLly6oVKkSNDQ0MGTIEJXiHzRoENzc3CCXy+Hi4pJnGyEEpk+fjkqVKkEul6N06dL4/fffVT5GRFR0/ivXpHf99ddf0NLSyvcak+v169fo0aMHqlevDi0tLXh7e+fZLiMjA2PHjoWtrS3kcjns7OywYsUKlY4PEREREcCkFBEVE2lpaahRowbmz5+fbxtPT088fPhQeq1bt06qe/DgAdzd3VGhQgWcOXMG+/fvx5UrV9CjRw+pTadOnRS2f/jwITw8PNCoUSNYWFgAePslzdzcHOPGjUONGjXU2gc/Pz906tQp3/rBgwdj2bJlmD59Oq5fv46dO3fi22+/VWsMIioa/5VrUq4XL16ge/fuaNq06Udjz87Ohp6eHgYNGgR3d/d823Xs2BGHDx/G8uXLERsbi3Xr1qFy5cof7Z+IiIgol9bnDoCIqCB4eXnBy8vrg23kcjmsrKzyrNu9eze0tbUxf/58aGi8zdcvWrQIzs7OiIuLQ4UKFaCnpwc9PT1pmydPnuDIkSNYvny5VGZnZ4fZs2cDgFozBubMmSP1GRMTo1R/7do1LFy4EJcvX5a+9Nnb26vcPxEVrf/KNSlX37590aVLF2hqairN2nqfvr4+Fi5cCODt7KoXL14otdm/fz+OHz+O27dvw9TUFMDb6x8RERGROjhTioi+GseOHYOFhQUqV66Mn3/+Gc+ePZPqMjIyoKOjI335AyB92Tt16lSe/a1evRolSpTADz/8ULiBA9i1axccHBywe/du2Nvbw87ODr169UJSUlKhj01EhaOorkmhoaG4ffs2JkyYUGCx79y5EzVr1sS0adNQunRpVKpUCb/88gvS09MLbAwiIiIq/piUIqKvgqenJ1avXo3Dhw9j6tSpOH78OLy8vJCdnQ0A+P7775GYmIjg4GBkZmbi+fPnGD16NIC360TlZfny5ejSpYvCTIXCcvv2bdy9exebNm3C6tWrsXLlSkRFRRVJQoyICl5RXZNu3ryJ0aNHY82aNdDSKrgJ8rdv38apU6dw+fJlbNu2DbNmzcLmzZvRr1+/AhuDiIiIij/evkdEXwUfHx/p5+rVq8PZ2Rnly5fHsWPH0LRpU1StWhWrVq3CsGHDEBAQAE1NTQwaNAiWlpYKMxVyRURE4Nq1a/jzzz+LJP6cnBxkZGRg9erVqFSpEoC3X0Dd3NwQGxvLdVyIvjBFcU3Kzs5Gly5dEBQUJF03CkpOTg5kMhnCwsJgbGwMAJg5cyZ++OEHLFiwoEiS9URERPTl40wpIvoqOTg4wMzMDHFxcVJZly5dkJiYiISEBDx79gyBgYF48uQJHBwclLZftmwZXFxc4ObmViTxWltbQ0tLS+GLpZOTEwDg3r17RRIDERWewrgmvXz5EpGRkRgwYAC0tLSgpaWFiRMn4uLFi9DS0sKRI0c+OV5ra2uULl1aSkgBb69JQgjcv3//k/slIiKirwuTUkT0Vbp//z6ePXsGa2trpTpLS0sYGBhgw4YN0NXVRbNmzRTqU1NTsXHjRvj7+xdVuKhfvz7evHmDW7duSWU3btwAANja2hZZHERUOArjmmRkZIRLly4hOjpaevXt2xeVK1dGdHQ0ateu/cnx1q9fHw8ePEBqaqpUduPGDWhoaKBMmTKf3C8RERF9XXj7HhEVC6mpqQozDOLj4xEdHQ1TU1OYmpoiKCgI7du3h5WVFW7duoWRI0eiQoUK8PDwkLaZN28e6tWrBwMDA4SHh2PEiBGYMmUKSpYsqTDWhg0b8ObNG/z44495xhIdHS3F9OTJE0RHR0NHRwdVqlQBAGzbtg0BAQG4fv26tE1cXBxSU1ORmJiI9PR0qY8qVapAR0cH7u7u+Oabb+Dn54dZs2YhJycH/fv3R7NmzQr8thwi+vf+C9ckDQ0NVKtWTaHMwsICurq6CuXz5s3Dtm3bcPjwYans6tWryMzMRFJSEl6+fCldk1xcXAC8ncU1adIk9OzZE0FBQXj69ClGjBgBPz8/3rpHREREKmNSioiKhcjISDRp0kR6P2zYMACAr68vFi5ciJiYGKxatQovXryAjY0NmjdvjkmTJkEul0vbnD17FhMmTEBqaiocHR2xePFidOvWTWms5cuXo127dkpfDHO5urpKP0dFRWHt2rWwtbXFnTt3AADJycmIjY1V2KZXr144fvy4Uh/x8fGws7ODhoYGdu3ahYEDB6Jhw4bQ19eHl5cXZsyYod6BIqIi8V+6Jn3M06dPFWZhAkCLFi1w9+5d6X3uNUkIAQBSomzgwIGoWbMmSpUqhY4dO+K33377pBiIiIjo6yQTuf93Qf9KSkoKjI2NkZycDCMjo88dDhFRsWE3es/nDoEKwZ0pLT93CERERERUSFTNkXBNKSIiIiIiIiIiKnJMShERERERERERUZHjmlJEVGh421Xxw1uu6EvGa1Lxw2sSERHRl40zpYiIiIiIiIiIqMgxKUVEREREREREREWOSSkiIiIiIiIiIipyTEoREREREREREVGRY1KKiIiIiIiIiIiKHJNSRERERERERERU5JiUIiIiIiIiIiKiIsekFBERERERERERFTkmpYiIiIiIiIiIqMgxKUVEREREREREREWOSSkiIiIiIiIiIipyTEoREREREREREVGRY1KKiIiIiIiIiIiKHJNSRERERERExdiJEyfQunVr2NjYQCaTYfv27fm27du3L2QyGWbNmqVUt2fPHtSuXRt6enowMTGBt7e3Qv2gQYPg5uYGuVwOFxcXpe0DAwMhk8mUXvr6+irtx7Nnz1CmTBnIZDK8ePFCKj916hTq16+PUqVKQU9PD46OjggJCVGpTyL6vD5rUupjF8cePXooXbA8PT0V2iQlJaFr164wMjJCyZIl4e/vj9TUVIU2MTExaNCgAXR1dVG2bFlMmzZNKZZNmzbB0dERurq6qF69Ovbu3Vvg+0tERERERFTU0tLSUKNGDcyfP/+D7bZt24a///4bNjY2SnVbtmxBt27d0LNnT1y8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NOjr68PR0RH29vawt7eHk5MTSpUqhenTpxdGjEREREREREREVMxoqbuBsbExTp8+jfDwcFy8eBF6enpwdnZGw4YNCyM+IiIiIiIiIiIqhtROSgGATCZD8+bN0bx584KOh4iIiIiIiIiIvgJqJ6UmTpz4wfrx48d/cjBERERERERERPR1UDsptW3bNoX3WVlZiI+Ph5aWFsqXL8+kFBERERERERERfZTaSakLFy4olaWkpKBHjx743//+VyBBERERERERERFR8ab20/fyYmRkhKCgIPz6668F0R0RERERERERERVzBZKUAoDk5GQkJycXVHdERERERERERFSMqX373pw5cxTeCyHw8OFD/Pnnn/Dy8iqwwIiIiIiIiIiIqPhSOykVEhKi8F5DQwPm5ubw9fVFQEBAgQVGRERERERERETFl9pJqfj4+MKIg4iIiIiIiIiIviIFtqYUERERERERERGRqlSaKdWuXTuVO9y6desnB0NERERERERERF8HlWZKGRsbSy8jIyMcPnwYkZGRUn1UVBQOHz4MY2NjtQY/ceIEWrduDRsbG8hkMmzfvl2hXgiB8ePHw9raGnp6enB3d8fNmzcV2iQlJaFr164wMjJCyZIl4e/vj9TUVIU2MTExaNCgAXR1dVG2bFlMmzZNKZZNmzbB0dERurq6qF69Ovbu3avWvhARERERERERkepUSkqFhoZKL0tLS3Ts2BHx8fHYunUrtm7ditu3b8PHxwdmZmZqDZ6WloYaNWpg/vz5edZPmzYNc+bMwaJFi3DmzBno6+vDw8MDr1+/ltp07doVV65cQXh4OHbv3o0TJ06gT58+Un1KSgqaN28OW1tbREVFITg4GIGBgViyZInU5vTp0+jcuTP8/f1x4cIFeHt7w9vbG5cvX1Zrf4iIiIiIiIiISDVqL3S+YsUKnDp1CpqamlKZpqYmhg0bhnr16iE4OFjlvry8vODl5ZVnnRACs2bNwrhx49C2bVsAwOrVq2FpaYnt27fDx8cH165dw/79+3Hu3DnUrFkTADB37ly0aNEC06dPh42NDcLCwpCZmYkVK1ZAR0cHVatWRXR0NGbOnCklr2bPng1PT0+MGDECADBp0iSEh4dj3rx5WLRokbqHiIiIiIiIiIiIPkLthc7fvHmD69evK5Vfv34dOTk5BRIU8PYpf4mJiXB3d5fKjI2NUbt2bURERAAAIiIiULJkSSkhBQDu7u7Q0NDAmTNnpDYNGzaEjo6O1MbDwwOxsbF4/vy51ObdcXLb5I5DREREREREREQFS+2ZUj179oS/vz9u3bqFb7/9FgBw5swZTJkyBT179iywwBITEwEAlpaWCuWWlpZSXWJiIiwsLBTqtbS0YGpqqtDG3t5eqY/cOhMTEyQmJn5wnLxkZGQgIyNDep+SkqLO7hERERERERERfdXUTkpNnz4dVlZWmDFjBh4+fAgAsLa2xogRIzB8+PACD/C/avLkyQgKCvrcYRARERERERERfZHUvn1PQ0MDI0eOREJCAl68eIEXL14gISEBI0eOVFhn6t+ysrICADx69Eih/NGjR1KdlZUVHj9+rFD/5s0bJCUlKbTJq493x8ivTW59XgICApCcnCy9/vnnH3V3kYiIiIiIiIjoq6V2UirXkydPEBMTg5iYGDx9+rQgYwIA2Nvbw8rKCocPH5bKUlJScObMGdStWxcAULduXbx48QJRUVFSmyNHjiAnJwe1a9eW2pw4cQJZWVlSm/DwcFSuXBkmJiZSm3fHyW2TO05e5HI5jIyMFF5ERERERERERKQatZNSaWlp8PPzg7W1NRo2bIiGDRvC2toa/v7+ePXqlVp9paamIjo6GtHR0QDeLm4eHR2Ne/fuQSaTYciQIfjtt9+wc+dOXLp0Cd27d4eNjQ28vb0BAE5OTvD09ETv3r1x9uxZ/PXXXxgwYAB8fHxgY2MDAOjSpQt0dHTg7++PK1euYMOGDZg9ezaGDRsmxTF48GDs378fM2bMwPXr1xEYGIjIyEgMGDBA3cNDREREREREREQqUDspNWzYMBw/fhy7du2Sbt/bsWMHjh8/rvaaUpGRkXB1dYWrq6vUt6urK8aPHw8AGDlyJAYOHIg+ffqgVq1aSE1Nxf79+6Grqyv1ERYWBkdHRzRt2hQtWrTAd999hyVLlkj1xsbGOHjwIOLj4+Hm5obhw4dj/Pjx6NOnj9SmXr16WLt2LZYsWYIaNWpg8+bN2L59O6pVq6bu4SEiIiIiIiIiIhWovdD5li1bsHnzZjRu3Fgqa9GiBfT09NCxY0csXLhQ5b4aN24MIUS+9TKZDBMnTsTEiRPzbWNqaoq1a9d+cBxnZ2ecPHnyg206dOiADh06fDhgIiIiIiIiIiIqEGrPlHr16hUsLS2Vyi0sLNS+fY+IiIiIiIiIiL5Oaiel6tatiwkTJuD169dSWXp6OoKCgj64MDgREREREREREVEutW/fmzVrFjw9PVGmTBnUqFEDAHDx4kXo6uriwIEDBR4gEREREREREREVP2onpapXr46bN28iLCwM169fBwB07twZXbt2hZ6eXoEHSERERERERERExY9aSamsrCw4Ojpi9+7d6N27d2HFRERERERERERExZxaa0ppa2srrCVFRERERERERET0KdRe6Lx///6YOnUq3rx5UxjxEBERERERERHRV0DtNaXOnTuHw4cP4+DBg6hevTr09fUV6rdu3VpgwRERERERERERUfGkdlKqZMmSaN++fWHEQkREREREREREXwm1k1KhoaGFEQcREREREREREX1FVF5TKicnB1OnTkX9+vVRq1YtjB49Gunp6YUZGxERERERERERFVMqJ6V+//13jBkzBgYGBihdujRmz56N/v37F2ZsRERERERERERUTKmclFq9ejUWLFiAAwcOYPv27di1axfCwsKQk5NTmPEREREREREREVExpHJS6t69e2jRooX03t3dHTKZDA8ePCiUwIiIiIiIiIiIqPhSOSn15s0b6OrqKpRpa2sjKyurwIMiIiIiIiIiIqLiTeWn7wkh0KNHD8jlcqns9evX6Nu3L/T19aWyrVu3FmyERERERERERERU7KiclPL19VUq+/HHHws0GCIiIiIiIiIi+jqonJQKDQ0tzDiIiIiIiIiIiOgrovKaUkRERERERERERAWFSSkiIiIiIiIiIipyTEoREREREREREVGRY1KKiIiIiIiIiIiKHJNSRERERERERERU5D4pKfXnn3+ifv36sLGxwd27dwEAs2bNwo4dOwo0OCIiIiIiIiIiKp7UTkotXLgQw4YNQ4sWLfDixQtkZ2cDAEqWLIlZs2YVdHxERERERERERFQMqZ2Umjt3LpYuXYqxY8dCU1NTKq9ZsyYuXbpUoMEREREREREREVHxpHZSKj4+Hq6urkrlcrkcaWlpBRIUEREREREREREVb2onpezt7REdHa1Uvn//fjg5ORVETEREREREREREVMxpqbvBsGHD0L9/f7x+/RpCCJw9exbr1q3D5MmTsWzZssKIkYiIiIiIiIiIihm1k1K9evWCnp4exo0bh1evXqFLly6wsbHB7Nmz4ePjUxgxEhERERERERFRMaN2UgoAunbtiq5du+LVq1dITU2FhYVFQcdFRERERERERETFmNprSv3222+Ij48HAJQoUYIJKSIiIiIiIiIiUpvaSalNmzahQoUKqFevHhYsWICnT58WRlxERERERERERFSMqZ2UunjxImJiYtC4cWNMnz4dNjY2aNmyJdauXYtXr14VRoxERERERERERFTMqJ2UAoCqVavijz/+wO3bt3H06FHY2dlhyJAhsLKyKuj4iIiIiIiIiIioGPqkpNS79PX1oaenBx0dHWRlZRVETEREREREREREVMx9UlIqPj4ev//+O6pWrYqaNWviwoULCAoKQmJiYkHHR0RERERERERExZCWuhvUqVMH586dg7OzM3r27InOnTujdOnShREbEREREREREREVU2onpZo2bYoVK1agSpUqhREPERERERERERF9BdROSv3++++FEQcREREREREREX1FVFpTatiwYUhLS5N+/tCroNnZ2UEmkym9+vfvDwBo3LixUl3fvn0V+rh37x5atmyJEiVKwMLCAiNGjMCbN28U2hw7dgzffPMN5HI5KlSogJUrVxb4vhARERERERER0VsqzZS6cOGC9GS9Cxcu5NtOJpMVTFTvOHfuHLKzs6X3ly9fRrNmzdChQweprHfv3pg4caL0vkSJEtLP2dnZaNmyJaysrHD69Gk8fPgQ3bt3h7a2Nv744w8Abxdub9myJfr27YuwsDAcPnwYvXr1grW1NTw8PAp8n4iIiIiIiIiIvnYqJaWOHj2a589FwdzcXOH9lClTUL58eTRq1EgqK1GiBKysrPLc/uDBg7h69SoOHToES0tLuLi4YNKkSRg1ahQCAwOho6ODRYsWwd7eHjNmzAAAODk54dSpUwgJCWFSioiIiIiIiIioEKh0+95/RWZmJtasWQM/Pz+FWVlhYWEwMzNDtWrVEBAQgFevXkl1ERERqF69OiwtLaUyDw8PpKSk4MqVK1Ibd3d3hbE8PDwQERGRbywZGRlISUlReBERERERERERkWpUminVrl07lTvcunXrJwfzMdu3b8eLFy/Qo0cPqaxLly6wtbWFjY0NYmJiMGrUKMTGxkpxJCYmKiSkAEjvExMTP9gmJSUF6enp0NPTU4pl8uTJCAoKKsjdIyIiIiIiIiL6aqiUlDI2Ni7sOFSyfPlyeHl5wcbGRirr06eP9HP16tVhbW2Npk2b4tatWyhfvnyhxRIQEKCwsHtKSgrKli1baOMRERERERERERUnKiWlQkNDCzuOj7p79y4OHTr00ZlYtWvXBgDExcWhfPnysLKywtmzZxXaPHr0CACkdaisrKyksnfbGBkZ5TlLCgDkcjnkcvkn7QsRERERERER0dfuk9aUiomJwebNm7F582ZcunSpoGPKU2hoKCwsLNCyZcsPtouOjgYAWFtbAwDq1q2LS5cu4fHjx1Kb8PBwGBkZoUqVKlKbw4cPK/QTHh6OunXrFuAeEBERERERERFRLpVmSuU6e/Ys/P39cfXqVQghAAAymQxVq1bF8uXLUatWrUIJMicnB6GhofD19YWW1v+FfOvWLaxduxYtWrRAqVKlEBMTg6FDh6Jhw4ZwdnYGADRv3hxVqlRBt27dMG3aNCQmJmLcuHHo37+/NNOpb9++mDdvHkaOHAk/Pz8cOXIEGzduxJ49ewplf4iIiIiIiIiIvnYqz5S6evUqmjZtCj09PaxZswbnz5/H+fPn8eeff0Iul6Np06a4evVqoQR56NAh3Lt3D35+fgrlOjo6OHToEJo3bw5HR0cMHz4c7du3x65du6Q2mpqa2L17NzQ1NVG3bl38+OOP6N69OyZOnCi1sbe3x549exAeHo4aNWpgxowZWLZsGTw8PAplf4iIiIiIiIiIvnYqz5QKDAxEs2bNsGXLFshkMqncxcUFnTt3Rrt27RAYGIiNGzcWeJDNmzeXZma9q2zZsjh+/PhHt7e1tcXevXs/2KZx48a4cOHCJ8dIRERERERERESqUzkpdfToUezbt08hIZVLJpNhzJgxaNGiRYEGR0RERERERERExZPKt++9fPkSlpaW+dZbWVnh5cuXBRIUEREREREREREVbyonpWxtbXH27Nl868+cOQNbW9sCCYqIiIiIiIiIiIo3lZNSPj4+GDZsGC5fvqxUd+nSJfzyyy/o1KlTgQZHRERERERERETFk8prSgUEBODQoUNwcXFBs2bN4OTkBCEErl27hkOHDuHbb7/FmDFjCjNWIiIiIiIiIiIqJlROSunq6uLo0aMICQnBunXrpKfeVapUCb/99huGDh0KuVxeaIESEREREREREVHxoXJSCgB0dHQwatQojBo1qrDiISIiIiIiIiKir4DKa0oREREREREREREVFCaliIiIiIiIiIioyDEpRURERERE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nz+/QkJC/uvLAwAAAAAAeGo5dSi1adMmdenSRTt27NC6deuUkJCgWrVq6c6dO6mO69Chg6Kiomw/Y8eOte1LSkrSq6++qvj4eG3fvl0zZ85USEiIhgwZYjsmMjJSr776qqpXr679+/erR48eat++vdasWWO3awUAAAAAAHiauDm6gD+zevXqVL+HhIQoc+bM2rNnj1588UXbdm9vbwUEBPzuOdauXaujR48qNDRUWbJkUalSpTRixAj169dPw4YNk4eHh6ZMmaI8efLos88+kyQVKVJEW7du1fjx4xUUFPTfXSAAAAAAAMBTyqlXSv3WrVu3JEnPPPNMqu3fffedMmbMqOLFi2vAgAG6e/eubV94eLhKlCihLFmy2LYFBQUpJiZGR44csR3z0ksvpTpnUFCQwsPD/6tLAQAAAAAAeKo59UqplKxWq3r06KHnn39exYsXt21/6623lCtXLj377LM6ePCg+vXrpxMnTmjx4sWSpOjo6FSBlCTb79HR0X96TExMjO7du6c0adI8VM/9+/d1//592+8xMTGP5kIBAAAAAACeAo9NKNWlSxcdPnxYW7duTbX9nXfesf25RIkSypo1q2rWrKnTp08rX758/1k9o0eP1vDhw/+z8wMAAAAAADzJHovb97p27aoffvhBGzZsUPbs2f/02IoVK0qSTp06JUkKCAjQ5cuXUx2T/HtyH6o/OsbPz+93V0lJ0oABA3Tr1i3bz/nz5//5hQEAAAAAADylnDqUMsaoa9euWrJkidavX688efL85Wv2798vScqaNaskqVKlSjp06JCuXLliO2bdunXy8/NT0aJFbceEhYWlOs+6detUqVKlP/x7PD095efnl+oHAAAAAAAAf49Th1JdunTR7NmzNWfOHPn6+io6OlrR0dG6d++eJOn06dMaMWKE9uzZo7Nnz2r58uVq1aqVXnzxRQUGBkqSatWqpaJFi6ply5Y6cOCA1qxZo8GDB6tLly7y9PSUJHXq1ElnzpxR3759dfz4cQUHB+v7779Xz549HXbtAAAAAAAATzKnDqW+/PJL3bp1S9WqVVPWrFltP/Pnz5ckeXh4KDQ0VLVq1VLhwoXVq1cvNWrUSCtWrLCdw9XVVT/88INcXV1VqVIltWjRQq1atdKHH35oOyZPnjxauXKl1q1bp5IlS+qzzz7TtGnTFBQUZPdrBgAAAAAA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X77cFiAkJCQ4smw4if79+9s+v4wxZuPGjcZisZjPP//ctm3hwoWmRo0aplq1aubcuXO/ex6CqafXsWPHTIUKFR66uyA0NNQEBASY3bt3p9p+4MABkyZNGrN27Vp7lgknR08pOJ2kpCRJUu7cuZWQkKC4uDgdOnRIMTExtr4JBQoUUJcuXVSnTh316dNHy5YtS3WOlA0/8XQy/9+PbOfOnZo/f76sVqs++eQT9e3bV++8846mT58uSSpZsqTmz5+v06dPq27duo4sGU7GxcVFP//8swYPHixJWrRokerUqaPr16+revXqqly5srp166YrV67YGnR6eHjIy8uLfhpIJS4uTk2bNlX58uX17bffqmHDhrYnMHbv3l2tW7fWli1bNHnyZJ08eVL+/v5auHChcubMqYIFCzq4ejgzi8Uif39/pU2bVvv379fgwYNVo0YNderUSdWqVdOxY8f03HPPqWvXrqpbt65cXV2VlJTEexR05swZTZ48WTVq1LD188mTJ48GDBigYcOGadKkSZKkRo0aqXPnznJxcdHbb7/9u/026Un29MqfP79CQ0OVP39+/fTTT7JarZIe9PxNnz69vv/+e12+fNl2fI4cOVS4cGHbcYAkekrBefx22WdiYqJJTEw0o0aNMi4uLuaLL74wMTExqY65dOmSGTduHN/QIJXklXILFy40mTJlMv379zeHDh2y7R86dKhxdXVNtWLq0KFD5tSpU3avFc7LarWasWPHmpIlS5p69eoZNzc3M2vWLNv+GTNmmKpVq5p69eqZU6dOmZMnT5oPPvjAPPvssw/d5gBcuHDBPPvss8bT09N89dVXxpgHq1qSTZgwwZQuXdr07NnTdrs6t1chpd9rT7B7926TO3duU61aNePj42M6dOhg5syZY7Zu3WoKFy5sli5d6qhy8RjYs2ePKVSokKlUqZLtts4LFy6YDz74wPj6+pqJEyfajl20aJEpUaKE6dq1q6PKhRO7evWqKVKkiClTpozts+urr74yPj4+plevXmbz5s3m0qVLpl+/fiZr1qyp+rwChFJwCikn3jt27DBr1qwxGzdutG0bMmSIcXFxMcHBwbZgqk2bNraJuzEsHUZq27dvN+nSpTNfffXV796mMHToUJMmTZqHGuYDv9WqVStjsVhM7dq1U223Wq1m5syZplq1asZisZgiRYqY3Llzmz17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dVW7du1sX9glB56APdDoHP9KyklY165dtXTpUiUlJcnX11eurq46dOiQ3NzcbI31AMBR7t69q4SEBKVLl87RpeAxdOnSJf3888+yWCzKkycPjadhk3KOExMTo4EDByp37tzq3bu3li9frlatWum9995TRESENm/erDFjxqhFixa210dERGjIkCHatGmTVq5cqdKlSzvqUuAEfu9L3P79+8vV1VV169bVyy+/rE8++USdOnWSMUYhISG6ceOGunfvLnd3d0m/9r4Dku3bt09NmjRR5syZNWXKFBUvXty2b8qUKerZs6cGDBiggQMHcrsn7I5QCv9ayslYeHi4rl27pjt37ujNN9+Uq6srH4wAAOCJtGHDBl26dEnNmzdXx44dlSFDBr333nu6d++ekpKS9Morr6hLly7q0aOHlixZombNmsnd3V2zZs1SgwYNJElxcXFat26dihQpovz58zv4iuBIKQOp06dPK02aNMqUKZN27dqlKlWqSJLmz5+vN998U5J0584dNWzYUMWLF9dnn33msLrxeDh48KBat26tChUqqHv37ipWrJht3zfffKMXX3xRBQoUcGCFeFoRSuGR+KNb8wikAADAk8YYo9u3b6tRo0aKj4+Xn5+fNm3apC1bttieqjd79mxNnDhRa9euVbp06bR27Vp99dVXqlOnjt5++23mR0gl5Ze8/fv317Jly3T16lUVK1bM1r/u3Xff1fTp0/X8888rJiZGffr00ZUrV7Rz505Wt+Bv2bdvn9q3b68yZcqoZ8+eKlq0qKNLAmh0jt9ntVp/d/sfZZjJgdRvX8eECwAAPGksFot8fX01b948RUdH64cfftDAgQNtgZQkubu769y5c9qyZYvu3r2riRMnKnfu3GrXrp1tJTkgPZg/JwdS8+bN08yZMzVmzBh99tlnqlixonr06KFdu3Zp7NixateunSpVqqRWrVopPj5eP/30k9zc3BhP+FtKly6tadOm6eDBgxoxYoSOHz/u6JIAGp3jYSlXPR0+fFh3795V5syZlTt3blkslj9c/ZTyqTPHjx9Xzpw5bY9lBwAAeNK4uLgoX758ypIli8LCwpQ9e3Y1b95cklS0aFG9+OKLatWqldKnT6+0adNq8eLFslgsMsbwxR1skufPGzduVFhYmPr27avXX39d0oM+Zblz51b//v01d+5cHTlyROfPn5ef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",
"text/plain": [
"<Figure size 1200x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Plot salvato come: .//2024-12-07_07-35_plots/variety_comparison_avg_olive_production_kg_ha.png\n"
]
},
{
"data": {
"image/png": "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72FSUpJ69uypv/76K9WwOy3atGmj3bt364svvtDly5etLuOT7s1iTUxM1HvvvZfiuXfv3k1zcNS+fXvduXNH3bt31x9//JFiHTx7e/sU78nkyZOfaPZiSEiIPD099eGHH6b6Gv/xxx/m92n97Nrb26tly5ZasmRJqkH1/WM+7nsOAP8FzJgCgCygcOHCmjdvntq0aaPAwEB16NBBJUqUUEJCgnbu3KlFixapY8eOkqTSpUsrLCxMn376qXkJy969ezVnzhw1b95ctWrVytDaXFxctHr1aoWFhalixYr6/vvvtXLlSg0ZMsS8bCM0NFTjx49XgwYN9NJLL+nSpUuaOnWqihQp8tBLwx7m2rVrypcvn1q1aqXSpUvL3d1d69ev1759+8x/RXd0dNTo0aPVqVMn1ahRQ+3atdPFixc1adIkFSxY8JG3mE+rPHnyaPDgwXr33XfVoEEDNW3aVNHR0Zo2bZqef/55cy2b9Jg3b555+/nUNGrUSA4ODpo7d665MH2bNm308ssva9q0aQoJCUmxgPOAAQP09ddfq169enr99dfl5uamzz//XAUKFNCVK1ceOQugevXqGjdunPr27atSpUqpY8eO8vPz008//aTPPvtMSUlJWrVqlTmzyJbS896PHDlSoaGhqlq1qjp37qwrV65o8uTJKl68uK5fv2728/Ly0osvvqjJkyfLYrGocOHCioyMTHXtmY8//lhVq1ZVuXLl9OqrryogIECnT5/WypUrzWCwfPnykqS33npLbdu2laOjo5o0aWL+0Xu/QYMG6ZtvvlHDhg3Vu3dv5cyZU3PmzNGpU6e0ZMmSx76s7O8KFSqkEiVKaP369ercuXOK7fv379f777+for1mzZpat27dE4VkxYoVU+HChdWvXz+dO3dOnp6eWrJkyQPXxVq/fr0Mw1CzZs0eOm7lypWVI0cOhYWFqXfv3rJYLPrqq69SBBt2dnaaPn26mjRpojJlyqhTp07m+X306FFz/awHadKkiWrVqqW33npLp0+fVunSpbV27VotX75cffr0MWfkjBgxQlu3blVoaKj8/f116dIlTZs2Tfny5TMXt69fv758fX1VpUoV+fj46Pjx45oyZYpCQ0Mfeomlk5OTFi9erDp16qhq1arq1KmTKlSooKtXr2revHk6ePCg3nzzTavL4tKjdevW6tevn/r166ecOXOm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UVFRmf/iAQAAAMC/xMiRI/X888/Lw8ND3t7eat68uaKjo636xMTE6JVXXpGvr6/c3NxUrlw5LVmyxKrPzz//rGbNmil37tzy9PRU1apVtWnTJqs+GzZsUOXKlc07qA8cODDNN6kyDEMNGzaUxWLRt99+a7UtLRNdkPke+1K+jPD3u/d98MEHmj59unbv3q18+fJp5syZmjdvnmrXri3pXmARGBio3bt3q1KlSlq7dq2OHTum9evXy8fHR2XKlNF7772ngQMHavjw4XJyctKMGTMUEBCgjz76SJIUGBio7du3a8KECQoJCfnHj/lpN336dElSzZo1rdpnzZqljh07SpKio6M1ePBgXblyRQULFtRbb72liIgIq/579+7VO++8o+vXr6tYsWL65JNP9Morr5jb7e3tFRkZqZ49eyo4OFhubm4KCwvTiBEjzD43b95UdHS07ty5I+neOmrz58/X8OHDFR8fr4CAAEVERFitOyVJjRo10m+//WY+Llu2rKR7P/AAAAAA4GmwZcsWhYeH6/nnn9fdu3c1ZMgQ1a9fX8eOHZObm5skqUOHDrp69apWrFih3Llza968eWrdurX2799v/h3VuHFjPfvss9q4caNcXV01ceJENW7cWCdPnpSvr69++OEHNWrUSG+99Za+/PJLnTt3Tj169FBiYqLGjRv3yDonTpwoi8WSoj15oouvr6927typCxcuqEOHDnJ0dNSHH36YsS8WHspi/Ev+mk5MTNSiRYsUFhamQ4cOKSYmRnXq1NFff/1lzoKRJH9/f/Xp00cREREaNmyYVqxYYTVb5dSpUypUqJAOHjyosmXLqnr16ipXrpwmTpxo9pk1a5b69Olj3lnwUeLi4uTl5aXY2Fh5enpm0BED/30FB620dQnIJKdHhf7j++R8yro4n5BRbHEuAQDS5o8//pC3t7e2bNmi6tWrS5Lc3d01ffp0q0kEuXLl0ujRo9W1a1ddvnxZefLk0datW1WtWjVJ0rVr1+Tp6al169apbt26GjJkiNatW6d9+/aZY3z33Xdq3bq1Ll26JA8PjwfWFBUVpcaNG2v//v3y8/PTsmXL1Lx5c0nS999/r8aNG+v8+fPmHdxnzJihgQMH6o8//pCTk1NGv0RPlfTkKI99KV9CQoJ+//13nTlzxuorvQ4fPix3d3c5OzurR48eWrZsmYKCghQTEyMnJyerUEq6t6ZQTEyMpHvTApNPoPu3J297WJ+4uDiry8fuFx8fr7i4OKsvAAAAAACQuuSJHzlz5jTbKleurAULFujKlStKSkrS/Pnzdfv2bfMKmly5cqlo0aL68ssvdePGDd29e1effPKJvL29Vb58eUn3/j53cXGx2perq6tu376tAwcOPLCemzdv6qWXXtLUqVNTvQHWrl27VLJkSau8ICQkRHFxcebyQvhnpPtSvl9++UWdO3fWzp07rdoNw5DFYlFiYmK6xitatKiioqIUGxurxYsXKywsTFu2bElvWRlq5MiRevfdd21aAwAAAAAA/wVJSUnq06ePqlSpohIlSpjtCxcuVJs2bZQrVy45ODgoW7ZsWrZsmYoUKSJJslgsWr9+vZo3by4PDw/zxlOrV6821/kNCQnRxIkT9c0336h169aKiYkxl2i5cOHCA2uKiIhQ5cqV1axZs1S3p2WiC/4Z6Q6mOnbsKAcHB0VGRsrPzy/VazXTw8nJyTwpy5cvr3379mnSpElq06aNEhISdPXqVatZUxcvXjTTTl9fX+3du9dqvOS79t3f5+938rt48aI8PT3l6uqaak2DBw+2WlcoLi5O+fPnf6Lj/Dfh8oasicsbAAAAANhCeHi4jhw5ou3bt1u1v/3227p69arWr1+v3Llz69tvv1Xr1q21bds2lSxZUoZhKDw8XN7e3tq2bZtcXV31+eefq0mTJtq3b5/8/PxUv359jR07Vj169NArr7wiZ2dnvf3229q2bZvs7FK/CGzFihXauHGjDh069E8cPp5QuoOpqKgoHThwQMWKFcuMepSUlKT4+HiVL19ejo6O2rBhg1q2bCnp3qLYZ86cUXBwsCQpODhYH3zwgS5duiRvb29J0rp16+Tp6amgoCCzz6pVq6z2sW7dOnOM1Dg7O5t3bgMAAAAAAKnr1auXIiMjtXXrVuXLl89sP3nypKZMmaIjR46oePHikqTSpUtr27Ztmjp1qmbMmKGNGzcqMjJSf/31l7kO0bRp07Ru3TrNmTNHgwYNkiT17dtXERERunDhgnLkyKHTp09r8ODBKlSoUKo1bdy4USdPnkyxNFDLli1VrVo1bd68OU0TXfDPSHcwFRQUpMuXL2fIzgcPHqyGDRuqQIECunbtmubNm6fNmzdrzZo18vLyUpcuXdS3b1/lzJlTnp6eev311xUcHKxKlSpJkurXr6+goCC98sorGjNmjGJiYjR06FCFh4ebwVKPHj00ZcoUDRgwQJ07d9bGjRu1cOFCrVzJrCEAAAAAAB6HYRh6/fXXtWzZMm3evFkBAQFW22/evClJKWY12dvbKykp6aF97OzszD7JLBaL8ubNK0n65ptvlD9/fpUrVy7V2gYNGqSuXbtatZUsWVITJkxQkyZNJKVtogv+GekOpkaPHq0BAwboww8/VMmSJeXo6Gi1PT13rbt06ZI6dOigCxcuyMvLS6VKldKaNWtUr149SdKECRNkZ2enli1bKj4+XiEhIZo2bZr5fHt7e0VGRqpnz54KDg6Wm5ubwsLCzOtNJSkgIEArV65URESEJk2apHz58unzzz9XSEhIeg8dAAAAAADo3uV78+bN0/Lly+Xh4WGuy+Tl5SVXV1cVK1ZMRYoUUffu3TVu3DjlypVL3377rdatW6fIyEhJ98KhHDlyKCwsTMOGDZOrq6s+++wznTp1SqGh/7dUydixY9WgQQPZ2dlp6dKlGjVqlBYuXCh7e3tJ0rlz51SnTh19+eWXeuGFF+Tr65vqrKcCBQqYAVpaJrrgn5HuYKpu3bqSpDp16li1P87i5zNnznzodhcXF02dOlVTp059YB9/f/8Ul+r9Xc2aNbm2FAAAAACADDJ9+nRJMu+wl2zWrFnq2LGjHB0dtWrVKg0aNEhNmjTR9evXVaRIEc2ZM0eNGjWSJOXOnVurV6/WW2+9pdq1a+vOnTsqXry4li9frtKlS5tjfv/99/rggw8UHx+v0qVLa/ny5WrYsKG5/c6dO4qOjjZnYKVFWia64J+R7mBq06ZNmVEHAAAAAAD4jzAM45F9nn32WS1ZsuShfSpUqKA1a9Y8tM/GjRsfur1gwYKPrCe17WmZ6ILMl+5gqkaNGplRBwAAAAAAAJ4y6Q6mJOnq1auaOXOmjh8/LkkqXry4OnfuLC8vrwwtDgAAAAAAAFlXuoOp/fv3KyQkRK6urnrhhRckSePHj9cHH3ygtWvXPnBVfAAAAAAAkDEKDuJO81nV6VGhj+6UhaQ7mIqIiFDTpk312WefycHh3tPv3r2rrl27qk+fPtq6dWuGFwkAAAAAAICs57FmTN0fSkmSg4ODBgwYoAoVKmRocQAAAAAAAMi67NL7BE9PT505cyZF+9mzZ+Xh4ZEhRQEAAAAAACDrS3cw1aZNG3Xp0kULFizQ2bNndfbsWc2fP19du3ZVu3btMqNGAAAAAAAAZEHpvpRv3Lhxslgs6tChg+7evStJcnR0VM+ePTVq1KgMLxAAAAAAAABZU7qDKScnJ02aNEkjR47UyZMnJUmFCxdWtmzZMrw4AAAAAAAAZF3pDqaSZcuWTSVLlszIWgAAAAAAAPAUSdMaUy1atFBcXJz5/cO+AAAAAAD/PiNHjtTzzz8vDw8PeXt7q3nz5oqOjk7Rb9euXapdu7bc3Nzk6emp6tWr69atW+b2pk2bqkCBAnJxcZGfn59eeeUVnT9/3tweHR2tWrVqycfHRy4uLipUqJCGDh2qO3fuPLS+3r17q3z58nJ2dlaZMmVSbH/ccQH8u6VpxpSXl5csFouke3flS/4eAAAAAPDfsGXLFoWHh+v555/X3bt3NWTIENWvX1/Hjh2Tm5ubpHuhVIMGDTR48GBNnjxZDg4O+uGHH2Rn939zGmrVqqUhQ4bIz89P586dU79+/dSqVSvt3LlT0r01iDt06KBy5cope/bs+uGHH9StWzclJSXpww8/fGiNnTt31p49e/Tjjz+m2PYk4wL490pTMDVr1izz+9mzZ2dWLQAAAACATLJ69Wqrx7Nnz5a3t7cOHDig6tWrS5IiIiLUu3dvDRo0yOxXtGhRq+dFRESY3/v7+2vQoEFq3ry57ty5I0dHRxUqVEiFChWy6rN582Zt27btofV9/PHHkqQ//vgj1WDqcccF8O+Wpkv57le7dm1dvXo1RXtcXJxq166dETUBAAAAADJZbGysJClnzpySpEuXLmnPnj3y9vZW5cqV5ePjoxo1amj79u0PHOPKlSuaO3euKleuLEdHx1T7nDhxQqtXr1aNGjUytP7MGhfAPyvdwdTmzZuVkJCQov327dsk1QAAAADwH5CUlKQ+ffqoSpUqKlGihCTp119/lSQNHz5c3bp10+rVq1WuXDnVqVNHv/zyi9XzBw4cKDc3N+XKlUtnzpzR8uXLU+yjcuXKcnFx0bPPPqtq1appxIgRGVJ7Zo0LwDbSHEz9+OOP5nTKY8eOmY9//PFHHTp0SDNnztQzzzyTaYUCAAAAADJGeHi4jhw5ovnz55ttSUlJkqTu3burU6dOKlu2rCZMmKCiRYvqiy++sHp+//79dejQIa1du1b29vbq0KGDDMOw6rNgwQIdPHhQ8+bN08qVKzVu3LgMqT2zxgVgG2laY0qSypQpI4vFIovFkuole66urpo8eXKGFgcAAAAAyFi9evVSZGSktm7dqnz58pntfn5+kqSgoCCr/oGBgTpz5oxVW+7cuZU7d24999xzCgwMVP78+bV7924FBwebffLnz2+Ol5iYqFdffVVvvvmm7O3tn6j+zBoXgG2kOZg6deqUDMNQoUKFtHfvXuXJk8fc5uTkJG9vb34QAAAAAMC/lGEYev3117Vs2TJt3rxZAQEBVtsLFiyovHnzKjo62qr9559/VsOGDR84bvJMq/j4+If2uXPnjpKSkjL078bMGhfAPyfNwZS/v7+k//uhAwAAAAD47wgPD9e8efO0fPlyeXh4KCYmRpLk5eUlV1dXWSwW9e/fX++8845Kly6tMmXKaM6cOfrpp5+0ePFiSdKePXu0b98+Va1aVTly5NDJkyf19ttvq3DhwuZsqblz58rR0VElS5aUs7Oz9u/fr8GDB6tNmzbmAunLli3T4MGD9dNPP5n1nThxQtevX1dMTIxu3bqlqKgoSfdmRjk5OaVpXAD/PWkOppKNHDlSPj4+6ty5s1X7F198oT/++EMDBw7MsOIAAAAAABlj+vTpkqSaNWtatc+aNUsdO3aUJPXp00e3b99WRESErly5otKlS2vdunUqXLiwJClbtmxaunSp3nnnHd24cUN+fn5q0KCBhg4dKmdnZ0mSg4ODRo8erZ9//lmGYcjf31+9evVSRESEuc/Y2NgUM7O6du2qLVu2mI/Lli0r6d7VOwULFkzTuAD+eyzG31eoe4SCBQtq3rx5qly5slX7nj171LZtW506dSpDC/w3iIuLk5eXl2JjY+Xp6Wnrcp5YwUErbV0CMsHpUaH/+D45l7IuzidkJM4nZBRbnEsA8G/F77qsKyv8vktPjpLmu/Ili4mJMRfFu1+ePHl04cKF9A4HAAAAAACAp1S6g6n8+fNrx44dKdp37NihvHnzZkhRAAAAAAAAyPrSvcZUt27d1KdPH925c0e1a9eWJG3YsEEDBgzQm2++meEFAgAAAEBWweVXWVNWuPQKsJV0B1P9+/fXn3/+qddee00JCQmSJBcXFw0cOFCDBw/O8AIBAAAAAACQNaU7mLJYLBo9erTefvttHT9+XK6urnr22WfNOzAAAAAAAAAAaZHuYCqZu7u7nn/++YysBQAAAAAAAE+RdAdTtWrVksVieeD2jRs3PlFBAAAAAAAAeDqkO5gqU6aM1eM7d+4oKipKR44cUVhYWEbVBQAAAAAAgCwu3cHUhAkTUm0fPny4rl+//sQFAQAAAAAA4Olgl1EDvfzyy/riiy8yajgAAAAAAABkcRkWTO3atUsuLi4ZNRwAAAAAAACyuHRfyteiRQurx4Zh6MKFC9q/f7/efvvtDCsMAAAAAAAAWVu6gykvLy+rx3Z2dipatKhGjBih+vXrZ1hhAAAAAAAAyNrSHUzNmjUrM+oAAAAAAADAUybD1pgCAAAAAAAA0iNNM6Zy5Mghi8WSpgGvXLnyRAUBAAAAAADg6ZCmGVMTJ07UhAkTNGHCBA0dOlSSFBISouHDh2v48OEKCQmRJBY/BwAAADLYyJEj9fzzz8vDw0Pe3t5q3ry5oqOjrfp0795dhQsXlqurq/LkyaNmzZrpp59+supz5swZhYaGKlu2bPL29lb//v119+5dc/vmzZtlsVhSfMXExDy0vh9//FHVqlWTi4uL8ufPrzFjxlhtP3r0qFq2bKmCBQvKYrFo4sSJT/aCAACylDTNmAoLCzO/b9mypUaMGKFevXqZbb1799aUKVO0fv16RUREZHyVAAAAwFNqy5YtCg8P1/PPP6+7d+9qyJAhql+/vo4dOyY3NzdJUvny5dW+fXsVKFBAV65c0fDhw1W/fn2dOnVK9vb2SkxMVGhoqHx9fbVz505duHBBHTp0kKOjoz788EOr/UVHR8vT09N87O3t/cDa4uLiVL9+fdWtW1czZszQ4cOH1blzZ2XPnl2vvvqqJOnmzZsqVKiQXnzxRf5WAACkkO7Fz9esWaPRo0enaG/QoIEGDRqUIUUBAAAAuGf16tVWj2fPni1vb28dOHBA1atXlyQzBJKkggUL6v3331fp0qV1+vRpFS5cWGvXrtWxY8e0fv16+fj4qEyZMnrvvfc0cOBADR8+XE5OTubzvb29lT179jTVNnfuXCUkJOiLL76Qk5OTihcvrqioKI0fP96s6fnnn9fzzz8vSfy9AABIId2Ln+fKlUvLly9P0b58+XLlypUrQ4oCAAAAkLrY2FhJUs6cOVPdfuPGDc2aNUsBAQHKnz+/JGnXrl0qWbKkfHx8zH4hISGKi4vT0aNHrZ5fpkwZ+fn5qV69etqxY8dDa9m1a5eqV69uFWyFhIQoOjpaf/3112MdHwDg6ZLuGVPvvvuuunbtqs2bN6tixYqSpD179mj16tX67LPPMrxAAAAAAPckJSWpT58+qlKlikqUKGG1bdq0aRowYIBu3LihokWLat26dWZgFBMTYxVKSTIfJ68h5efnpxkzZqhChQqKj4/X559/rpo1a2rPnj0qV65cqvXExMQoICDggePmyJHjyQ8aAJClpTuY6tixowIDA/Xxxx9r6dKlkqTAwEBt377dDKoAAAAAZLzw8HAdOXJE27dvT7Gtffv2qlevni5cuKBx48apdevW2rFjh1xcXNI0dtGiRVW0aFHzceXKlXXy5ElNmDBBX331VYYdAwAA90t3MCVJFStW1Ny5czO6FgAAAAAP0KtXL0VGRmrr1q3Kly9fiu1eXl7y8vLSs88+q0qVKilHjhxatmyZ2rVrJ19fX+3du9eq/8WLFyVJvr6+D9znCy+8kGoIlszX19ccJz3jAgCQ7LGCqcTERH377bc6fvy4JKl48eJq2rSp7O3tM7Q4AAAA4GlnGIZef/11LVu2TJs3b05x6dyDnmMYhuLj4yVJwcHB+uCDD3Tp0iXzLnvr1q2Tp6engoKCHjhOVFSU/Pz8Hrg9ODhYb731lu7cuSNHR0dz3KJFi3IZHwAgTdIdTJ04cUKhoaH6/fffzam+I0eOVP78+bVy5UoVLlw4w4sEAAAAnlbh4eGaN2+eli9fLg8PD3NNKC8vL7m6uurXX3/VggULVL9+feXJk0e///67Ro0aJVdXVzVq1EiSVL9+fQUFBemVV17RmDFjFBMTo6FDhyo8PFzOzs6SpIkTJyogIEDFixfX7du39fnnn2vjxo1au3atWcuUKVO0bNkybdiwQZL00ksv6d1331WXLl00cOBAHTlyRJMmTdKECRPM5yQkJOjYsWPm9+fOnVNUVJTc3d1VpEiRf+Q1BAD8e6X7rny9e/dWoUKFdPbsWR08eFAHDx7UmTNnFBAQoN69e2dGjQAAAMBTa/r06YqNjVXNmjXl5+dnfi1YsECS5OLiom3btqlRo0YqUqSI2rRpIw8PD+3cudOcHWVvb6/IyEjZ29srODhYL7/8sjp06KARI0aY+0lISNCbb76pkiVLqkaNGvrhhx+0fv161alTx+xz+fJlnTx50nzs5eWltWvX6tSpUypfvrzefPNNDRs2TK+++qrZ5/z58ypbtqzKli1rrn9VtmxZde3aNbNfOgDAf0C6Z0xt2bJFu3fvtro9ba5cuTRq1ChVqVIlQ4sDAAAAnnaGYTx0e968ebVq1apHjuPv7//QfgMGDNCAAQMeOsbw4cM1fPhwq7ZSpUpp27ZtD3xOwYIFH3kMAICnV7pnTDk7O+vatWsp2q9fv27ejhYAAAAAAAB4lHQHU40bN9arr76qPXv2mIsq7t69Wz169FDTpk0zo0YAAAAAAABkQem+lO/jjz9WWFiYgoODzTtv3L17V02bNtWkSZMyvEAAAADAlgoOWmnrEpAJTo8KtXUJAAClM5gyDENxcXGaP3++zp07p+PHj0uSAgMDuaMGAAAAAAAA0iXdwVSRIkV09OhRPfvss4RRAAAAAAAAeGzpWmPKzs5Ozz77rP7888/MqgcAAAAAAABPiXQvfj5q1Cj1799fR44cyYx6AAAAAAAA8JRI9+LnHTp00M2bN1W6dGk5OTnJ1dXVavuVK1cyrDgAAAAAAABkXekOpiZMmCCLxZIZtQAAAAAAAOApku5gql27drp7967c3Nwyox4AAAAAAAA8JdK8xtQff/yhhg0byt3dXZ6enqpUqZJOnDiRmbUBAAAAAAAgC0tzMDVw4EBFRUVpxIgRGjdunK5evapu3bplZm0AAAAAAADIwtJ8Kd+6des0e/ZshYSESJIaN26swMBAxcfHy9nZOdMKBAAAAAAAQNaU5hlT58+fV+nSpc3Hzz77rJydnXXhwoVMKQwAAAAAAABZW5qDKUmyt7dP8dgwjAwtCAAAAAAAAE+HNF/KZxiGnnvuOVksFrPt+vXrKlu2rOzs/i/funLlSsZWCAAAAAAAgCwpzcHUrFmzMrMOAAAAAAAAPGXSHEyFhYVlZh0AAAAAAAB4yqRrjSkAAAAAAAAgoxBMAQAAAAAAwCYIpgAAAAAAAGATBFMAAAAAAACwCYIpAAAAAAAA2ESa7srXt2/fNA84fvz4NPcdOXKkli5dqp9++kmurq6qXLmyRo8eraJFi5p9bt++rTfffFPz589XfHy8QkJCNG3aNPn4+Jh9zpw5o549e2rTpk1yd3dXWFiYRo4cKQeH/zu8zZs3q2/fvjp69Kjy58+voUOHqmPHjmmuFQAAAAAAABkrTcHUoUOH0jSYxWJJ1863bNmi8PBwPf/887p7966GDBmi+vXr69ixY3Jzc5MkRUREaOXKlVq0aJG8vLzUq1cvtWjRQjt27JAkJSYmKjQ0VL6+vtq5c6cuXLigDh06yNHRUR9++KEk6dSpUwoNDVWPHj00d+5cbdiwQV27dpWfn59CQkLSVTMAAAAAAAAyRpqCqU2bNmXKzlevXm31ePbs2fL29taBAwdUvXp1xcbGaubMmZo3b55q164tSZo1a5YCAwO1e/duVapUSWvXrtWxY8e0fv16+fj4qEyZMnrvvfc0cOBADR8+XE5OTpoxY4YCAgL00UcfSZICAwO1fft2TZgwgWAKAAAAAADARv5Va0zFxsZKknLmzClJOnDggO7cuaO6deuafYoVK6YCBQpo165dkqRdu3apZMmSVpf2hYSEKC4uTkePHjX73D9Gcp/kMf4uPj5ecXFxVl8AAAAAAADIWGmaMdWiRQvNnj1bnp6eatGixUP7Ll269LEKSUpKUp8+fVSlShWVKFFCkhQTEyMnJydlz57dqq+Pj49iYmLMPveHUsnbk7c9rE9cXJxu3bolV1dXq20jR47Uu++++1jHAQAAAAAAgLRJUzDl5eVlrh/l5eWVKYWEh4fryJEj2r59e6aMnx6DBw+2WvA9Li5O+fPnt2FFAAAAAAAAWU+agqlZs2al+n1G6dWrlyIjI7V161bly5fPbPf19VVCQoKuXr1qNWvq4sWL8vX1Nfvs3bvXaryLFy+a25L/m9x2fx9PT88Us6UkydnZWc7OzhlybAAAAAAAAEjdY60x9eOPP2rx4sVavHixDh8+/Ng7NwxDvXr10rJly7Rx40YFBARYbS9fvrwcHR21YcMGsy06OlpnzpxRcHCwJCk4OFiHDx/WpUuXzD7r1q2Tp6engoKCzD73j5HcJ3kMAAAAAAAA/PPSNGMq2d69e9WlSxcdO3ZMhmFIkiwWi4oXL66ZM2fq+eefT9fOw8PDNW/ePC1fvlweHh7mmlBeXl5ydXWVl5eXunTpor59+ypnzpzy9PTU66+/ruDgYFWqVEmSVL9+fQUFBemVV17RmDFjFBMTo6FDhyo8PNyc9dSjRw9NmTJFAwYMUOfOnbVx40YtXLhQK1euTFe9AAAAAAAAyDhpnjF17Ngx1alTR66urvr666918OBBHTx4UF999ZWcnZ1Vp04dHTt2LF07nz59umJjY1WzZk35+fmZXwsWLDD7TJgwQY0bN1bLli1VvXp1+fr6Wi2wbm9vr8jISNnb2ys4OFgvv/yyOnTooBEjRph9AgICtHLlSq1bt06lS5fWRx99pM8//1whISHpqhcAAAAAAAAZJ80zpoYPH6569eppyZIl5kLoklSmTBm1a9dOLVq00PDhw7Vw4cI07zx51tXDuLi4aOrUqZo6deoD+/j7+2vVqlUPHadmzZo6dOhQmmsDAAAAAABA5kpzMLVp0yZ9//33VqFUMovFoiFDhqhRo0YZWhwAAAAAAACyrjRfynft2jX5+Pg8cLuvr6+uXbuWIUUBAAAAAAAg60tzMOXv76+9e/c+cPuePXvk7++fIUUBAAAAAAAg60tzMNW2bVv17dtXR44cSbHt8OHD6tevn9q0aZOhxQEAAAAAACDrSvMaU4MHD9b69etVpkwZ1atXT4GBgTIMQ8ePH9f69ev1wgsvaMiQIZlZKwAAAAAAALKQNAdTLi4u2rRpkyZMmKBvvvlGW7ZskSQ999xzev/99xURESFnZ+dMKxQAAAAAAABZS5qDKUlycnLSwIEDNXDgwMyqBwAAAAAAAE+JNK8xBQAAAAAAAGQkgikAAAAAAADYBMEUAAAAAAAAbIJgCgAAAAAAADZBMAUAAAAAAACbSNdd+SSpb9++qbZbLBa5uLioSJEiatasmXLmzPnExQEAAAAAACDrSncwdejQIR08eFCJiYkqWrSoJOnnn3+Wvb29ihUrpmnTpunNN9/U9u3bFRQUlOEFAwAAAAAAIGtI96V8zZo1U926dXX+/HkdOHBABw4c0O+//6569eqpXbt2OnfunKpXr66IiIjMqBcAAAAAAABZRLqDqbFjx+q9996Tp6en2ebl5aXhw4drzJgxypYtm4YNG6YDBw5kaKEAAAAAAADIWtIdTMXGxurSpUsp2v/44w/FxcVJkrJnz66EhIQnrw4AAAAAAABZ1mNdyte5c2ctW7ZMv//+u37//XctW7ZMXbp0UfPmzSVJe/fu1XPPPZfRtQIAAAAAACALSffi55988okiIiLUtm1b3b17994gDg4KCwvThAkTJEnFihXT559/nrGVAgAAAAAAIEtJdzDl7u6uzz77TBMmTNCvv/4qSSpUqJDc3d3NPmXKlMmwAgEAAAAAAJA1pftSvq+//lo3b96Uu7u7SpUqpVKlSlmFUgAAAAAAAEBapDuYioiIkLe3t1566SWtWrVKiYmJmVEXAAAAAAAAsrh0B1MXLlzQ/PnzZbFY1Lp1a/n5+Sk8PFw7d+7MjPoAAAAAAACQRaU7mHJwcFDjxo01d+5cXbp0SRMmTNDp06dVq1YtFS5cODNqBAAAAAAAQBaU7sXP75ctWzaFhITor7/+0m+//abjx49nVF0AAAAAAADI4tI9Y0qSbt68qblz56pRo0Z65plnNHHiRP3vf//T0aNHM7o+AAAAAAAAZFHpnjHVtm1bRUZGKlu2bGrdurXefvttBQcHZ0ZtAAAAAAAAyMLSHUzZ29tr4cKFCgkJkb29vdW2I0eOqESJEhlWHAAAAAAAALKudAdTc+fOtXp87do1ffPNN/r888914MABJSYmZlhxAAAAAAAAyLoea40pSdq6davCwsLk5+encePGqXbt2tq9e3dG1gYAAAAAAIAsLF0zpmJiYjR79mzNnDlTcXFxat26teLj4/Xtt98qKCgos2oEAAAAAABAFpTmGVNNmjRR0aJF9eOPP2rixIk6f/68Jk+enJm1AQAAAAAAIAtL84yp77//Xr1791bPnj317LPPZmZNAAAAAAAAeAqkecbU9u3bde3aNZUvX14VK1bUlClTdPny5cysDQAAAAAAAFlYmoOpSpUq6bPPPtOFCxfUvXt3zZ8/X3nz5lVSUpLWrVuna9euZWadAAAAAAAAyGLSfVc+Nzc3de7cWdu3b9fhw4f15ptvatSoUfL29lbTpk0zo0YAAAAAAABkQekOpu5XtGhRjRkzRr///ru++eabjKoJAAAAAAAAT4EnCqaS2dvbq3nz5lqxYkVGDAcAAAAAAICnQIYEUwAAAAAAAEB6EUwBAAAAAADAJgimAAAAAAAAYBMEUwAAAAAAALAJgikAAAAAAADYBMEUAAAAAAAAbIJgCgAAAAAAADZBMAUAAAAAAACbIJgCAAAAAACATRBMAQAAAAAAwCYIpgAAAAAAAGATBFMAAAAAAACwCYIpAAAAAAAA2ATBFAAAAAAAAGyCYAoAAAAAAAA2QTAFAAAAAAAAmyCYAgAAAAAAgE0QTAEAAAAAAMAmCKYAAAAAAABgEwRTAAAAAAAAsAmCKQAAAAAAANgEwRQAAAAAAABsgmAKAAAAAAAANkEwBQAAAAAAAJsgmAIAAAAAAIBNEEwBAAAAAADAJgimAAAAAAAAYBMEUwAAAAAAALAJgikAAAAAAADYBMEUAAAAAAAAbIJgCgAAAAAAADZBMAUAAAAAAACbIJgCAAAAAACATdg0mNq6dauaNGmivHnzymKx6Ntvv7XabhiGhg0bJj8/P7m6uqpu3br65ZdfrPpcuXJF7du3l6enp7Jnz64uXbro+vXrVn1+/PFHVatWTS4uLsqfP7/GjBmT2YcGAAAAAACAR7BpMHXjxg2VLl1aU6dOTXX7mDFj9PHHH2vGjBnas2eP3NzcFBISotu3b5t92rdvr6NHj2rdunWKjIzU1q1b9eqrr5rb4+LiVL9+ffn7++vAgQMaO3ashg8frk8//TTTjw8AAAAAAAAP5mDLnTds2FANGzZMdZthGJo4caKGDh2qZs2aSZK+/PJL+fj46Ntvv1Xbtm11/PhxrV69Wvv27VOFChUkSZMnT1ajRo00btw45c2bV3PnzlVCQoK++OILOTk5qXjx4oqKitL48eOtAiwAAAAAAAD8s/61a0ydOnVKMTExqlu3rtnm5eWlihUrateuXZKkXbt2KXv27GYoJUl169aVnZ2d9uzZY/apXr26nJyczD4hISGKjo7WX3/99Q8dDQAAAAAAAP7OpjOmHiYmJkaS5OPjY9Xu4+NjbouJiZG3t7fVdgcHB+XMmdOqT0BAQIoxkrflyJEjxb7j4+MVHx9vPo6Li3vCowEAAAAAAMDf/WtnTNnSyJEj5eXlZX7lz5/f1iUBAAAAAABkOf/aYMrX11eSdPHiRav2ixcvmtt8fX116dIlq+13797VlStXrPqkNsb9+/i7wYMHKzY21vw6e/bskx8QAAAAAAAArPxrg6mAgAD5+vpqw4YNZltcXJz27Nmj4OBgSVJwcLCuXr2qAwcOmH02btyopKQkVaxY0eyzdetW3blzx+yzbt06FS1aNNXL+CTJ2dlZnp6eVl8AAAAAAADIWDYNpq5fv66oqChFRUVJurfgeVRUlM6cOSOLxaI+ffro/fff14oVK3T48GF16NBBefPmVfPmzSVJgYGBatCggbp166a9e/dqx44d6tWrl9q2bau8efNKkl566SU5OTmpS5cuOnr0qBYsWKBJkyapb9++NjpqAAAAAAAASDZe/Hz//v2qVauW+Tg5LAoLC9Ps2bM1YMAA3bhxQ6+++qquXr2qqlWravXq1XJxcTGfM3fuXPXq1Ut16tSRnZ2dWrZsqY8//tjc7uXlpbVr1yo8PFzly5dX7ty5NWzYML366qv/3IECAAAAAAAgBZsGUzVr1pRhGA/cbrFYNGLECI0YMeKBfXLmzKl58+Y9dD+lSpXStm3bHrtOAAAAAAAAZLx/7RpTAAAAAAAAyNoIpgAAAAAAAGATBFMAAAAAAACwCYIpAAAAAAAA2ATBFAAAAAAAAGyCYAoAAAAAAAA2QTAFAAAAAAAAmyCYAgAAAAAAgE0QTAEAAAAAAMAmCKYAAAAAAABgEwRTAAAAAAAAsAmCKQAAAAAAANgEwRQAAAAAAABsgmAKAAAAAAAANkEwBQAAAAAAAJsgmAIAAAAAAIBNEEwBAAAAAADAJgimAAAAAAAAYBMEUwAAAAAAALAJgikAAAAAAADYBMEUAAAAAAAAbIJgCgAAAAAAADZBMAUAAAAAAACbIJgCAAAAAACATRBMAQAAAAAAwCYIpgAAAAAAAGATBFMAAAAAAACwCYIpAAAAAAAA2ATBFAAAAAAAAGyCYAoAAAAAAAA2QTAFAAAAAAAAmyCYAgAAAAAAgE0QTAEAAAAAAMAmCKYAAAAAAABgEwRTAAAAAAAAsAmCKQAAAAAAANgEwRQAAAAAAABsgmAKAAAAAAAANkEwBQAAAAAAAJsgmAIAAAAAAIBNEEwBAAAAAADAJgimAAAAAAAAYBMEUwAAAAAAALAJgikAAAAAAADYBMEUAAAAAAAAbIJgCgAAAAAAADZBMAUAAAAAAACbIJgCAAAAAACATRBMAQAAAAAAwCYIpgAAAAAAAGATBFMAAAAAAACwCYIpAAAAAAAA2ATBFAAAAAAAAGyCYAoAAAAAAAA2QTAFAAAAAAAAmyCYAgAAAAAAgE0QTAEAAAAAAMAmCKYAAAAAAABgEwRTAAAAAAAAsAmCKQAAAAAAANgEwRQAAAAAAABsgmAKAAAAAAAANkEwBQAAAAAAAJsgmAIAAAAAAIBNEEwBAAAAAADAJgimAAAAAAAAYBMEUwAAAAAAALAJgikAAAAAAADYBMEUAAAAAAAAbIJgCgAAAAAAADZBMAUAAAAAAACbIJgCAAAAAACATTxVwdTUqVNVsGBBubi4qGLFitq7d6+tSwIAAAAAAHhqPTXB1IIFC9S3b1+98847OnjwoEqXLq2QkBBdunTJ1qUBAAAAAAA8lZ6aYGr8+PHq1q2bOnXqpKCgIM2YMUPZsmXTF198YevSAAAAAAAAnkoOti7gn5CQkKADBw5o8ODBZpudnZ3q1q2rXbt2pegfHx+v+Ph483FsbKwkKS4uLvOL/Qckxd+0dQnIBLY4PzmXsi7OJ2QkzidkFFv9vxjnU9bE+YSMxO86ZKSskD0kH4NhGI/s+1QEU5cvX1ZiYqJ8fHys2n18fPTTTz+l6D9y5Ei9++67Kdrz58+faTUCT8proq0rQFbC+YSMxPmEjMK5hIzE+YSMxPmEjJSVzqdr167Jy8vroX2eimAqvQYPHqy+ffuaj5OSknTlyhXlypVLFovFhpUhPeLi4pQ/f/7/196dx+WU/v8Df913eyqSpca+hCxZsoxtJGObsRs7WWLs26CSnQyDsZXGNsmuIaJhSFFCJkuyU0Sh7KaFtNzv3x++nSnM9vnhLr2ef+k659y9b4/rcc7V+1zX+0J8fDzMzMy0HQ7lc+xP9L6wL9H7xP5E7xP7E71P7E/0PrE/5T8iguTkZHz22Wf/eG6BSEwVK1YMOjo6ePDgQa72Bw8ewNLS8q3zDQwMYGBgkKutSJEiHzJE+oDMzMx486L3hv2J3hf2JXqf2J/ofWJ/oveJ/YneJ/an/OWfZkplKxDFz/X19WFnZ4fg4GClTaPRIDg4GI0bN9ZiZEREREREREREBVeBmDEFAN999x0GDhyI+vXro2HDhli+fDlSU1MxePBgbYdGRERERERERFQgFZjEVK9evfDo0SPMnDkTiYmJqFOnDg4ePPhWQXT6dBgYGGDWrFlvLcsk+l+wP9H7wr5E7xP7E71P7E/0PrE/0fvE/vRpU8m/2buPiIiIiIiIiIjoPSsQNaaIiIiIiIiIiCjvYWKKiIiIiIiIiIi0gokpIiIiIiIiIiLSCiamiIiIiIiIiIhIK5iYIiIiIiIiIiIirWBiioiIiIiIiIiItIKJKSIiIqI8SkS0HQIRERHRB8XEFOUbGo3mrbasrCwtREKfMv4RSO/Du+5XRP9G9j3o+fPnePnyJVJSUrQcEeVXvA8RUX7EsXjBpKvtAIj+DY1GA7X6dR41NjYWWVlZKFeuHPT09LQcGeVHIgKVSoXz58/j2rVr0NfXR+XKlWFrawuVSqUcJ/o3svtLXFwcUlNTYWJigs8++0zbYVE+lN2X9u/fDw8PD9y/fx82NjYYMmQI2rZtq+3wKB/JOW7y9/fHo0ePAAC9e/eGqakpAPBZR/9Zzn71JvYn+q+y+8zt27eRkZGBV69eoWbNmuxHBZRKmJKkPC7nQ3DOnDnw9fXFy5cvoVKp4O3tjUaNGsHIyEjLUVJ+4+fnh6FDh6JKlSqIjo5G6dKl8c0332DmzJkAOMCifye7n+zevRuTJk2Cjo4O7t69i379+mHAgAGwt7fXdoiUz+zbtw99+vTBtGnTUKpUKRw5cgS//vorfHx80LFjR22HR/lAzueXq6srfHx8UL16dZw/fx6NGzfGpEmT4ODg8Na5RH8n53h8z549SExMhIigdevWsLa2BsD+RP9edl/x8/PD1KlTkZaWhszMTLRo0QJLlixBqVKltB0ifWxClE/MnDlTrKysxM/PT54+fSrNmzeXSpUqyY4dOyQtLU3b4VE+cvHiRSlWrJh4eXlJWlqaXL9+Xdzd3aVs2bIyb948bYdH+UBWVpby77CwMClUqJCsXLlSLl++LNu3b5cWLVpIhw4dJDQ0VItRUn5z48YNadCggXh5eYmIyIMHD6R06dJSrVo1MTU1FX9/fxER0Wg02gyT8olly5ZJ6dKl5cyZMyIisnXrVlGpVNKqVSsJCgpSzmN/ov9i0qRJUqxYMfniiy/E1NRUGjRoIEuWLFH6EfsT/VuhoaFibGwsa9eulZCQEDl48KCUKlVKvvjiC0lMTBQR9qeChDWmKF84e/YsDh8+DB8fH3Tr1g3h4eG4ePEizM3N4eTkBH9/f7x48ULbYVI+ER0djRIlSqBv374wMDBAlSpVMGzYMAwZMgT+/v64efOmtkOkPOrIkSMAkGspQ2BgIJo3b46xY8eievXq6N27N2bNmoVnz57B19cXAGu90L9jYGCAhg0bonfv3rh79y6aN2+Or776Cv7+/rC1tYWjoyN27drFGQn0j54/f47Y2FjMnj0bdnZ28PPzw+jRo+Hu7o64uDi4ubnh8OHDAMD+RP+an58ftm3bhoMHDyIkJAT379+HnZ0d9u7dizVr1gBgf6J3i46ORnp6eq62sLAwtGjRAsOGDUOLFi3Qtm1bnDt3Djdu3ICzszMA9qeChIkpyhdMTU0xaNAgtGnTBkePHsWQIUOwcOFCnD59Gra2tpg2bRp8fX3fuuERvYuZmRmePn2KmJgYpa1EiRLo2rUrrly5glu3bmkxOsqrdu3aBXd3d6VWSzaVSoXk5GSkp6crBTtbtmwJJycn+Pj44OHDh39Zk4Mop7Jly2LWrFkwNzfH4sWLUatWLSxduhRVq1aFjY0N9PX1MXnyZCQlJbE4LOXyZvLb1NQUPXr0QOfOnXHx4kW4urpi9uzZcHNzw6JFixAZGYnp06cjIiJCSxFTfnT79m2ULl0aNWvWhIjAxMQE8+bNg6WlJXbu3Knt8CiP8vf3R9WqVXHgwAFkZGQAeL2U79atW3j27JlyXlpaGkqUKAFPT08cO3YMt27d4rOuAOFImfKcd80sqFKlCjp37gwAWL16NXr27Ilhw4YhMzMTZcqUQUpKCrZu3Qp9ff2PHS7lce96oFlaWqJIkSL45Zdf8ODBA6W9TJkyqFatGme30Ds1bdoUmzZtQvHixREbG6u0V6xYEREREYiIiMj1Zq9KlSooV64cE+b0Ttn3pvj4eFy+fBmZmZkAgOLFiyMtLQ3nz59HuXLlUKhQIQCvZ1MtXLgQ586dg5mZGd8ikyJn7Z+NGzfi4MGDyMrKQpMmTVCsWDGcPHkSlpaW6NevHwAgNTUV3bt3R61atVC/fn1thk75RPYu2Do6Onj16hUyMjKgVquRmZmJYsWKwc3NDUePHsW5c+e0HCnlRV26dEG3bt0wbNgw/Pbbb0hPT4dKpULPnj0RHR2N7du3AwAMDQ0BAPr6+tDR0YGRkRGfdQUIE1OUp+QcXAUHByM0NFR5yJUsWRJJSUmIjY2FlZUV1Go1dHV1oaOjg5MnTyIwMFCboVMeJP9XWPH48eNYtWoVPDw8kJmZiRo1amDy5Mnw8vLC4sWLERYWhoSEBPzwww9ITExEjRo1tB065TEiAisrK5QuXRpXrlxBr169MG/ePADAwIED0b17d3Tt2hWhoaFISkoC8Lo4rK6urpJYIMopu+hrixYt0LJlS7Ro0QJ79uxBWloaDA0NUa9ePezduxfr1q3DuHHjsGfPHjg4OKBo0aLaDp3ymOxxk7OzM1xdXXH9+nWkpKQo7Y8ePUJSUhISExORnJyMX375BY0bN8b69euhVqv5Mobe8maf0NHRAQC0bdsWV65cwYIFCwAAurqvN3jPyMhAjRo1YGZm9nEDpTwv+6XLrl270KpVKwwaNAgHDx5ERkYGateujc6dO8PLywvbtm0DAKSnp+PUqVMoXLgwDAwMtBk6fWTclY/yDMmxk8ekSZOwdetWaDQalC5dGr1791bWGvfq1QuhoaFwdHTE8ePHkZSUhKioKOjo6PztNrZUMO3Zswf9+/dHlSpVcP/+fRQpUgSHDx9G2bJlsWHDBqxYsQLx8fEoWbIkUlNT4e/vj7p162o7bMrD7t27hxkzZuDGjRvo2LEjXFxckJaWBicnJ/j5+aFq1aowNTXFlStXEBwczP5EipzPuStXrqBr16749ttvYWdnh++//x7Pnj3D8OHDMXDgQERHR2PBggU4fvw4LCwssG7dOvYl+kvr16/HtGnTcOjQIdSsWVNJGABATEwMmjVrhkKFCiErKwuFCxfGmTNnoKenp8WIKa/KeZ/y9vZGdHQ0SpUqhfbt26NSpUrYtGkThg0bhuHDh6NHjx4wNzeHi4sLkpKSEBoaynE4vSUzM1O5J/Xq1QuBgYHYuHEjOnXqhAsXLsDDwwN+fn747LPPUKRIEVy9ehVBQUF85hUwTExRnvDmYL1fv37w9vbGy5cvERgYiA0bNsDR0VGZodC/f388efIERYoUwaZNm6Cnp8ekFCmy+9OrV68wZswYNGvWDD169EB8fDyGDRuG+Ph4BAUFoVKlSrh9+zYePnyI1NRUVKtWDVZWVtoOn/KB+Ph4pc5dz549MXnyZADAzp07cf/+fYgIOnbsiEqVKmk5UsoLnj59mmumU1RUFI4cOYL4+HgsXboUwOuBe//+/REdHY2xY8diwIAB0NHRQWJiIgwMDGBubq6t8CkfGDduHF6+fIl169YhKyvrrZd1t2/fVoqdDx48GLq6urn+WCQCcq9ccHV1hbe3N6ytrZGcnAwjIyP8/PPPqFmzJvz9/TF69GioVCoYGRnB0tISR44c4Xic/pVvvvkGQUFB2LRpEzp16oTHjx/j+vXrCAgIQNmyZdG6dWtYW1trO0z6yJiYojxl/fr1CAoKQokSJbBy5UoAQGJiInx8fODl5YVBgwZh7ty5AF7XSMheIsPBFUVERKBhw4bKz2FhYRg1ahTKly+P+fPnw9bWFgCQkJCA3r17486dOzhy5AgqVqyorZApH8hOcp49exaXLl1CZmYmmjRpAhsbGyQkJGD+/PmIiIhA9+7d4eLiou1wKQ9asmQJHj58iPnz5yvLppo3b46IiAh8+eWXuZahp6enw9HREbGxsXB0dMSQIUNgZGSkxegpL8r5Mg94PQayt7dH6dKlsWPHDgB/JhjS09Nx6dIl1KtXL9dnZCeviLLlTCjdvHkTCxcuxOjRo1GnTh0cPXoUy5YtQ3R0NHx9fWFra4uEhAQ8evQImZmZqFOnjlJziuNxAv68T50/fx7Xrl2Dvr4+ypUrBzs7OwC5k1Pt2rVjnWBijSnSrpx50YyMDISHh+PIkSOIi4tT2i0tLTF48GCMGjUKmzdvxoQJEwBASUqJCB+CBdzBgwfRtm3bXDt7mJqaQq1WIzAwUBloaTQaWFlZwdfXF5UqVUK9evVw+/ZtLUVN+YFKpcKuXbvQpk0bLF26FIsWLULt2rWxevVqWFlZYdq0aWjQoAECAgIwe/ZsbYdLeZCxsTGcnJygp6eHV69eQU9PDwcOHEC7du0QHR2N3bt3KzU49PX1sWnTJlhYWMDPzw+vXr3ScvSU12g0GiUpdevWLSQnJ0NXVxfdunVDVFQUgoODAfxZdyouLg4LFixAZGRkrs9hUoqy7dmzB8CffWbHjh1KLakyZcoAeL3TrIuLC6ytrdG7d29ERUXBysoKtra2qFevnpJ053icsmXXUWzZsiWWLVuGoUOHYvDgwZg5cyaA1zWnvvzySwwdOhR79+7lRjEECJGWXL9+XV68eCEiIrNnz5ZLly7JrVu3ZPz48WJiYiKrVq3KdX5iYqK4ublJ165dRaPRaCNkysMSEhJERCQ+Pl5pO3/+vNSsWVPq1asnqampIiJK37l37558/fXXEh0d/fGDpXzj4sWLUrx4cfH29pbk5GRJSkqSefPmia6urqxbt05EROLi4sTR0VG+/PJLefLkiZYjprwqLCxMxowZI1evXhURkSdPnkizZs2kSZMmEhAQIFlZWcq5r169krt372orVMqjcvaRmTNnSocOHSQ4OFhERMLDw6V58+bSvXt32b9/v4iI3L59Wzp16iRNmzaVzMxMrcRMedvatWulcePGkpWVpfSRTZs2SYsWLcTc3Fzu3buX6/wTJ05Ily5dpGjRonLz5k1thEx5WM77zMWLF6VYsWLi5eUlaWlpcv36dXF3d5eyZcvKrFmzlPPatWsn5cuXl+TkZC1ETHkJE1P00Wk0Grl48aKoVCpZv369jB49WoyMjOTKlSsiInLz5k0ZP368VKtWTVavXp3r2qdPnyqJBSan6E03btwQlUolP/30k9J2/vx5qVatmjRo0EBJhGb3HQ7U6U1v3leCg4OlRo0akpCQkOvY7NmzxdjYWElsJiQkKMlRKthyJg/S09OVf69bt04qVaokEydOlOvXr4uIyOPHj6Vp06bSpEkT2b9/f65rif6Kq6urlChRQnbv3i2PHj1S2o8cOSIdO3YUCwsLKVOmjFSvXl3s7OyUfsj+RW9KTExUxkKnT59W2v39/cXOzk6aNWsmd+7cyXXNkSNHxNnZmWMoUqxcufKt+8vu3bulevXq8vz5c6XtwYMHMnv2bLGzs1Ne0ogIX8SQiDAxRVq0aNEiMTQ0FGNjYwkPDxeRP/8ovHHjhpKcWrt27VvXMilFf2Xy5MliZGQkP//8s9KWnZxq3LixMnOKKFv2YCrnoOrx48ei0WgkICBA1Gq18tb41atXIiJy//59KV++vPj5+X38gCnPu337tqSkpIiIyJ49e2TOnDkiIrJixQqpW7eujBs3LldyqkWLFlK9enU5dOiQ1mKm/OHYsWNStmxZ+f3330VEJC0tTW7fvi0HDx6Uhw8fSnp6uoSHh4uHh4fs27dPSR5kZGRoM2zKY1xdXZXnmYhISEiIqFQqWbFihdK2a9cucXBwEHt7e4mLi3vn5zA5RVevXpWGDRu+tQIhKChILC0t5cyZM7nao6KixMjISAIDAz9mmJQPsMYUfXRZWVkAgPLlyyMjIwNpaWm4ePEikpKSlLoJ1tbWGD16NNq3b48pU6Zg7969uT4jZ9FPKrjk/2qURUREwNfXFxqNBosXL4azszO+/fZbeHt7AwBq164NX19f3Lx5Ex07dtRmyJQHqdVq3LlzB9OnTwcA+Pn5oX379njy5AlatmyJJk2aYOzYsXj48KFSnFNfXx+Ghoasp0FvSUtLQ+/evdGgQQNs3rwZ3bp1U3ZnHDduHAYOHIiwsDCsWrUKN27cgIWFBXbt2oWyZcuiSpUqWo6e8jqVSgULCwsUKlQI58+fx/Tp0+Hg4IARI0bA3t4eV69exeeff44xY8agY8eO0NHRQVZWFu9VpLh16xZWrVoFBwcHpa5PhQoVMHXqVMyePRuenp4AgO7du2PkyJFQq9UYPHjwO2tyslYZVa5cGUFBQahcuTJ+//13aDQaAK9rBBcpUgS//PILHjx4oJxfpkwZVKtWTTmPSKHtzBgVHG9O8czMzJTMzEyZP3++qNVqWblypSQlJeU65/79+7J06VK+kaG3ZM+a27VrlxQvXlxcXV3l4sWLyvFZs2aJjo5OrplTFy9elJiYmI8eK+VtGo1GFi1aJLVr15ZOnTqJrq6ubNq0STm+YcMGadGihXTq1EliYmLkxo0bMmPGDPnss8/eWuJAJPJ6WcJnn30mBgYGsmbNGhF5PbMl2/Lly6Vu3boyceJEZRk7l1nRm95VuuDMmTNSvnx5sbe3FxMTExk2bJhs27ZNjh8/LtWqVRN/f39thUv5yNmzZ6Vq1arSuHFjZann3bt3ZcaMGWJqaioeHh7KuX5+flKrVi0ZM2aMtsKlfODRo0diY2Mj9erVU55na9asERMTE5k0aZIcO3ZM7t+/Ly4uLmJlZZWrJiyRCJfy0UeSc8B96tQpOXTokISEhChtM2fOFLVaLV5eXkpyatCgQcqAXYTTheltJ0+elMKFC8uaNWveuUxh1qxZYmRk9FYhfaJ3cXR0FJVKJe3atcvVrtFoZOPGjWJvby8qlUpsbGykfPnycvbsWS1FSnldQkKCFC5cWCwsLOTzzz9XlvXlXDqzYsUKKVu2rLi4uEh6ejqXqFMuOcdNjx49kuTkZCWBEBoaKj/99JPs379fKRj88uVLqVu3ruzZs0cb4VI+dPbsWbG2tpbPP/9c6Vvx8fFKcsrT01M59+jRoxyH09/KyMiQgIAAqVOnTq4NF9atWye1a9eWokWLio2NjZQtW1bOnTun5WgpL1KJ/N9aGKKPwNXVFQEBAXj58iVKlCgBXV1dhIWFQaVSYd68eXB3d0e/fv1w/fp1JCQk4MaNG5x+Tm8REahUKixYsADh4eHYt2+fciwrKyvX1PLJkydj48aNiImJQeHChbURLuVxGRkZUKlUcHV1RXx8PO7fvw87Ozt8//33MDY2Vs7TaDQ4fvw4TExMYGVlBSsrKy1GTXldfHw8Xr16hY4dO8LExAQhISEoVKgQ0tPTlSWhW7ZsQZMmTVCxYkUtR0t5iUajgVr9utrGokWLsG/fPqSnp6NkyZLYvHkzihQpgszMTOjq6uLVq1dITk6Go6Mjnjx5gpMnT3J5Fb1T9tgp58+RkZHo2bMnihcvjmPHjkFPTw93797F2rVr4eHhAVdXV7i4uCjXvDnGIsrp1atXOHr0KCZPnowiRYogNDQUOjo6iImJwdOnT5Gamopq1apx/ETvxMQUfTA5B1YAsHz5cri7u2P//v1o2LAhFi5ciGnTpuHgwYNo06YNAMDDwwMRERHQ09PDmjVroKenx4cg/aWJEyfi3LlzOHr0aK6+BryuO1W/fn2o1Wo8evQIxYsX11KUlFe9OUjPbps9ezYOHTqEzz//PFdy6t69e7CysnqrrxFl96VHjx4pzy0LCwtoNBpcvHgRvXv3RuHChREcHIxChQph2bJlSE1NVeqaEWXLeV+aNm0afv75Z7i7u6No0aJwc3ODvr4+Dhw4gNKlSyMtLQ2LFy/G0aNH8eLFC4SFhXHcRO+Uc0yu0WiQnp4OQ0NDAEBkZCS++eYblChRQklO3bt3D4sXL8bly5cRGBgIgPVd6U/Z96kzZ87gzJkzUKlUaNy4MWxtbXMlp8zNzREaGspxE/0r7CX0QTx69AhqtVopdJ6VlYULFy5g/vz5aNSoEfbt24eFCxdizZo1aNOmDZKTkwEAY8eOxdq1a+Ht7Q09PT1kZmZycEUA/ix0fvfuXeXfpUqVwuXLl98qyJmWlobNmzfj119/BQAmpegt2YOq4OBgjB07FtOnT8fRo0ehUqng4uKCdu3aISIiAq6urvjjjz8wa9Ys9OzZEy9fvtR26JTHZPelX3/9FR07dkSLFi3QuHFjBAcHQ61Wo3bt2tixYwdSUlJQpUoV9OnTB87OzujUqZO2Q6c85ObNmwD+/OM/MDAQBw4cgJ+fH4YOHQo9PT0kJCTg6dOnaN68Oe7evQtDQ0N8+eWX+Prrr3HixAmOm+idcialli5dir59+6JRo0ZYtGgRzp49i7p168LPzw8PHz5EixYtkJGRgVKlSmHatGkIDAxkQopyyX7m7d69G506dcKGDRvg6+sLe3t7BAcHw8DAAA4ODliyZAlSUlJQt25dFjqnf+ejLx6kT97s2bPF2NhYYmNjReR1nYSsrCxp1qyZrFmzRg4ePCgmJibi5eUlIq9rR/3444+yefPmXJ/DehuULbsv7N27V2rVqiUbNmxQjjVs2FBq1aol169fl9TUVElLS5OpU6dKmTJl5Pbt21qKmPKDgIAAMTQ0lNatW0v9+vXF3Nxctm7dKiIiL168EHd3d7G1tZVy5cqJpaWlnDp1SssRU14VEBAgJiYm8sMPP8jx48fFyclJChUqlOu59uDBAxk9erSMGDFCLl26pMVoKa/p2rWrzJgxI1dbUFCQzJ07V0REfvvtNylWrJisWrVKLl68KMWKFZM6derIrVu3cl3DGkCU05vjaFdXV7GwsJBp06bJyJEjpUqVKvL111/LoUOHRETk3LlzUrVqValUqVKuup0cj9Objh07JsWLF5e1a9eKyOt6ZSqVSvT09MTPz09EXtdU3Lt3rzRu3JjjcfpXmJii9+748ePStm1bqVSpkjJoyszMlKlTp0rLli3FzMxMfvrpJ+X8xMRE+eqrr2TlypXaCpnygV9//VUMDQ1lxYoVuf6oi46OlmbNmomFhYXY2tpKixYtpHjx4iysSH/r8ePHsmrVKmVQFRsbK1OmTBGVSiVbtmwRkde7qJ06dUp8fX3f+gOQKNudO3fE3t5efvzxRxERiYuLk4oVK0r16tVFV1dXfHx8chWyzi4yTJTtxIkTSmH8xMREpf3u3bvy6tUradWqlUybNk1ERJKSkqRJkyaiVqulU6dOIsLEAf217HtPVFSUWFtb59p4KCQkRDp16iRdunSR+Ph40Wg0Eh4eLr169WKSk/7WnDlzZPr06SLyumB+2bJlZciQITJs2DDR1dWVgwcPisjr5FT25h9E/4SJKXpvfvnlF+XfERER0rp1a6lQoYLcvHlTREROnz4tpUqVknr16snly5clKytL7t27J+3bt5fGjRvzIUh/KSUlRVq3bi1ubm5/eY63t7csXLhQPDw8lD5H9C4XL14UMzMzqV69ujJ4Enm981V2cip75hTRu2QnAp49eybp6ekyf/58efr0qdy/f1+qVasmTk5Okp6eLj169BBzc3P5+eefmTygf7Ry5Urp1q1brhcrd+7ckXLlyklgYKCIiDx9+lR69eolp0+fzpXwJMrm4uIiU6dOzdV2+fJlKVmypISGhuZqP3LkiBQpUkTpXzlxXE7Zsp9fgYGBcvnyZYmOjpYTJ05IcnKyNG7cWL799lsReb3zukqlEpVKJfv27dNmyJQPscYUvReHDh1Cr1694O7uDgBo0KAB5s+fD2tra7Rq1QoxMTGoX78+tm3bhvv376N///6wtrZGjx498OjRI2XXhuyaVEQ5paWlITo6GjVr1gSAXGvV5f/qTQ0ePBguLi4YM2YMd7iiv6Wnp4fu3bvj5s2bePbsGYDX/ahYsWJwcXGBq6sr+vfvDz8/Py1HSnmVSqWCr68v7Ozs8PLlSwwZMgTm5ubw8PBAxYoVsXTpUujp6aFMmTJQq9VwcXFBUlKStsOmPEbe2H+oTJkyOHXqFDw9PXHhwgUAQNmyZVGiRAm4urpi586d6NatG+7du4d69erlquVJBAB//PEHEhIScPToUfzwww9Ke2ZmJlQqFe7du6f8DAAtW7ZE2bJlERER8dZnsVYZZVOpVAgLC0OXLl0QGRmJypUro0mTJrh+/TrS09Mxfvx4AEDhwoXRq1cvuLm5oXLlylqOmvIbJqbovbC3t4eXlxfmzp2LefPmAXidnHJ3d0eVKlXQunVrREdH44svvkBwcDCmT5+OESNGwNXVFadOnWLBTvpbpqamsLCwwJkzZwAg12D8zJkzWL9+vXLumwN9ojdVrVoVU6ZMQc+ePeHk5ITg4GCluKuFhQUmTpyImTNnwsbGRsuRUl517949bNmyBZMmTYKZmRksLS0BANeuXUOpUqVgZmYG4PXGHxs3bsSNGzdQuHBhbYZMeVD2fef333/Hixcv0KVLF6xfvx5BQUFYtmwZoqKiAAArV66EgYEB5s2bBwMDAxw5cgRqtRoajYbjJsqlcOHCWLx4MRo2bIgDBw5g/vz5AABbW1t88803GD58OE6dOgVdXV0AwPPnzyEi+Oyzz7QZNuVxd+7cwYEDBzB9+nT069dPaX/27BnOnTuHFy9eAAC2bt2KZ8+eYerUqRxD0X+n1fla9El59eqVeHl5iY6OjlKwU+T1sr42bdpI+fLlJSYmRkTerofA6cKULbtvZGRkyIsXL5T2iRMnSu3atZWiitmcnZ2lcePG8uzZs48ZJuUT2f0pNjZWrl+/LhcuXFCOXbt2TQYNGiTm5uYSFBSU63wukaG/cubMGenbt6+0bdtWEhMTcz2/Zs6cKYUKFZIFCxaIo6OjmJuby/Xr17UYLeVFOe8vAQEBYmtrK0uXLpW0tDQREdm/f7+ULVtWBg4cKFeuXFHOjYuLy/WMJMop570oKChIevbsKZUrV1bq34mI9O7dW/T19cXZ2VnmzJkjbdq0kVq1arE/0V+6cuWKNGnSRMqXLy9r1qwRkT/72qtXr6Rnz56iUqmkfv36YmpqKufPn9dmuJSPqUQ4vYD+d/J/W4ZmS0tLg7e3N8aOHYvZs2djxowZAIDTp09jxowZuHnzJg4cOABra2tthUx5WHZ/OnDgADZv3oyoqCh8/fXXaN++PZo0aYKuXbvi6dOnqFOnDmxtbXH69Gns3r0bx48fh62trbbDpzwmuz/t3bsXM2bMQHJyMoyNjdGmTRssW7YMwOsZLj/88AMOHDiAjRs3ol27dlqOmvK6uXPnYuPGjXjx4gVu3LgBU1NTZGRkQE9PD6mpqXBzc0NISAjMzc2xfPly1KlTR9shUx6i0WigVr9esLBlyxZcuHABa9euhbm5OSZNmoShQ4fC0NAQBw4cwKhRo+Dg4IBRo0ahfv367/wMojdNmjQJUVFRUKvVOH/+PIyNjTFy5Ei4uLgAAL7//nscOXIE6enpKF++PH7++Wfo6ekhKyuLM/DoncaOHYvNmzejVatW8PHxgampqTLGevLkCQ4cOIA//vgD7dq14xI++t9pMytG+VvON34ZGRm5ZkF5eHiIWq1+a+ZUvXr15JtvvvmocVL+kN1/9u7dK8bGxjJjxgzZvHmz2NvbS4UKFeT27dvy/PlzmT59utjb20utWrWkc+fOuWbAEL3pwIEDYmJiIqtWrZIbN27IqlWrRKVSyYgRI5Rzrl27Jt27d5cKFSpIamoqi1TT30pPT5clS5ZIqVKlZMCAAfL8+XMRyT0T+OnTp5KamqqtECkfmD59ulIYf9OmTdKsWTOpXbu2LFu2TF6+fCkir+9fBgYG4u7uruVoKb/YsWOHFClSRCIiIuTly5fy4MEDGThwoNjZ2cmiRYuU8/74449cM6w4Y4qy/dUYaNKkSVK9enWZN2+e/PHHHx85KioIOGOK/ic539YtX74c58+fR0xMDLp164YuXbqgYsWK8PLywrhx4zBr1ixl5tTVq1dRtWpVvukjAMCBAwdQunRp2NraQkTw+PFj9OjRA126dMGECRPw8uVLlCtXDv3798eSJUty9ZuUlBTo6+tDX19fi9+A8rLHjx9j6NCh+OKLL/Ddd98hISEBTZo0QZUqVXDixAn07t1bqU8WHR0NExMTWFlZaTlqykvk/94IP3jwQJkRVaZMGWRmZuLHH3/E7t270bBhQ3z//fcwNTVFZmamUruF6F1EBPfu3UOrVq0wY8YM9O/fHwCQmpqKYcOG4fTp0xg/frwycyo8PBwNGzbkTBb6VxYtWoTt27fj9OnTyr3o7t27GDlyJM6ePYspU6Zg4sSJua6RN1Y/UMGV3RciIiIQHh4OfX19VKxYEW3btgUATJgwAcePH0fXrl0xduxYmJmZcQYnvTfsRfQ/yb4Bubq6Yv78+WjQoAEcHBywfv16DB8+HC9evICTkxM8PDzg7u4OZ2dnAICNjY1SsJMKtgcPHmDMmDFYvnw5rl69CpVKBWNjY6SkpKB9+/aIjY2FtbU1unTpgqVLl0KtVuPQoUOIjo4GAJiYmDApRbmIiFL8Pjo6GsWKFcOXX36JTp064eHDh2jTpg3atm2Lffv2YeLEifD29lb+KLS2tmZSinLJHqD7+/ujffv2aNSoEVq2bAl3d3fo6upi8uTJ6NKlC86cOYPp06cjKSmJSSl6p5zvgFUqFQoVKgS1Wq0UDM7MzEShQoWwadMmqNVqeHl5Ye3atXj16hUaN27MXYvpH2WPq0uUKAGNRqPsvqfRaFC6dGm4ubnhxYsXWLlyJXx8fHJdy6QUZVOpVPDz80Pr1q2xc+dOeHl5oUOHDsrfccuXL0fjxo3x66+/4ocffkBycjKTUvTesCfRf5Y9wIqIiMC+ffsQEBCA0aNHo1mzZoiNjUW/fv1gbGwMAwMDjBw5EvPmzUN4eHiugRlvYlSyZEns2rULly5dwtKlS3Hp0iXo6Ojg5cuXCAkJQZs2bdC+fXv89NNPAIDbt2/Dx8cHMTExWo6c8prk5GQArwdUKpUK+/btQ4sWLXDlyhUMHz4clStXxs6dO1GyZEnMmTMHBgYGKFWqFOzs7BAeHq4M4IlyUqlUCAoKQu/evTFo0CDMmTMHY8eOxZw5c+Dk5AQdHR1MnjwZnTp1QmBgINzd3bkrKL0l52yUx48fAwD09PRgZmaGoKAgAICuri6ysrKgq6uLunXrQl9fH7t27cLx48eVz+GMKcrpzRe82ePqBg0aIDY2FitWrMCLFy+U9oyMDDRv3hwTJ06Eo6PjR4+X8ofo6GiMGTMGCxcuxPHjxxEaGgofHx94enrC1dUVAODh4YEaNWogPDwc6enpWo6YPilaWD5I+dCsWbMkICAgV9vRo0fFxsZGRER27dolpqam8tNPP4mISEpKivj7+0tqaqpkZWUp65VZu4XedO7cOalXr544OTnJ/fv3xdPTU1QqlXz11Ve5znNzc5OaNWtKXFycliKlvGjYsGEyePBgSU9PFxGRO3fuSK9evWT16tW5zhs5cqQ0bNhQ+XnKlCmyYMGCXDs/EmXLflaNHDlS+vbtm+vY0aNHRa1Wyw8//CAir3cl+vHHHyU2NvZjh0l5XM5anHv27JFWrVrJ5cuXRUTk999/F2NjYxkzZoxSp1Oj0UifPn3kwIEDUrduXenRo4e2Qqc8LOdYevXq1fLdd9/JzJkz5c6dOyLyekyuo6Mjw4cPl/3798vly5elXbt2MnLkSOVa7oZN73Ly5EmpWrWq3L17N1f7xo0bxcjISEJCQpS2xMTEjx0efeI455z+0aVLl3D48GGcOHEChoaG+PLLLwG8fgtoYWGB7du3Y8SIEfjhhx8wYsQIAMCpU6ewd+9e1KhRQ9mdQbiGnd6hbt26WL9+PYYMGYKZM2eid+/emDRpEpYtW4bFixcDAGJjY7FlyxYcO3YMZcqU0XLElFfs2LED/v7+CAwMhJ6eHiIjI+Hl5YV79+7BwcEBwJ/18Lp06YINGzaga9eu0NfXx6FDhxAeHg4jIyMtfwvKS7KfUy9evEChQoUQGxsLc3Nz5VhGRgbs7e0xb948bN26FQMHDkTJkiXx3XffaTlyymty1l05cuQI/Pz8cO7cOcyePRtz5sxBw4YNsWXLFvTr1w+RkZEoWbIk7t+/j6dPn2Lbtm04efIkjh49yvotlEvO/uDq6gpvb2/Url0bDx8+hLe3N4KCgtC9e3fs27cPU6ZMwf79+6Gjo4NixYph3759UKlUEBHOwKN30tPTQ3R0NKKjo1GqVCnlmejg4AArKyskJCQo55YsWVKLkdKniE86+kc1a9bE/PnzYWhoiEWLFuHQoUMAgJYtW+KPP/5Av3798P3332PkyJEAgLS0NCxduhTJycmoWLGi8jlMStFfqVu3Lry9vREZGYmdO3eiTZs2WL58OTZu3Ag/Pz88f/4cJ0+e5LbrlEt8fDwsLCxQp04dHDx4EAMHDkRYWBjOnDmD2NhYAH8ub2jSpAk2bNiA1NRUqNVqHDt2DDY2NtoMn/KY7AF4UFAQZs6cibi4OHTu3BlHjx7FmTNnoFKpoKenBwAwNzeHSqWCmZmZlqOmvCr73vPdd99h7NixKFq0KJo3b45jx45h+vTpuHbtGrp27YqoqCjUqVMHZmZmaNSoES5dugTg9WYxFStW5PJQyiW7Xz18+BAvXrzAoUOHcPjwYWzbtg22trb4/PPPce3aNXz11VcIDAxEcHAwfH19ERERAT09PWRmZnI8TgD+LM1y9epVhIWFITY2FvXq1UPHjh2xatUqnD9/XukrxYsXR5EiRbh0jz4o7spHfysjI0MZiO/YsQObN29GSkoKZs+ejZYtW+Lq1avo3LkzLCwsMHz4cGRmZsLX1xeJiYmIjIyErq4u3/bRv3bu3DkMHz4cderUwdy5c2FpaQmVSoW0tDQYGhpqOzzKY06fPo0BAwbgs88+Q2hoKAIDA5GRkYHJkyejYsWKmDlzJurXr5/rGo1Gg4yMDBgYGGgpasrLdu/ejf79+2Pq1Kn46quvYGhoiKlTpyIrKwtz586FnZ0dAGDy5Mk4e/Ys9u3bB1NTUy1HTXlVaGgoevXqhT179qBx48YAgPXr18PHxwclS5aEu7s7bGxskJWVpcxgefjwIRYvXgwfHx+EhoaievXq2vwKlAdt2bIFI0eORPXq1bFr1y5lJnlMTAzGjx+P8PBwhIeHo2rVqrmuy9nPiADA398fAwYMgKWlJeLj47F+/Xq8fPkS27dvh5mZGYYPH47y5ctj48aN2LBhA37//XeUL19e22HTp0pLSwgpn5k1a5b07NlTbG1tRa1WS7NmzSQoKEhERKKjo6VVq1ZSs2ZNadq0qQwcOFCp98I17PRfnTt3Tho0aCC9evWSS5cuiQhrk9FfGzVqlKhUKmnUqJHStm3bNqlfv74MGDBAzp49q7TnrPdC9Kbr169LhQoVxMvLK1e7v7+/dOzYUSwsLOSrr76Stm3bipmZmURGRmonUMo3goODxcLCQnmWZVu5cqUYGBhI9+7dlZpTIiLx8fHy/fffS5UqVdi/6C8dOXJE2rZtKyYmJkpdqexxUkxMjHTs2FFUKpXEx8drM0zKw7KysuTJkyfStGlTWbNmjURHR8u8efNEV1dXVq1aJevWrZNevXqJWq2WatWqSeXKleXcuXPaDps+cZwxRf/Iy8sLrq6uCAgIQOXKlREeHg5PT0+o1WpMnz5dqeXy6NEjGBsbo1ChQgBeb3/MrbPpf3H69GlMmTIF27dvh5WVlbbDoTzq5cuX6NChAypWrIiTJ0/C1tYW27dvBwBs27YNy5YtQ82aNTFy5Eg0bNhQy9FSXhcUFITRo0cjMDAQ5cqVyzXb99q1azh79iwCAwNRunRpDBgwANWqVdNyxJRXyf8tCz116hT69euHlStX4uuvv1b6VFZWFmxtbWFsbIwaNWpgwYIFsLKygkajQUJCAnR1dVm/hQDgnasORARnzpzByJEjkZSUhBMnTqB48eJKv7t+/TrWr1+PBQsWcBxOuWT3kbS0NIgI3N3dMXnyZKWW4rJly+Ds7IwlS5agT58+SE5ORnp6OiwsLFCiRAktR0+fOt6t6B9FRESgU6dOaNGiBQDgm2++gYmJCSZNmoSZM2dCrVbD3t4exYsXV64RET4M6X/WoEEDHDx4kMv36G8ZGRkhICAAxsbG8Pb2xqJFi9C3b19s27YNffv2VZLnhoaGqF27Npfv0d9KSUnBy5cvc7VlL31JTExE06ZN0a9fPy1FR3nZm8mD7Losn3/+OapUqYLx48ejTJkysLW1BQAkJiaiVq1asLGxwaZNm3DlyhVYWVlBrVajVKlSWvkOlPfk7Fd79uzB/fv3odFo0Lp1azRo0ABr167FuHHjYG9vj6NHj6JEiRIQEVStWlXZPIYviSknlUqFvXv34qeffkJ8fDw0Gg169eqlJKYmTpwIlUoFZ2dnPHz4EG5ubsqEA6IPjYV/6B8VLVoUT548yTVgb9euHRwdHXH27FlMmDABv//+e65rWFiR/n8xKUX/hrGxMQCgZ8+ecHFxQWRkJPr27QsA6N27NxYuXAhnZ2cmpegf1a5dG48fP8batWsBvC4ynF2Pxd/fHxs2bGDhV3pLzuTBzp07MWvWLHh4eCA0NBQAcODAARQvXhydOnXC999/Dx8fHwwcOBApKSmYNWsWRAS//fabNr8C5VHZ/crZ2RmjR49GSEgIvL290bdvX3h7e6NevXpYtGgRLCws8OWXXyIxMfGt8TeTUpTTmTNn4OjoiAoVKqBhw4a4efMmvL29cefOHeWcCRMmYO7cufDy8kJaWpoWo6WChokp+ke2trY4efIkgoKCcu0OU7JkSTRp0gTffPMNGjRooMUIiaigMzExQc+ePeHs7IyLFy+iQ4cOAF7P8KxQoYKWo6P8oEKFCvD09MTixYvh7OyMS5cu4erVq3BxccHGjRvRp08f6OvraztMykNEJFfyYMKECTh79iz27NmDKVOmYPPmzVCpVAgPD8eXX36J/fv3Y8GCBdDX18fOnTsBAFZWVqhSpYo2vwblYdu3b8f27duxb98+7Ny5E+PGjcPly5dRpEgRAK93nF2yZAnS09MxefJk7QZLedrNmzcREBCAqVOn4qeffsKGDRuwYsUK+Pn5YfXq1bmSUy4uLrh16xYsLCy0GDEVNEyj0z8aNGgQTpw4gf79+2P16tWoV68eLC0tsXv3bjg4OMDNzQ0qlYq77xGRVhUqVAg9e/ZEWloafHx8cO/ePS6Lof9k0KBBMDU1xfDhw7F9+3YYGhpCR0cHR44cYU0pyiXnmGfVqlX45Zdf4Ofnh88//xxeXl6YOHEiZs2ahRcvXmD48OFYv349nj9/DhFRls3MnDkTsbGxaNWqlTa/CuVhMTEx+OKLL1C/fn3s3LkTEyZMwIoVK9CtWzekpKTg4cOHaNiwIXbt2gUbGxtth0t5VFJSEnr37o3bt2/j22+/VdpHjhwJjUaDBQsWQEdHB05OTsrLvOzkJ9HHwuLn9LdyDrzGjBkDf39/ZGVlwdTUFDo6Orh48SJ0dXWVYnpERNr24sULZGRkoHDhwtoOhfKp+/fv486dO1CpVKhQoQILUVMuOcc8SUlJcHNzQ/ny5TF58mTs27cPjo6OGD9+PKKjo3Hs2DEsXLgQ/fv3V66Pjo7GzJkzERoaiv3796Nu3bra+iqUh7zrBa+rqyt0dHTQsWNHtG7dGosXL8aIESMgIvDx8cHTp08xbtw46OnpAfizLh7RmyIjI9GrVy+UKFECq1evRs2aNZVjq1evxsSJEzF16lS4ublxCShpBRNT9I9yDsDCw8Px+PFjpKamokePHtDR0eFDkIiIiAqEo0eP4v79++jXrx+GDx8Oc3NzjB8/Hi9fvkRWVha++uorjB49GhMmTMCePXvQp08f6OnpYdOmTejatSsAIC0tDYcPH4aNjQ0qV66s5W9EeUHOpNTNmzdhZGSE4sWL4/Tp02jWrBkAwNfXFz169AAApKamolu3bqhZsyZ+/PFHrcVN+cuFCxcwcOBANGzYEOPGjUONGjWUYz///DO++OILWFtbazFCKsiYmKJ/5a+W6TEpRURERJ86EUFKSgq6d++O9PR0mJmZITQ0FGFhYcpue1u2bIGHhwcCAwNRuHBhBAYGYs2aNWjfvj0GDx7M8RK9U84XwK6urti7dy8ePXqEGjVqKLXtRo0aBW9vbzRt2hRJSUmYMmUKHj58iIiICM5uof8kMjISQ4cORb169TBx4kRUr15d2yERAWDx8wJLo9G8s/2v8pTZSak3r+Mgi4iIiD51KpUKpqam2LFjBxITE/Hrr7/Czc1NSUoBgJ6eHuLi4hAWFoYXL17Aw8MD5cuXh5OTkzLDnCgnjUajJKV27NiBjRs3YuHChfjxxx/RqFEjTJgwAadPn8aiRYvg5OSExo0bw9HREenp6fj999+hq6vLfkX/Sd26dbF+/XpcuHAB8+bNw7Vr17QdEhEAFj8vkHLOfrp06RJevHiBEiVKoHz58lCpVH85Cyrn7jPXrl1D2bJlla3aiYiIiD51arUalSpVQsmSJREcHIzSpUujX79+AIDq1avjiy++gKOjI4oUKYJChQph9+7dUKlUEBG+zKO3ZI+rQ0JCEBwcDGdnZ3Tu3BnA6/pl5cuXh6urK7Zv347Lly8jPj4eZmZmqF27NtRqNTIzMzljiv6zunXrwtPTE1OmTGE9TsozuJSvgMk5XXjatGnYt28f4uLi0KhRIzRs2BDu7u4A3l6il/M6Dw8PLFiwACdPnkT58uU/+ncgIiIi0qbExEQ4OTnh5cuXcHJyUpJT169fx7Vr15CcnIw+ffpAR0eHyQP6W4mJiWjWrBkePnwIFxcXTJs2TTn25MkTODk5oUyZMvDw8Mh1HXfDpv9faWlpMDQ01HYYRAC4lK/AyU4uubu7Y/369VixYgViYmJQqlQpeHp6YsyYMQCQa8p5zqTUmjVrMHv2bCxdupRJKSIiIiqQLC0t4enpCWNjY2zcuBHe3t7IysrCqFGjcPHiRfTv318ZSzEpRX/H0tISu3fvRokSJbB7925ERkYqxywsLFCsWDHcvHnzreuYlKL/X0xKUV7CO1oBkXNi3JUrV7Bnzx5s3boVDg4OiIqKwi+//II2bdrg4MGDmDBhAoDXyamMjIxcSSlnZ2esXbsWvXv31sbXICIiIsoTKlSoAA8PD5iammLJkiWwtrbGw4cP4ezsrJzD5Xv0b9ja2mL37t3IysrC8uXLcf78eQBAcnIyrl69itKlS2s3QCKiD4xL+QqAnDOeoqKiYGtri/Xr16Nbt264dOkSevfujXnz5mHIkCHo0KEDjhw5gm7dumHbtm3KZ6xduxbOzs74+eef0b17d219FSIiIqI8JSEhAWfPnsWDBw8wcOBA6Orqcvke/U8iIyPRv39/PH36FPXr14e+vj5iY2Nx6tQp6Ovr5xrTExF9SpiY+sS9uQXtqVOnsGPHDpQsWRIqlQojR46Erq4uli5dCj09PUyZMgWnT59G9erV4enpCbVajX379qFLly7YtWsXunXrpuVvRERERJR3/dUmMkT/xqVLl9CpUyeULl0affv2xYgRIwAAGRkZ0NPT03J0REQfBpfyfeKyk1LXrl1DeHg45s+fD0tLS6U9NjYWd+/ehZ6eHrKysnDnzh0MGDAAq1atUtaud+jQAUePHmVSioiIiOgfMClF/z9q1qyJ3bt3Iz09HefOnUNMTAwAMClFRJ80zpgqABYsWICQkBAYGhpiy5YtMDU1hUajAQAsX74cmzdvhpWVFZKSkvD8+XNERUVBR0cHIsKinUREREREH1lkZCRGjBiBihUrYtasWahWrZq2QyIi+mA4Y6oAsLGxweHDh3H8+HHcvn0bwOudPNRqNfr06QNHR0cULlwYNWrUQGRkpLKLjEqlYlKKiIiIiOgjq1u3Ljw9PZGQkIDChQtrOxwiog+KM6Y+MX9VFDE4OBht2rTBoEGDlOV8f4UFO4mIiIiItC8tLQ2GhobaDoOI6IPijKlPiEajUZJSDx8+RFxcnHKsVatW8Pf3h4+PD9zd3fHgwYNc12UTESaliIiIiIjyACaliKggYGLqE6HRaJRi5XPnzkX79u3RoEEDtGvXDiEhIUhLS0PHjh3h7++P1atXY/78+UhISAAA5ToA3IKWiIiIiIiIiD4aJqY+ASKiJJdmzZqF1atXY8KECQgPD8etW7cwffp0BAQE5EpOeXp6Yvv27VqOnIiIiIiIiIgKMq7ZyseuXr0KGxsb5ecTJ05g79692LJlCxwcHBAWFoZ79+5BRDB9+nTo6Ojgq6++QocOHRAWFoZGjRppMXoiIiIiIiIiKug4YyqfWrJkiZJ8UqlUEBGYm5tjzJgxcHBwQHBwMLp164ZVq1YhOjoaaWlpWLp0KXx9fZGeno6mTZtCV1cXmZmZ2v4qRERERERERFRAMTGVT9WqVQtffPEFxo8frySnrK2t0bFjR2RkZGD58uUYNmwYHB0dISKwtrZGVFQUTpw4AX19feVzWOiciIiIiIiIiLSFial8Zt26dQCAtm3bYtSoUahcuTLGjh2LY8eOQU9PDyVLlkR6ejoeP34MCwsLpfZU2bJlERISgtWrV2szfCIiIiIiIiIiBafL5CNBQUEYPnw4oqKi4OnpiRYtWkBE4OXlhXHjxsHDwwPNmzeHWq2Grq4udu3ahaSkJISFheHJkyeoW7cu1Go1srKyoKOjo+2vQ0REREREREQFHGdM5SMNGjTA2rVrsWvXLowePRoAYG9vj1GjRqFKlSoYO3YsQkJCYGRkBD8/PxgbG+PEiRMwNTXFmTNnoFarodFomJQiIiIiIiIiojxBJSKi7SDo30tOTsaOHTswbdo09OjRA6tWrQIAhISEwMvLCzdu3MDSpUvh4OCAtLQ0iAgMDQ2hUqmQmZnJmlJERERERERElGcwS5EPiAhUKhUAwNTUFD169AAAuLm5AQBWrVoFe3t7AICXlxemTJmCBQsWoE2bNrk+g0kpIiIiIiIiIspLmKnI4zQajVLAXKPRIDMzE0WKFMHAgQMBAFOnTgXwZ3JKpVJh3rx52LZtW67EVHZii4iIiIiIiIgor2BiKg/LmZT68ccfERUVhXPnzmH48OFo2bIlhg0bBgCYNm0aVCqVUhDdzMwMtWvX1mboRERERERERET/iDWm8oGpU6fi559/xsyZM5GSkoL169ejWrVq2LFjB7KysrBz505Mnz4drVq1wtatW5Xrcia2iIiIiIiIiIjyGmYt8riIiAj4+/sjICAAY8aMQbNmzRAXF4eePXvCxMQEhQsXxoABAzB16lQ8f/4cGo1GuZZJKSIiIiIiIiLKy5i5yOM0Gg0MDQ3RqFEj/PLLL2jfvj1WrlwJR0dHpKam4sCBAwCAb7/9Fr/++ivUanWu5BQRERERERERUV7FxFQe8q6EUkpKCtLS0rBjxw58++23WLhwIUaMGAEAOHnyJLZt24a4uDgYGRlBpVJBRDhTioiIiIiIiIjyBdaYyiNy1oNavXo1ACgJqLZt2+Lw4cPw8PDA6NGjAQBpaWn45ptvYGRkBF9fXyajiIiIiIiIiCjf4a58eUR2YmnKlCnw9fXFwIEDcffuXZQuXRrff/89/vjjDyxbtgyFCxfGs2fPEBAQgPv37+P8+fPK8j0mp4iIiIiIiIgoP+GMqTxky5Yt+O677/Dbb7/Bzs5OaddoNLh27Rrmzp2LqKgolChRAtbW1vjpp5+gp6eHzMxM6Ooyx0hERERERERE+QsTU3mIm5sb7t27h40bNyIrKws6OjpvJZ0ePHgACwsLpY1JKSIiIiIiIiLKr7j2Kw+5d+8eYmNjAQA6OjoQEejq6iItLQ1BQUEAgJIlSyqJqOzjRERERERERET5ERNTWvCu3fcAoG7dunjw4AGOHj2K9PR0qFQqAEBSUhLmzJmD3377Ldf52ceJiIiIiIiIiPIjLuX7yHIWKT99+jQ0Gg10dHRQv359vHr1Ck2bNgUATJ06FU2bNkVKSgomTJiAZ8+e4dixY9DR0dFm+ERERERERERE7w0TUx+RiCiznFxcXLB9+3aoVCo8ePAAffr0waJFi2BqaorOnTvj3r17iImJQfXq1aGnp4fjx49DT09PqT1FRERERERERJTfMTGlBZ6enpgzZw727t0LCwsLxMfHY8CAAWjUqBG2bt0KfX19XLlyBdevX0fJkiXRrFmzdxZCJyIiIiIiIiLKz5iY0oKBAwfCyMgIq1evVmZRnT9/Hl988QXGjh2L+fPnv3UNZ0oRERERERER0aeGxc8/sDfzfhkZGbh37x7S0tKU4+np6ahTpw5mz56NnTt34tmzZ8jKysp1HZNSRERERERERPSpYWLqA9JoNEpNqVu3buHhw4fQ09ODo6Mjdu3aheDgYKjVaujp6QEADAwMUKxYMRQqVIiJKCIiIiIiIiL65DEx9QFl777n5uaGTp06oXr16nB2doaJiQmGDBmC0aNH4+DBg9BoNPjjjz/w66+/olSpUkqiioiIiIiIiIjoU8ZK2h+ARqNRklI7d+7Epk2b4OnpiQsXLuDgwYOIi4vD559/jo4dO6JDhw6oWLEidHR0YGBggNOnT0OlUuXawY+IiIiIiIiI6FPE4ucf0LFjx+Dn54fatWtjyJAhAIB9+/bBw8MD5ubmGDZsGEqUKIHff/8dJiYm6NWrF3ffIyIiIiIiIqICg4mpDyQxMRHNmjXDo0ePMGfOHEyYMEE5FhAQgOXLl8PMzAxTp05Fw4YNlWPcfY+IiIiIiIiICgrWmPpALC0tsXv3blhaWuLAgQO4ePGicqxjx46YNGkSYmJisGfPnlzXMSlFRERERERERAUFZ0x9YFFRURg8eDDq16+P8ePHo0aNGsqxkydPolGjRkxGEREREREREVGBxMTURxAZGYmhQ4fCzs4OEyZMQPXq1XMd5/I9IiIiIiIiIiqImJj6SCIjIzF8+HCUK1cOixYtQoUKFbQdEhERERERERGRVrHG1EdSt25deHp6wtTUFOXKldN2OEREREREREREWscZUx+ZiEClUkGj0UCtZl6QiIiIiIiIiAouJqa0IDs5RURERERERERUkHHKjhYwKUVERERERERExMQUERERERERERFpCRNTRERERERERESkFUxMERERERERERGRVjAxRUREREREREREWsHEFBERERERERERaQUTU0RERET5lEqlgr+/v7bDICIiIvqfMTFFRERE9AF17NgR7dq1e+exsLAwqFQqXLhw4X/67ISEBLRv3/5fnz9o0CB06dLlf/pdRERERB8CE1NEREREH5CTkxMOHz6Mu3fvvnVsw4YNqF+/Pmxtbf/TZ6anpwMALC0tYWBg8F7iJCIiItIGJqaIiIiIPqAOHTqgePHi8PHxydWekpKCnTt3okuXLujTpw9KlSoFY2Nj1KpVC9u3b891rr29PcaMGYMJEyagWLFiaNu2LYC3l/LFx8ejZ8+eKFKkCIoWLYrOnTvj9u3bAIDZs2dj48aN2Lt3L1QqFVQqFUJCQuDg4IAxY8bk+n2PHj2Cvr4+goOD3/v/BxEREVFOTEwRERERfUC6urpwdHSEj48PRERp37lzJ7KystC/f3/Y2dlh//79uHTpEr799lsMGDAAERERuT5n48aN0NfXx4kTJ7B69eq3fk9GRgbatm0LU1NThIWF4cSJEzAxMUG7du2Qnp6OyZMno2fPnmjXrh0SEhKQkJCAJk2aYOjQodi2bRtevXqlfNaWLVtQqlQpODg4fLj/GCIiIiIwMUVERET0wQ0ZMgQ3b95EaGio0rZhwwZ0794d5cqVw+TJk1GnTh1UrFgRY8eORbt27fDLL7/k+gxra2ssWrQIVatWRdWqVd/6Hb6+vtBoNFi/fj1q1aoFGxsbbNiwAXFxcQgJCYGJiQmMjIxgYGAAS0tLWFpaQl9fH926dQMA7N27V/ksHx8fDBo0CCqV6gP9jxARERG9xsQUERER0QdWrVo1NGnSBN7e3gCAmJgYhIWFwcnJCVlZWZg3bx5q1aqFokWLwsTEBIcOHUJcXFyuz7Czs/vb3xEVFYWYmBiYmprCxMQEJiYmKFq0KNLS0nDz5s2/vM7Q0BADBgxQYjt37hwuXbqEQYMG/f99aSIiIqJ/QVfbARAREREVBE5OThg7dixWrVqFDRs2oFKlSmjRogV++OEHrFixAsuXL0etWrVQqFAhTJgwQSlwnq1QoUJ/+/kpKSmws7PD1q1b3zpWvHjxv7126NChqFOnDu7evYsNGzbAwcEB5cqV++9fkoiIiOg/YmKKiIiI6CPo2bMnxo8fj23btmHTpk0YOXIkVCoVTpw4gc6dO6N///4AAI1Ggxs3bqB69er/6fPr1asHX19flChRAmZmZu88R19fH1lZWW+116pVC/Xr18e6deuwbds2eHp6/vcvSERERPQ/4FI+IiIioo/AxMQEvXr1wtSpU5GQkKAslbO2tsbhw4dx8uRJXL16FcOHD8eDBw/+8+f369cPxYoVQ+fOnREWFobY2FiEhIRg3LhxuHv3LgCgfPnyuHDhAq5fv47Hjx8jIyNDuX7o0KFYuHAhRARdu3Z9L9+ZiIiI6J8wMUVERET0kTg5OeHZs2do27YtPvvsMwDA9OnTUa9ePbRt2xb29vawtLREly5d/vNnGxsb49ixYyhbtiy6desGGxsbODk5IS0tTZlBNWzYMFStWhX169dH8eLFceLECeX6Pn36QFdXF3369IGhoeF7+b5ERERE/0QlOfctJiIiIqIC6fbt26hUqRJOnz6NevXqaTscIiIiKiCYmCIiIiIqwDIyMvDkyRNMnjwZsbGxuWZREREREX1oXMpHREREVICdOHECVlZWOH36NFavXq3tcIiIiKiA4YwpIiIiIiIiIiLSCs6YIiIiIiIiIiIirWBiioiIiIiIiIiItIKJKSIiIiIiIiIi0gompoiIiIiIiIiISCuYmCIiIiIiIiIiIq1gYoqIiIiIiIiIiLSCiSkiIiIiIiIiItIKJqaIiIiIiIiIiEgrmJgiIiIiIiIiIiKt+H9QO1u8MBXrZAAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 1200x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Plot salvato come: .//2024-12-07_07-35_plots/variety_comparison_avg_oil_production_l_ha.png\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAADYfUlEQVR4nOzdeVxO6f8/8NfdvkdIIZUaEmXJVllCCjGMfRmyZSsGn0HNkG1s2YdEgzBk32UyiazZorHvSyPKWikqdV+/P/w6X7eKO1Imr+fjcT/GfV3vc533OZ3upnfXuY5MCCFARERERERERERUhFSKOwEiIiIiIiIiIvr2sChFRERERERERERFjkUpIiIiIiIiIiIqcixKERERERERERFRkWNRioiIiIiIiIiIihyLUkREREREREREVORYlCIiIiIiIiIioiLHohQRERERERERERU5FqWIiIiIiIiIiKjIsShFREQlnkwmw+TJk4s7jc/2559/wsbGBurq6ihVqlRxp0NfsXv37kEmk2H16tVKxW/evBlGRkZITU39sol9wOTJkyGTyfD06dNCG7NRo0YYN25coY33LVu9ejVkMhnu3bsntbm4uMDFxaXYcioK/fr1g4WFRaGOGRUVBZlMhqioqEIdl4jov4hFKSKib8Dt27cxZMgQVKlSBVpaWjAwMICzszMWLVqE169fF3d6pIRr166hX79+sLKywh9//IHg4GClths3bhxkMhm6d+/+hTPMW0BAAGQyGc6fP6/QLoRA6dKlIZPJcPfuXYW+9PR0aGpqolevXgXa14wZM7Bz587PTblAZDIZZDIZ5s2bl6sv55f4s2fPFmlOBZWdnY1JkyZhxIgR0NPTK5Qxz5w5g3r16qFZs2awsbHBTz/9hOzs7Fxx//vf/2Bra1so+8zL+PHjERgYiISEhC+2j/+yy5cv48cff0TFihWhqamJChUqoHfv3rh8+XJxp5anx48fQ01NDT/++GO+MS9fvoS2tjY6depUhJnlbenSpUoXhomIvlVqxZ0AERF9WWFhYejatSs0NTXRt29f1KxZE5mZmTh27BjGjh2Ly5cvK13g+K96/fo11NT+2z/yoqKiIJfLsWjRIlhbWyu1jRACGzZsgIWFBfbs2YOXL19CX1//C2eqqHHjxgCAY8eOoU6dOlL75cuXkZSUBDU1NRw/fhyWlpZS35kzZ5CZmSltq6wZM2agS5cu6NixY6HkXhBz5szBsGHDoKOjU+T7/lx79uzB9evXMXjw4EIb097eHmfOnIFMJsOLFy9gZmaGVq1aoV27dgpxYWFhaN++faHt930dOnSAgYEBli5diqlTp36x/fwXbd++HT179oSRkREGDhwIS0tL3Lt3DytXrsTWrVuxceNG/PDDDx8c4++//y6ibN8yNjZGq1atsGvXLrx69SrP77ft27cjPT39g4Wrgvjjjz8gl8s/adulS5eibNmy6Nevn0J706ZN8fr1a2hoaBRChkRE/22cKUVEVILdvXsXPXr0gLm5Oa5cuYJFixbBy8sL3t7e2LBhA65cuYIaNWoUd5pfhFwuR3p6OgBAS0vrP1+Uevz4MQAU6La9qKgoPHjwAKtWrUJWVha2b9/+hbLLX7169aClpYVjx44ptB8/fhxlypRBy5Ytc/XlvC9oUepLSE9P/+gvpLVr10ZiYiKWLVtWRFkVrpCQEDg7O6NixYqFNqampiZkMhkAICkpCXp6erCxsVGIuXPnDq5fvw4PD49C2+/7VFRU0KVLF6xduxZCiC+2H2UIIb6amam3b99Gnz59UKVKFVy4cAG//fYbBg4ciGnTpuHChQuoUqUK+vTpgzt37nxwHA0NjSIvrPTu3RupqanYvXt3nv2hoaEwNDT87OsqLS0NAKCurg5NTc3PGut9Kioq0NLSgooKfxUjIuInIRFRCRYQEIDU1FSsXLkSpqamufqtra3x008/Se+zsrIwbdo0WFlZQVNTExYWFvjll1+QkZGhsJ2FhQXatWuHqKgo1KtXD9ra2rCzs5PWx9i+fTvs7OygpaUFBweHXLdu9evXD3p6erhz5w7c3d2hq6uLChUqYOrUqbl+cZw7dy6cnJxQpkwZaGtrw8HBAVu3bs11LDKZDD4+Pli/fj1q1KgBTU1NhIeHS33vrin18uVLjBo1ChYWFtDU1JT++n7u3DmFMbds2QIHBwdoa2ujbNmy+PHHHxEfH5/nscTHx6Njx47Q09NDuXLl8PPPP+d5u1Jeli5dKuVcoUIFeHt7IykpSeF8T5o0CQBQrlw5pdfIWr9+PWxtbdG8eXO4urpi/fr1Ul9iYiLU1NQwZcqUXNtdv34dMpkMS5YskdouXLiAZs2aQVtbG5UqVcJvv/2GkJCQXGvMvE9DQwP169fH8ePHFdqPHz8OR0dHODs759lXqlQp1KxZE4By14BMJkNaWhrWrFkj3VL37uyE+Ph4DBgwAOXLl4empiZq1KiBVatWKYyRs87Lxo0bMWHCBFSsWBE6OjpISUnJ9/gAwNnZGS1atEBAQIBSRYdr166hS5cuMDIygpaWFurVq5fnL9hJSUkYNWoUzMzMoKmpCWtra8yePTtXkSwpKQn9+vWDoaEhSpUqBU9PT4Xr50PS09MRHh4OV1fXXH0531NbtmyBra0ttLW14ejoiIsXLwIAli9fDmtra2hpacHFxSXXdXDr1i04OTmhRo0aaNWqVa6iV1hYGAwNDXMVH3OOp1SpUjA0NET//v3x6tUrhZiQkBC0aNECxsbG0NTUhK2tLYKCgvI8xlatWuH+/fuIjY396PlQ9vMGANatW4cGDRpAR0cHpUuXRtOmTRVmDuV8Tu7fv1/6nFy+fDmAtwW5rl27wsjICDo6OmjUqBHCwsJy7WPx4sWoUaOGtI969eohNDRU6lf2s+x9c+bMwatXrxAcHIxy5cop9JUtWxbLly9HWloaAgICPjjOu2tKFfQzRdnr+30//PADdHV1Fc5DjsePHyMyMhJdunSBpqYmjh49iq5du6Jy5crQ1NSEmZkZRo8enev7NOdz/Pbt22jbti309fXRu3dvqe/9NaXkcjkWLlyIGjVqQEtLC+XLl8eQIUPw4sULKcbCwgKXL1/G4cOHpc+knHOV35pSp06dQuvWrWFoaAgdHR00a9Ys1+fjp37NiYi+WoKIiEqsihUriipVqigd7+npKQCILl26iMDAQNG3b18BQHTs2FEhztzcXFSrVk2YmpqKyZMniwULFoiKFSsKPT09sW7dOlG5cmUxa9YsMWvWLGFoaCisra1Fdna2wn60tLTEd999J/r06SOWLFki2rVrJwCIiRMnKuyrUqVKYvjw4WLJkiVi/vz5okGDBgKA2Lt3r0IcAFG9enVRrlw5MWXKFBEYGCjOnz8v9U2aNEmK7dWrl9DQ0BBjxowRK1asELNnzxbt27cX69atk2JCQkIEAFG/fn2xYMEC4evrK7S1tYWFhYV48eJFrmOpUaOGGDBggAgKChKdO3cWAMTSpUs/es4nTZokAAhXV1exePFi4ePjI1RVVUX9+vVFZmamEEKIHTt2iB9++EEAEEFBQeLPP/8U//zzzwfHTU9PF6VKlRLTpk0TQgixdu1aoaqqKh49eiTFtGjRQtja2ubadsqUKUJVVVUkJCQIIYR48OCBMDIyEmXKlBFTpkwRc+fOFTY2NqJWrVoCgLh79+4Hc/Hz88sVV6VKFTFjxgxx4MABIZPJpHMql8tF6dKlRZs2baRYZa6BP//8U2hqaoomTZqIP//8U/z555/ixIkTQgghEhISRKVKlYSZmZmYOnWqCAoKEt9//70AIBYsWCCNcejQIQFA2Nraitq1a4v58+eLmTNnirS0tHyPDYDw9vYWR44cEQDEvHnzpL6ca+jMmTNS26VLl4ShoaGwtbUVs2fPFkuWLBFNmzYVMplMbN++XYpLS0sT9vb2okyZMuKXX34Ry5YtE3379hUymUz89NNPUpxcLhdNmzYVKioqYvjw4WLx4sWiRYsWwt7eXgAQISEhH/zaHDt2TAAQu3fvzvPY7O3thZmZmcL3c+XKlcWSJUuEra2tmDdvnpgwYYLQ0NAQzZs3z3Mf8fHxonz58rm+H1q3bi26dOkivc/5XqhTp47o1KmTWLp0qRg0aJAAIMaNG6ewbf369UW/fv3EggULxOLFi4Wbm5sAIJYsWZJr/w8ePBAAxOLFiz94LoRQ/vNm8uTJAoBwcnISc+bMEYsWLRK9evUS48ePl2LMzc2FtbW1KF26tPD19RXLli0Thw4dEgkJCaJ8+fJCX19f/Prrr2L+/PmiVq1aQkVFReEaCA4Olj6Ply9fLhYtWiQGDhwoRo4cKcUo81mWlwoVKggLC4sPxlhYWIhKlSpJ73Ou53e/j5s1ayaaNWsmvVf2M0XZ6zs/Ocf97Nkzhfbff/9dABAHDx4UQggxYsQI0bZtWzFjxgyxfPlyMXDgQKGqqqpw3Qnx9nNcU1NTWFlZCU9PT7Fs2TKxdu1aqc/c3FwhftCgQUJNTU14eXmJZcuWifHjxwtdXd1cn9uVKlUSNjY20mfS33//LYT4v8+aQ4cOSWNGRkYKDQ0N4ejoKObNmycWLFgg7O3thYaGhjh16lSuYy/o15yI6GvFohQRUQmVnJwsAIgOHTooFR8bGysAiEGDBim0//zzzwr/ky/E21+2AEi/9AshxP79+wUAoa2tLe7fvy+1L1++PNf/fOcUv0aMGCG1yeVy4eHhITQ0NMSTJ0+k9levXinkk5mZKWrWrClatGih0A5AqKioiMuXL+c6tveLUoaGhsLb2zvfc5GZmSmMjY1FzZo1xevXr6X2vXv3CgDC398/17FMnTpVYYw6deoIBweHfPchhBCPHz8WGhoaws3NTaFot2TJEgFArFq1SmrL+YX93XPzIVu3bhUAxM2bN4UQQqSkpAgtLS2FIkzO1+bixYsK29ra2iqc3xEjRgiZTCYV+YQQ4tmzZ8LIyEipolRYWJgAIP78808hhBCPHj0SAMThw4fFy5cvhaqqqggLCxNCvC3aABDTp0+Xtlf2GtDV1RWenp659j9w4EBhamoqnj59qtDeo0cPYWhoKI2f84tilSpVcu0zPzlFKSGEaN68uTAxMZG2zaso1bJlS2FnZyfS09OlNrlcLpycnMR3330ntU2bNk3o6uqKGzduKOzP19dXqKqqiri4OCGEEDt37hQAREBAgBSTlZUlmjRpolRRasWKFXleAznHpqmpqfD1zblmTExMREpKitT+fuHx3ULey5cvReXKlaWvf06/lpaWQn451/iAAQMU8vjhhx9EmTJlFNry+vq4u7vnW4TX0NAQw4YNy7PvQ+Pmda3dvHlTqKioiB9++EHh+1aIt1/LHDmfk+Hh4Qoxo0aNEgDE0aNHpbaXL18KS0tLYWFhIY3ZoUMHUaNGjQ/m+7HPsrwkJSUp9bMhp3Cb83VWpiil7GeKstd3fnI+U5YvX67Q3qhRI1GxYkXpHOZ1ncycOVPIZDKFn1M5n+O+vr654t8vSh09elQAEOvXr1eICw8Pz9Veo0YNhfOT4/2ilFwuF999951wd3dXuIZevXolLC0tRatWraS2T/maExF9zXj7HhFRCZVzy5GyC1vv27cPADBmzBiF9v/9738AkOvWEltbWzg6OkrvGzZsCABo0aIFKleunKs9r7VJfHx8pH/n3CqUmZmJAwcOSO3a2trSv1+8eIHk5GQ0adIkz1sVmjVrptSTvEqVKoVTp07h4cOHefafPXsWjx8/xvDhw6GlpSW1e3h4wMbGJs/bbIYOHarwvkmTJh9dj+XAgQPIzMzEqFGjFNYW8fLygoGBQZ77Udb69etRr149aVF0fX19eHh4KNzC16lTJ6ipqWHTpk1S26VLl3DlyhWFp/WFh4fD0dERtWvXltqMjIyk21s+xsnJCSoqKtJaUcePH4e6ujrq168PPT092NvbS7eo5Pz33Vu6CnINvE8IgW3btqF9+/YQQuDp06fSy93dHcnJybnG8fT0VNinsiZPnoyEhIR815Z6/vw5Dh48iG7duuHly5dSHs+ePYO7uztu3rwp3R66ZcsWNGnSBKVLl1bI2dXVFdnZ2Thy5AiAt9+3ampqGDZsmLQfVVVVjBgxQqmcnz17BgAoXbp0nv0tW7ZUuHUp5/u5c+fOCp8t73+fb9y4EY0bN0azZs3g5OSEbt26KTxN8eDBg8jIyECbNm1y7TOv76Vnz54p3Eb57tcnOTkZT58+RbNmzXDnzh0kJyfnGjPnPH6MMtfazp07IZfL4e/vn2tNoJx1tHJYWlrC3d1doW3fvn1o0KCBwjWup6eHwYMH4969e7hy5QqAt59TDx48wJkzZ/LN92OfZXl5+fIlgI//bMjp/9jtq+9S9jNF2es7P25ubihXrpzCLXx3797FyZMn0bNnT+nr8u7XMy0tDU+fPoWTkxOEELluKweg8H2Uny1btsDQ0BCtWrVSyN3BwQF6eno4dOjQR8d4X2xsLG7evIlevXrh2bNn0phpaWlo2bIljhw5It3W+ClfcyKir9l/e9VXIiLKl4GBAYD/+wXkY+7fvw8VFZVcT3YzMTFBqVKlcP/+fYX2dwtPAGBoaAgAMDMzy7P93bU2gLcLvVapUkWhrWrVqgCgsDbN3r178dtvvyE2NlZhbav3f/kDoPAEtw8JCAiAp6cnzMzM4ODggLZt26Jv375SPjnHWq1atVzb2tjY5FqYW0tLK9e6LKVLl851zO/Lbz8aGhqoUqVKrnOurKSkJOzbtw8+Pj64deuW1O7s7Ixt27bhxo0bqFq1KsqWLYuWLVti8+bNmDZtGgBg06ZNUFNTU3ic+v379xUKkDmUfQpgqVKlUKNGDYXCU506daRfGJ2cnBT6NDQ00KBBA2n7glwD73vy5AmSkpIQHByc71MmcxaRz6HsdfS+pk2bonnz5ggICMhVWAHerrEkhMDEiRMxceLEfHOpWLEibt68iQsXLuS6rt7P+f79+zA1NYWenp5Cf17X7oeIfBYB/9Tv8wEDBmDAgAH57i8sLAz16tVD+fLlP7rPnILZixcvpM+148ePY9KkSYiOjs613lRycrKUz7vHp8z1osy1dvv2baioqChVAM/rWrp//75UxHtX9erVpf6aNWti/PjxOHDgABo0aABra2u4ubmhV69ecHZ2lrb52GdZXnKKTR/72aBs8epdyn6mKHt950dNTQ3du3fH0qVLER8fj4oVK0oFqneL5XFxcfD398fu3btzfR6/X7xUU1NDpUqVPnqMN2/eRHJyMoyNjT8p9/zGBN4WxPOTnJyM0qVLf9LXnIjoa8aiFBFRCWVgYIAKFSrg0qVLBdpOmV/cgLezMQrSnt8vvR9y9OhRfP/992jatCmWLl0KU1NTqKurIyQkJM9FbpWd3dKtWzc0adIEO3bswN9//405c+Zg9uzZ2L59e54zNz4mv2MuLlu2bEFGRgbmzZuHefPm5epfv369tBhxjx490L9/f8TGxqJ27drYvHkzWrZsibJlyxZqTo0bN8ayZcuQlJSE48ePw8nJSepzcnLCqlWr8ObNGxw7dgwODg7SDLWCXgPvy5ld8OOPP+b7C5+9vb3C+0+ZJZVj0qRJcHFxwfLly3M9KTEnl59//jnX7JkcOYU+uVyOVq1aYdy4cXnG5RRwP1eZMmUAvC345PUL+Zf6Pt+3bx/69+//SWPfvn0bLVu2hI2NDebPnw8zMzNoaGhg3759WLBgQZ4LZSclJX30mv7cay0vn3MtVa9eHdevX8fevXsRHh6Obdu2YenSpfD395e+fz/ls8zQ0BCmpqa4cOHCB/d/4cIFVKxYUSoEKkuZz5TCuL5//PFHLFmyBBs2bMDPP/+MDRs2wNbWVprRmZ2djVatWuH58+cYP348bGxsoKuri/j4ePTr1y/XdaKpqanU0/DkcjmMjY0VZp2+K79C28fGBN4uQP/ujNR35RSeC/vnFxFRcWNRioioBGvXrh2Cg4MRHR2d50yXd5mbm0Mul+PmzZvSX+yBt09USkpKgrm5eaHmJpfLcefOHYVfPm7cuAEA0u1C27Ztg5aWFvbv36/wSO6QkJDP3r+pqSmGDx+O4cOH4/Hjx6hbty6mT5+ONm3aSMd6/fp1tGjRQmG769evF9q5eHc/7/6VOzMzE3fv3s3ziWjKWL9+PWrWrCk9se9dy5cvR2hoqPRLbceOHTFkyBDpdpsbN27Az88vV57vzrjKkVdbfho3boygoCAcOHAA58+fx9ixY6U+JycnvH79GmFhYbhz5w46d+4s9RXkGsiroFquXDno6+sjOzv7k89nQTRr1gwuLi6YPXs2/P39Ffpyvsbq6uofzcXKygqpqakfjTM3N0dkZCRSU1MVZktdv35dqXxtbGwAvL31yc7OTqltPtelS5cQFxcHDw+PT9p+z549yMjIwO7duxVmVeV321R8fDwyMzMVPtfyouy1ZmVlBblcjitXruRbQPgQc3PzPL8+165dk/pz6Orqonv37ujevTsyMzPRqVMnTJ8+HX5+flLh9kOfZflp164d/vjjDxw7dizX0w+BtwW6e/fuYciQIQU+PmU+U5S9vj+kYcOGsLKyQmhoKFq1aoXLly9j+vTpUv/Fixdx48YNrFmzBn379pXaIyIiPnmfObkfOHAAzs7OHy06KvtHHisrKwBv/5ikzDn5lK85EdHXimtKERGVYOPGjYOuri4GDRqExMTEXP23b9/GokWLAABt27YFACxcuFAhZv78+QDwyb9Afsi7jwcXQmDJkiVQV1dHy5YtAbydMSGTyZCdnS3F3bt3Dzt37vzkfWZnZ+e6bcPY2BgVKlSQbtepV68ejI2NsWzZMoVbeP766y9cvXq10M6Fq6srNDQ08PvvvyvMMFm5ciWSk5M/aT///vsvjhw5gm7duqFLly65Xv3798etW7dw6tQpAG9vrXN3d8fmzZuxceNGaGhooGPHjgpjuru7Izo6GrGxsVLb8+fP850pkJecX3znz5+PN2/eKMyUsrCwgKmpqfT4+Xd/SS7INaCrq4ukpCSFNlVVVXTu3Bnbtm3Lc9bgkydPlD4GZeWsLfX+7YLGxsbSLKpHjx59MJdu3bohOjoa+/fvzxWXlJSErKwsAG+/b7OyshAUFCT1Z2dnY/HixUrl6uDgAA0NDZw9e1ap+MKwb98+lC9fHvXq1fuk7XNmUr37PZOcnJxvsTomJgYAFK65/MZV5lrr2LEjVFRUMHXq1FyzbZSZKda2bVucPn0a0dHRUltaWhqCg4NhYWEh3RaYs95XDg0NDdja2kIIgTdv3ij1WZafsWPHQltbG0OGDMm1n+fPn2Po0KHQ0dFRKB4rS5nPFGWv74/p3bs3zp8/j0mTJkEmkymsW5bXdSKEkH7mfapu3bohOztbuj3xXVlZWQqfQXl9JuXFwcEBVlZWmDt3LlJTU3P153w2fM7XnIjoa8WZUkREJVjOX5G7d++O6tWro2/fvqhZsyYyMzNx4sQJbNmyBf369QMA1KpVC56enggODkZSUhKaNWuG06dPY82aNejYsSOaN29eqLlpaWkhPDwcnp6eaNiwIf766y+EhYXhl19+kW5/8PDwwPz589G6dWv06tULjx8/RmBgIKytrT9660l+Xr58iUqVKqFLly6oVasW9PT0cODAAZw5c0a61U1dXR2zZ89G//790axZM/Ts2ROJiYlYtGgRLCwsMHr06EI5B+XKlYOfnx+mTJmC1q1b4/vvv8f169exdOlS1K9fHz/++GOBxwwNDYUQAt9//32e/W3btoWamhrWr18vrWvTvXt3/Pjjj1i6dCnc3d1z3XY2btw4rFu3Dq1atcKIESOgq6uLFStWoHLlynj+/LlSswEqV64MMzMzREdHw8LCAhUqVFDod3JywrZt2yCTyRTWzCnINeDg4IADBw5g/vz5qFChAiwtLdGwYUPMmjULhw4dQsOGDeHl5QVbW1s8f/4c586dw4EDB/D8+XNlTq3SmjVrhmbNmuHw4cO5+gIDA9G4cWPY2dnBy8sLVapUQWJiIqKjo/HgwQP8888/AN4WDXbv3o127dqhX79+cHBwQFpaGi5evIitW7fi3r17KFu2LNq3bw9nZ2f4+vri3r17sLW1xfbt2/Nc7DsvWlpacHNzw4EDBzB16tRCPQ/5CQsLQ5s2bZSeRfI+Nzc3aGhooH379hgyZAhSU1Pxxx9/wNjYOM9iX0REBCpXrow6dep8cFxlrzVra2v8+uuvmDZtGpo0aYJOnTpBU1MTZ86cQYUKFTBz5swP7sfX1xcbNmxAmzZtMHLkSBgZGWHNmjW4e/cutm3bJt1C5ubmBhMTEzg7O6N8+fK4evUqlixZAg8PD+jr6yMpKemjn2X5+e6777BmzRr07t0bdnZ2GDhwICwtLXHv3j2sXLkST58+xYYNG6QZPAX1sc8UZa/vj/nxxx8xdepU7Nq1C87OzgqL8tvY2MDKygo///wz4uPjYWBggG3btn10rb+PadasGYYMGYKZM2ciNjYWbm5uUFdXx82bN7FlyxYsWrQIXbp0AfD2MykoKAi//fYbrK2tYWxsnGv2LfB2jcUVK1agTZs2qFGjBvr374+KFSsiPj4ehw4dgoGBAfbs2aPUzy8iov+cIn/eHxERFbkbN24ILy8vYWFhITQ0NIS+vr5wdnYWixcvVng0/Zs3b8SUKVOEpaWlUFdXF2ZmZsLPz08hRoi3jzr38PDItR8AuR5VfffuXQFAzJkzR2rz9PQUurq64vbt28LNzU3o6OiI8uXLi0mTJuV6xPrKlSvFd999JzQ1NYWNjY0ICQmRHh3/sX2/2zdp0iQhhBAZGRli7NixolatWkJfX1/o6uqKWrVqiaVLl+babtOmTaJOnTpCU1NTGBkZid69e4sHDx4oxOQcy/vyyjE/S5YsETY2NkJdXV2UL19eDBs2TLx48SLP8Z48efLBsezs7ETlypU/GOPi4iKMjY3FmzdvhBBCpKSkCG1tbQFArFu3Ls9tzp8/L5o0aSI0NTVFpUqVxMyZM8Xvv/8uAIiEhASljrNnz54CgOjVq1euvvnz5wsAonr16rn6lL0Grl27Jpo2bSodi6enp9SXmJgovL29hZmZmVBXVxcmJiaiZcuWIjg4WIrJeUz7li1blDoeIfK/7nLGAiDOnDmj0Hf79m3Rt29fYWJiItTV1UXFihVFu3btxNatWxXiXr58Kfz8/IS1tbXQ0NAQZcuWFU5OTmLu3LkiMzNTinv27Jno06ePMDAwEIaGhqJPnz7i/PnzAoAICQn56DFs375dyGQyERcX99Fjy+v7+d3j/di5S0pKEmpqamLz5s25+vK7xkNCQgQAcffuXalt9+7dwt7eXmhpaQkLCwsxe/ZssWrVqlxx2dnZwtTUVEyYMOGDeeVQ9loTQohVq1ZJnw+lS5cWzZo1ExEREVJ/fp+TQry9Brp06SJKlSoltLS0RIMGDcTevXsVYpYvXy6aNm0qypQpIzQ1NYWVlZUYO3asSE5OFkIU7LMsPxcuXBA9e/YUpqam0vdFz549xcWLF3PF5vV1aNasmWjWrFmuWGU+U5S9vj+mfv36AkCex33lyhXh6uoq9PT0RNmyZYWXl5f4559/cn1v5Pc5ntNnbm6eqz04OFg4ODgIbW1toa+vL+zs7MS4cePEw4cPpZiEhATh4eEh9PX1BQDpXOV8vxw6dEhhzPPnz4tOnTpJX3Nzc3PRrVs3ERkZKYQonK85EdHXRibEJ6w8S0RE9Bn69euHrVu35nmbAv13jBo1CsuXL0dqaupXt9g7KS87Oxu2trbo1q1bnrckFabNmzejd+/eePr0aa4n5H0JO3fuRK9evXD79m2Ympp+8f0RERFRwXBNKSIiIvqo169fK7x/9uwZ/vzzTzRu3JgFqf84VVVVTJ06FYGBgV+8UFyqVCn8/vvvRVKQAoDZs2fDx8eHBSkiIqKvFGdKERFRkeNMqf+e2rVrw8XFBdWrV0diYiJWrlyJhw8fIjIyEk2bNi3u9IiIiIjoP4gLnRMREdFHtW3bFlu3bkVwcDBkMhnq1q2LlStXsiBFRERERJ+MM6WIiIiIiIiIiKjIcU0pIiIiIiIiIiIqcl9NUWrWrFmQyWQYNWqU1Jaeng5vb2+UKVMGenp66Ny5MxITExW2i4uLg4eHB3R0dGBsbIyxY8ciKytLISYqKgp169aFpqYmrK2tsXr16lz7DwwMhIWFBbS0tNCwYUOcPn36SxwmERERERERERHhK1lT6syZM1i+fDns7e0V2kePHo2wsDBs2bIFhoaG8PHxQadOnXD8+HEAbx9h7OHhARMTE5w4cQKPHj1C3759oa6ujhkzZgAA7t69Cw8PDwwdOhTr169HZGQkBg0aBFNTU7i7uwMANm3ahDFjxmDZsmVo2LAhFi5cCHd3d1y/fh3GxsZKHYNcLsfDhw+hr68PmUxWiGeHiIiIiIiIiOi/QwiBly9fokKFClBR+cB8KFHMXr58Kb777jsREREhmjVrJn766SchhBBJSUlCXV1dbNmyRYq9evWqACCio6OFEELs27dPqKioiISEBCkmKChIGBgYiIyMDCGEEOPGjRM1atRQ2Gf37t2Fu7u79L5BgwbC29tbep+dnS0qVKggZs6cqfRx/PvvvwIAX3zxxRdffPHFF1988cUXX3zxxRdfgPj3338/WEsp9plS3t7e8PDwgKurK3777TepPSYmBm/evIGrq6vUZmNjg8qVKyM6OhqNGjVCdHQ07OzsUL58eSnG3d0dw4YNw+XLl1GnTh1ER0crjJETk3ObYGZmJmJiYuDn5yf1q6iowNXVFdHR0fnmnZGRgYyMDOm9+P/rxf/7778wMDD4tJNBRERERERERPQfl5KSAjMzM+jr638wrliLUhs3bsS5c+dw5syZXH0JCQnQ0NBAqVKlFNrLly+PhIQEKebdglROf07fh2JSUlLw+vVrvHjxAtnZ2XnGXLt2Ld/cZ86ciSlTpuRqNzAwYFGKiIiIiIiIiL55H1veqNgWOv/333/x008/Yf369dDS0iquND6Zn58fkpOTpde///5b3CkREREREREREf1nFFtRKiYmBo8fP0bdunWhpqYGNTU1HD58GL///jvU1NRQvnx5ZGZmIikpSWG7xMREmJiYAABMTExyPY0v5/3HYgwMDKCtrY2yZctCVVU1z5icMfKiqakpzYri7CgiIiIiIiIiooIptqJUy5YtcfHiRcTGxkqvevXqoXfv3tK/1dXVERkZKW1z/fp1xMXFwdHREQDg6OiIixcv4vHjx1JMREQEDAwMYGtrK8W8O0ZOTM4YGhoacHBwUIiRy+WIjIyUYoiIiIiIiIiIqHAV25pS+vr6qFmzpkKbrq4uypQpI7UPHDgQY8aMgZGREQwMDDBixAg4OjqiUaNGAAA3NzfY2tqiT58+CAgIQEJCAiZMmABvb29oamoCAIYOHYolS5Zg3LhxGDBgAA4ePIjNmzcjLCxM2u+YMWPg6emJevXqoUGDBli4cCHS0tLQv3//IjobRERERERERETflmKbKaWMBQsWoF27dujcuTOaNm0KExMTbN++XepXVVXF3r17oaqqCkdHR/z444/o27cvpk6dKsVYWloiLCwMERERqFWrFubNm4cVK1bA3d1diunevTvmzp0Lf39/1K5dG7GxsQgPD8+1+DkRERGRMoKCgmBvby/d4u/o6Ii//vpL6k9ISECfPn1gYmICXV1d1K1bF9u2bZP67927h4EDB8LS0hLa2tqwsrLCpEmTkJmZqbAfIQTmzp2LqlWrQlNTExUrVsT06dOl/mPHjsHZ2RllypSBtrY2bGxssGDBgo/mf+HCBTRp0gRaWlowMzNDQEBArpgtW7bAxsYGWlpasLOzw759+z7lVBEREdE3TCaEEMWdREmQkpICQ0NDJCcnc30pIiKib9yePXugqqqK7777DkIIrFmzBnPmzMH58+dRo0YNuLm5ISkpCUuWLEHZsmURGhqKSZMm4ezZs6hTpw7Cw8OxadMm9OzZE9bW1rh06RK8vLzQp08fzJ07V9rPyJEj8ffffyMgIAB2dnZ4/vw5nj9/jlatWgEAzp8/j2vXrsHe3h66uro4duwYhgwZggULFmDw4MF55p6SkoKqVavC1dUVfn5+uHjxIgYMGICFCxdK25w4cQJNmzbFzJkz0a5dO4SGhmL27Nk4d+5crpnwRERE9O1RtkbColQhYVGKiIiIPsTIyAhz5szBwIEDoaenh6CgIPTp00fqL1OmDGbPno1Bgwbluf2cOXMQFBSEO3fuAACuXr0Ke3t7XLp0CdWqVVM6j06dOkFXVxd//vlnnv1BQUH49ddfkZCQAA0NDQCAr68vdu7ciWvXrgF4O8s8LS0Ne/fulbZr1KgRateujWXLlimdCxEREZVMytZIvurb94iIiIj+67Kzs7Fx40akpaVJD1FxcnLCpk2b8Pz5c8jlcmzcuBHp6elwcXHJd5zk5GQYGRlJ7/fs2YMqVapg7969sLS0hIWFBQYNGoTnz5/nO8b58+dx4sQJNGvWLN+Y6OhoNG3aVCpIAYC7uzuuX7+OFy9eSDGurq4K27m7uyM6OvqD54KIiIjoXSxKEREREX0BFy9ehJ6eHjQ1NTF06FDs2LFDejrw5s2b8ebNG5QpUwaampoYMmQIduzYAWtr6zzHunXrFhYvXowhQ4ZIbXfu3MH9+/exZcsWrF27FqtXr0ZMTAy6dOmSa/tKlSpBU1MT9erVg7e3d76zsYC36129v65mzvuEhIQPxuT0ExERESmj2J6+R0RERFSSVatWDbGxsUhOTsbWrVvh6emJw4cPw9bWFhMnTkRSUhIOHDiAsmXLYufOnejWrRuOHj0KOzs7hXHi4+PRunVrdO3aFV5eXlK7XC5HRkYG1q5di6pVqwIAVq5cCQcHB1y/fl3hlr6jR48iNTUVJ0+ehK+vL6ytrdGzZ8+iORFERERE+WBRioiIiOgL0NDQkGY+OTg44MyZM1i0aBHGjRuHJUuW4NKlS6hRowYAoFatWjh69CgCAwMV1mR6+PAhmjdvDicnJwQHByuMb2pqCjU1NakgBQDVq1cHAMTFxSkUpSwtLQEAdnZ2SExMxOTJk/MtSpmYmCAxMVGhLee9iYnJB2Ny+omIiIiUwdv3iIiIiIpAzsymV69eAQBUVBT/N0xVVRVyuVx6Hx8fDxcXFzg4OCAkJCRXvLOzM7KysnD79m2p7caNGwAAc3Pzj+aRH0dHRxw5cgRv3ryR2iIiIlCtWjWULl1aiomMjFTYLiIiQlozi4iIiEgZLEoRERERFTI/Pz8cOXIE9+7dw8WLF+Hn54eoqCj07t0bNjY2sLa2xpAhQ3D69Gncvn0b8+bNQ0REBDp27Ajg/wpSlStXxty5c/HkyRMkJCQorNnk6uqKunXrYsCAATh//jxiYmIwZMgQtGrVSpo9FRgYiD179uDmzZu4efMmVq5ciblz5+LHH3+UxlmyZAlatmwpve/Vqxc0NDQwcOBAXL58GZs2bcKiRYswZswYKeann35CeHg45s2bh2vXrmHy5Mk4e/YsfHx8vvCZJSIiopKEt+8RERERFbLHjx+jb9++ePToEQwNDWFvb4/9+/ejVatWAIB9+/bB19cX7du3R2pqKqytrbFmzRq0bdsWwNtZR7du3cKtW7dQqVIlhbGFEADezrTas2cPRowYgaZNm0JXVxdt2rTBvHnzpFi5XA4/Pz/cvXsXampqsLKywuzZsxUWTH/69KnCbCtDQ0P8/fff8Pb2hoODA8qWLQt/f38MHjxYinFyckJoaCgmTJiAX375Bd999x127tyJmjVrFv7JJCIiohJLJnL+z4Y+S0pKCgwNDZGcnAwDA4PiToeIiIiIiIiIqFgoWyPh7XtERERERERERFTkWJQiIiIiIiIiIqIixzWliIiI6Jtg4RtW3ClQIbs3y6O4UyAiIqLPwJlSRERERERERERU5FiUIiIiIiIiIiKiIseiFBERERERERERFTkWpYiIiIiIiIiIqMixKEVEREREREREREWORSkiIiIiIiIiIipyLEoREREREREREVGRY1GKiIiIiIiIiIiKHItSRERERERERERU5FiUIiIiIiIiIiKiIseiFBERERERERERFTkWpYiIiIiIiIiIqMixKEVEREREREREREWORSkiIiIiIiIiIipyLEoREREREREREVGRY1GKiIiIiIiIiIiKHItSRERERERERERU5FiUIiIiIiIiIiKiIseiFBERERERERERFTkWpYiIiIiIiIiIqMixKEVEREREREREREWORSkiIiIiIiIiIipyLEoREREREREREVGRY1GKiIiIiIiIiIiKHItSRERERERERERU5FiUIiIiIiIiIiKiIseiFBERERERERERFTkWpYiIiIiIiIiIqMixKEVEREREREREREWuWItSQUFBsLe3h4GBAQwMDODo6Ii//vpL6ndxcYFMJlN4DR06VGGMuLg4eHh4QEdHB8bGxhg7diyysrIUYqKiolC3bl1oamrC2toaq1evzpVLYGAgLCwsoKWlhYYNG+L06dNf5JiJiIiIiIiIiKiYi1KVKlXCrFmzEBMTg7Nnz6JFixbo0KEDLl++LMV4eXnh0aNH0isgIEDqy87OhoeHBzIzM3HixAmsWbMGq1evhr+/vxRz9+5deHh4oHnz5oiNjcWoUaMwaNAg7N+/X4rZtGkTxowZg0mTJuHcuXOoVasW3N3d8fjx46I5EURERERERERE3xiZEEIUdxLvMjIywpw5czBw4EC4uLigdu3a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w78kExERERHR5/Lz80ObNm1QuXJlvHz5EqGhoYiKisL+/fulgtSrV6+wbt06pKSkICUlBQBQrlw5qKqqYs+ePUhMTESjRo2gpaWFiIgIzJgxAz///HOufa1cuRINGzZEzZo1c/XlrNNbuXJl1KhRA+fPn8f8+fMxYMAAhVzj4+Oxdu1aAG9v2fP09MSiRYvQsGFDJCQkAAC0tbWlp/196Pjoy2BRioiIiIiIiIg+6kMPqoqKisKpU6cAANbW1grb3b17FxYWFlBXV0dgYCBGjx4NIQSsra0xf/58eHl5KcQnJydj27ZtWLRoUZ55LF68GBMnTsTw4cPx+PFjVKhQAUOGDIG/v78U8/6DqoKDg5GVlQVvb2+F2/48PT2xevXqjx4ffRlcU6qQlKQ1pThTquThTCkiIv58K4n4842IiOjrxDWliIiIiIiIiIjoq8WiFBERERERERERFTmuKUVERERERET0H8Xb00ueb+n2dM6UIiIiIiIiIiKiIseiFBERERERERERFTkWpYiIiIiIiIiIqMixKEVEREREREREREWORSkiIiIiIiIiIipyLEoREREREREREVGRY1GKiIiIiIiIiIiKHItSRERERERERERU5FiUIiIiIiIiIiKiIseiFBERERERERERFTkWpYiIiIiIiIiIqMixKEVEREREREREREWORSkiIiIiIiIiIipyLEoREREREREREVGRY1GKiIiIiIiIiIiKHItSRERERERERERU5FiUIiIiIiIiIiKiIseiFBERERERERERFTkWpYiIiIiIiIiIqMixKEVEREREREREREWORSkiIiIiIiIiIipyLEoREREREREREVGRK9aiVFBQEOzt7WFgYAADAwM4Ojrir7/+kvrT09Ph7e2NMmXKQE9PD507d0ZiYqLCGHFxcfDw8ICOjg6MjY0xduxYZGVlKcRERUWhbt260NTUhLW1NVavXp0rl8DAQFhYWEBLSwsNGzbE6dOnv8gxExERERERERFRMRelKlWqhFmzZiEmJgZnz55FixYt0KFDB1y+fBkAMHr0aOzZswdbtmzB4cOH8fDhQ3Tq1EnaPjs7Gx4eHsjMzMSJEyewZs0arF69Gv7+/lLM3bt34eHhgebNmyM2NhajRo3CoEGDsH//film06ZNGDNmDCZNmoRz586hVq1acHd3x+PHj4vuZBARERER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fv2goaGBAwcOYOHChUhLS4OZmRk6d+6MCRMmSLGqqqrYu3cvhg0bBkdHR+jq6sLT0xNTp06VYiwtLREWFobRo0dj0aJFqFSpElasWAF3d3cppnv37njy5An8/f2RkJCA2rVrIzw8vFCOk4iIiIiIiIiIFBW4KNWlSxdERUUVyiLjQogP9puZmeHw4cMfHcfc3DzX7Xnvc3Fxwfnz5z8Y4+Pjw9v1iIiIiIiIiIiKQIGLUkuWLEHXrl1x9OhR2NnZQV1dXaF/5MiRhZYcERERERERERGVTAUuSm3YsAF///03tLS0EBUVBZlMJvXJZDIWpYiIiIiIiIiI6KMKXJT69ddfMWXKFPj6+kJFpcDrpBMRERERERERERX86XuZmZno3r07C1JERERERERERPTJClxZ8vT0xKZNm75ELkRERERERERE9I0o8O172dnZCAgIwP79+2Fvb59rofP58+cXWnJERERERERERFQyFbgodfHiRdSpUwcAcOnSJYW+dxc9JyIiIiIiIiIiyk+Bi1KHDh36EnkQEREREREREdE3hKuVExERERERERFRkVOqKDV06FA8ePBAqQE3bdqE9evXf1ZSRERERERERERUsil1+165cuVQo0YNODs7o3379qhXrx4qVKgALS0tvHjxAleuXMGxY8ewceNGVKhQAcHBwV86byIiIiIiIiIi+g9Tqig1bdo0+Pj4YMWKFVi6dCmuXLmi0K+vrw9XV1cEBwejdevWXyRRIiIiIiIiIiIqOZRe6Lx8+fL49ddf8euvv+LFixeIi4vD69evUbZsWVhZWfHJe0REREREREREpLQCP30PAEqXLo3SpUsXdi5ERERERERERPSN4NP3iIiIiIiIiIioyLEoRURERERERERERY5FKSIiIiIiIiIiKnIsShERERERERERUZFjUYqIiIiIiIiIiIqcUk/fq1OnDmQymVIDnjt37rMSIiIiIiIiIiKikk+polTHjh2lf6enp2Pp0qWwtbWFo6MjAODkyZO4fPkyhg8f/kWSJCIiIiIiIiKikkWpotSkSZOkfw8aNAgjR47EtGnTcsX8+++/hZsdERERERERERGVSAVeU2rLli3o27dvrvYff/wR27ZtK5SkiIiIiIiIiIioZCtwUUpbWxvHjx/P1X78+HFoaWkVSlJERERERERERFSyKXX73rtGjRqFYcOG4dy5c2jQoAEA4NSpU1i1ahUmTpxY6AkSEREREREREVHJU+CilK+vL6pUqYJFixZh3bp1AIDq1asjJCQE3bp1K/QEiYiIiIiIiIio5ClwUQoAunXrxgIUERERERERERF9sgKvKQUASUlJWLFiBX755Rc8f/4cAHDu3DnEx8cXanJERERERERERFQyFXim1IULF+Dq6gpDQ0Pcu3cPgwYNgpGREbZv3464uDisXbv2S+RJREREREREREQlSIFnSo0ZMwb9+vXDzZs3FZ6217ZtWxw5cqRQkyMiIiIiIiIiopKpwEWpM2fOYMiQIbnaK1asiISEhEJJioiIiIiIiIiISrYCF6U0NTWRkpKSq/3GjRsoV65coSRFREREREREREQlW4GLUt9//z2mTp2KN2/eAABkMhni4uIwfvx4dO7cudATJCIiIiIiIiKikqfARal58+YhNTUVxsbGeP36NZo1awZra2vo6+tj+vTpXyJHIiIiIiIiIiIqYQr89D1DQ0NERETg2LFjuHDhAlJTU1G3bl24urp+ifyIiIiIiIiIiKgEKnBRKkfjxo1Rr149aGpqQiaTFWZORERERERERERUwhX49j25XI5p06ahYsWK0NPTw927dwEAEydOxMqVKws9QSIiIiIiIiIiKnkKXJT67bffsHr1agQEBEBDQ0Nqr1mzJlasWFGoyRERERERERERUclU4KLU2rVrERwcjN69e0NVVVVqr1WrFq5du1aoyRERERERERERUclU4KJUfHw8rK2tc7XL5XK8efOmUJIiIiIiIiIiIqKSrcBFKVtbWxw9ejRX+9atW1GnTp1CSYqIiIiIiIiIiEq2Ahel/P394ePjg9mzZ0Mul2P79u3w8vLC9OnT4e/vX6CxZs6cifr160NfXx/Gxsbo2LEjrl+/rhCTnp4Ob29vlClTBnp6eujcuTMSExMVYuLi4uDh4QEdHR0YGxtj7NixyMrKUoiJiopC3bp1oampCWtra6xevTpXPoGBgbCwsICWlhYaNmyI06dPF+h4iIiIiIiIiIhIOQUuSnXo0AF79uzBgQMHoKurC39/f1y9ehV79uxBq1atCjTW4cOH4e3tjZMnTyIiIgJv3ryBm5sb0tLSpJjRo0djz5492LJlCw4fPoyHDx+iU6dOUn92djY8PDyQmZmJEydOYM2aNVi9erVCgezu3bvw8PBA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xxdKUkREREREREREVLIpffve7t27pX/v378fhoaG0vvs7GxERkbCwsKiUJMjIiIiIiIiIqKSSemiVMeOHQEAMpkMnp6eCn3q6uqwsLDAvHnzCjU5IiIiIiIiIiIqmZQuSsnlcgCApaUlzpw5g7Jly36xpIiIiIiIiIiIqGQr8NP37t69+yXyICIiIiIiIiKib0iBi1IAkJaWhsOHDyMuLg6ZmZkKfSNHjiyUxIiIiIiIiIiIqOQqcFHq/PnzaNu2LV69eoW0tDQYGRnh6dOn0NHRgbGxMYtSRERERERERET0USoF3WD06NFo3749Xrx4AW1tbZw8eRL379+Hg4MD5s6d+yVyJCIiIiIiIiKiEqbARanY2Fj873//g4qKClRVVZGRkQEzMzMEBATgl19++RI5EhERERERERFRCVPgopS6ujpUVN5uZmxsjLi4OACAoaEh/v3338LNjoiIiIiIiIiISqQCrylVp04dnDlzBt999x2aNWsGf39/PH36FH/++Sdq1qz5JXIkIiIiIiIiIqISpsAzpWbMmAFTU1MAwPTp01G6dGkMGzYMT548QXBwcKEnSEREREREREREJY/SM6VCQkLQokUL1KtXT2ozNjZGeHj4F0mMiIiIiIiIiIhKLqWLUsOHD0dmZibMzc3RvHlz6VWxYsUvmR8REREREREREZVAShelkpKScOLECRw+fBiHDh1CaGgoMjMzYW1tLRWoXFxcUL58+S+ZLxERERERERERlQBKF6U0NTWl4tPkyZORnp6O6OhoHDp0CFFRUVizZg3evHmDrKysL5kvERERERERERGVAAVe6FzaUEUFKioqkMlkkMlkEEKgcuXKhZkbERERERERERGVUErPlMrMzMTJkycRFRWFgwcP4tSpUzA3N0fTpk3h5eWFdevWwczM7EvmSkREREREREREJYTSRSlDQ0MYGxujffv28Pb2xsaNG2FiYvIlcyMiIiIiIiIiohJK6dv3atWqhYSEBBw5cgRHjx7F8ePH8ezZs8/a+ZEjR9C+fXtUqFABMpkMO3fuVOjv16+fdHtgzqt169YKMc+fP0fv3r1hYGCAUqVKYeDAgUhNTVWIuXDhApo0aQItLS2YmZkhICAgVy5btmyBjY0NtLS0YGdnh3379n3WsRERERERERERUf6ULkqdPHkSz549Q0BAALS1tREQEABTU1PUrFkTPj4+2LJlCx4/flygnaelpaFWrVoIDAzMN6Z169Z49OiR9NqwYYNCf+/evXH58mVERERg7969OHLkCAYPHiz1p6SkwM3NDebm5oiJicGcOXMwefJkBAcHSzEnTpxAz549MXDgQJw/fx4dO3ZEx44dcenSpQIdDxERERERERERKUfp2/cAQE9PD61bt5ZmK718+RJHjx5FREQEvLy8kJqaWqCn77Vp0wZt2rT5YIympma+twlevXoV4eHhOHPmDOrVqwcAWLx4Mdq2bYu5c+eiQoUKWL9+PTIzM7Fq1SpoaGigRo0aiI2Nxfz586Xi1aJFi9C6dWuMHTsWADBt2jRERERgyZIlWLZsmdLHQ0REREREREREyvmkp+/J5XKcOnUKS5cuxe+//44VK1YgJSXliyx0HhUVBWNjY1SrVg3Dhg1TuGUwOjoapUqVkgpSAODq6goVFRWcOnVKimnatCk0NDSkGHd3d1y/fh0vXryQYlxdXRX26+7ujujo6HzzysjIQEpKisKLiIiIiIiIiIiUo/RMqdOnTyMqKgpRUVE4duwYUlNTUalSJbi4uOD3339H8+bNYWFhUajJtW7dGp06dYKlpSVu376NX375BW3atEF0dDRUVVWRkJAAY2NjxQNSU4ORkRESEhIAAAkJCbC0tFSIKV++vNRXunRpJCQkSG3vxuSMkZeZM2diypQphXGYRERERERERETfHKWLUo0aNYKJiQmaN2+O+fPno3nz5rCysvqSuaFHjx7Sv+3s7GBvbw8rKytERUWhZcuWX3TfH+Pn54cxY8ZI77/UTDEiIiIiIiIiopJI6aLU1atXUa1atS+Zy0dVqVIFZcuWxa1bt9CyZUuYmJjkWlw9KysLz58/l9ahMjExQWJiokJMzvuPxeS3lhXwdq0rTU3Nzz4mIiIiIiIiIqJvkdJrShV3QQoAHjx4gGfPnsHU1BQA4OjoiKSkJMTExEgxBw8ehFwuR8OGDaWYI0eO4M2bN1JMREQEqlWrhtKlS0sxkZGRCvuKiIiAo6Pjlz4kIiIiIiIiIqJv0ictdF5YUlNTERsbi9jYWADA3bt3ERsbi7i4OKSmpmLs2LE4efIk7t27h8jISHTo0AHW1tZwd3cHAFSvXh2tW7eGl5cXTp8+jePHj8PHxwc9evRAhQoVAAC9evWChoYGBg4ciMuXL2PTpk1YtGiRwq13P/30E8LDwzFv3jxcu3YNkydPxtmzZ+Hj41Pk54SIiIiIiIiI6FtQrEWps2fPok6dOqhTpw4AYMyYMahTpw78/f2hqqqKCxcu4Pvvv0fVqlUxcOBAODg44OjRowq3za1fvx42NjZo2bIl2rZti8aNGyM4OFjqNzQ0xN9//427d+/CwcEB//vf/+Dv74/BgwdLMU5OTggNDUVwcDBq1aqFrVu3YufOnahZs2bRnQwiIiIiIiIiom+I0mtKfQkuLi4QQuTbv3///o+OYWRkhNDQ0A/G2Nvb4+jRox+M6dq1K7p27frR/RERERERERER0ecr1plSRERERERERET0bSrwTKl312J6l0wmg5aWFqytrdGhQwcYGRl9dnJERERERERERFQyFbgodf78eZw7dw7Z2dnSE/lu3LgBVVVV2NjYYOnSpfjf//6HY8eOwdbWttATJiIiIiIiIiKi/74C377XoUMHuLq64uHDh4iJiUFMTAwePHiAVq1aoWfPnoiPj0fTpk0xevToL5EvERERERERERGVAAUuSs2ZMwfTpk2DgYGB1GZoaIjJkycjICAAOjo68Pf3R0xMTKEmSkREREREREREJUeBi1LJycl4/PhxrvYnT54gJSUFAFCqVClkZmZ+fnZERERERERERFQifdLtewMGDMCOHTvw4MEDPHjwADt27MDAgQPRsWNHAMDp06dRtWrVws6ViIiIiIiIiIhKiAIvdL58+XKMHj0aPXr0QFZW1ttB1NTg6emJBQsWAABsbGywYsWKws2UiIiIiIiIiIhKjAIXpfT09PDHH39gwYIFuHPnDgCgSpUq0NPTk2Jq165daAkSEREREREREVHJU+Db99atW4dXr15BT08P9vb2sLe3VyhIERERERERERERfUyBi1KjR4+GsbExevXqhX379iE7O/tL5EVERERERERERCVYgYtSjx49wsaNGyGTydCtWzeYmprC29sbJ06c+BL5ERERERERERFRCVTgopSamhratWuH9evX4/Hjx1iwYAHu3buH5s2bw8rK6kvkSEREREREREREJUyBFzp/l46ODtzd3fHixQvcv38fV69eLay8iIiIiIiIiIioBCvwTCkAePXqFdavX4+2bduiYsWKWLhwIX744Qdcvny5sPMjIiIiIiIiIqIS6P+1d9/RUVVtG4fvSQeSAAZI6EV6CR0E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RxcAAADwMgoMDFTnzp01depUzZ49W6+++qoqVqyozz//XBMnTtSECRNUpEgRpUqVSt26dbM1M4+XKlWqv3z++/fvq2TJkpo/f/5T59KnT/+Xj23btq2KFSumK1euaPbs2apSpYqyZ8/+z18kAADAXyCUAgAAcIBGjRqpa9euWrBggebOnasOHTrIYrFo9+7dqlOnjpo3by5JslqtOnfunAoWLPiPnr9EiRJavHixMmTIIG9v72eOcXNzU1xc3FPHixQpolKlSumbb77RggULNGXKlH/+AgEAAP4DLt8DAABwAE9PTzVu3Fj9+vXT9evXbZfH5cmTRxs3btSePXt0+vRptW/fXjdu3PjHz9+sWTOlS5dOderU0c6dOxUWFqZt27apS5cuunLliiQpR44cOnbsmM6ePavbt28rJibG9vi2bdtq9OjRMsaoXr16z+U1AwAAJEQoBQAA4CCBgYG6e/euAgIClClTJknSwIEDVaJECQUEBKhSpUry8/NT3bp1//Fzp0yZUjt27FC2bNlUv359FShQQIGBgYqKirLtnGrXrp3y5cunUqVKKX369Nq9e7ft8U2bNpWLi4uaNm0qDw+P5/J6AQAAErKYhPciBgAAACRdvHhRr776qvbv368SJUo4uhwAAJAMEUoBAADAJiYmRr/++qt69uypsLCwRLunAAAAnicu3wMAAIDN7t27lTFjRu3fv1/Tp093dDkAACAZY6cUAAAAAAAA7I6dUgAAAAAAALA7QikAAAAAAADYHaEUAAAAAAAA7I5QCgAAAAAAAHZHKAUAAAAAAAC7I5QCAAAAAACA3RFKAQAAAAAAwO4IpQAAAAAAAGB3hFIAAAAAAACwu/8DIhDgfzTDc08AAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 1200x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Plot salvato come: .//2024-12-07_07-35_plots/variety_comparison_avg_water_need_m³_ha.png\n"
]
},
{
"data": {
"image/png": "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ueesYeHu3bv18MMPKzAwUBMnTpS/v79cXV313Xff6d133830nGb3uUpPT1fTpk31+uuvZzk9I3zLifT0dFksFn3//fdZvr6vPirwVp5zAAChFAAgC4899pg++OADxcXF2Zxql5WyZcsqPT1dO3futH6pkqSEhASdOXPG5hSf3JCenq49e/bYfMHYsWOHJFkHKF+8eLHc3d31ww8/2Fw2fM6cOf/6/n19fdWrVy/16tVLx44dU+3atfXmm2/qkUcesa7r9u3bM13mfvv27bn2WFx9P1cfNZaamqq9e/fe0pXXChYsqAcffFArV67U/v37s6z1888/V0pKih577LFbL94BKlSokOOQNeNxdXFx+VdXsru2DunKKXI3+3IfERGh1q1b6/fff9eCBQtUq1Yt3X///Te9j8DAQC1YsECJiYnWow2z68yZM1qzZk2mwdkz9O3bVxUrVtSwYcPk4eGhAQMGWKdlbC+7du3KNF9WbZK0d+9eSbLZb2Rl0aJFevDBB/XRRx9lqvfqQKtChQpau3atLl26JBcXlxsu81pXv6au9c8//8jLy0sFCxa0tt1oP5ChevXqql69uoYMGWIdMH3mzJkaPXp0ljVUrlxZlStX1pIlSzR58uQsj4aaN2+eJN3Sa7BDhw6aO3euYmJitG3bNhljrKfuSbm3zXfq1EkDBw7UwoULVbZsWaWlpdmcuvfNN98oJSVFS5cutTm6MONUuFtVoUIFnTt37qa15+RqoRUqVJAxRuXKlctWqJXT5xwAwOl7AIAsvP766ypYsKCeffZZJSQkZJq+e/duTZ48WZL06KOPSrpylbSrTZw4UZKyHJvm35o2bZr1/8YYTZs2TS4uLnr44YclXTlixWKxKC0tzdpv3759WrJkyS3fZ1paWqZTMUqWLCk/Pz+lpKRIkurUqaOSJUtq5syZ1jZJ+v7777Vt27ZceyzCwsLk6uqqKVOm2ByF89FHHykxMfGW72fIkCEyxqhbt266ePGizbS9e/fq9ddfl6+vr5577rl/Vb+9tWvXTps2bcry6mHXO4qpZMmSatKkid5//30dPXo00/Tjx4/nuI5mzZqpcOHCGjNmjJKTk29YxyOPPCIvLy+NGzdOq1evztZRUpJUv359GWOue8W7G1m+fLm1zusZOnSo+vXrp4EDB1qvYiZJfn5+qlatmubNm6dz585Z21evXq3Nmzdnuaz169fLw8PjpmGbs7Nzpsfniy++yDS+Ubt27XTixAmb/UOGmx2t5uvrq6CgIM2dO9fmaml///23li9fbt3PZWc/kJSUpMuXL9v0qV69upycnGz2C1kZNmyYTp8+reeff95m/yVdebzGjRunatWqqV27djdcTlbCwsJUrFgxRUVFKSoqSvXq1bM5NS63tvkyZcqocePGioqK0ieffKJy5crZXMk144ijq5+TxMTEf/2jwZNPPqm4uDj98MMPmaadOXPG+pwUKFDA2nYzbdu2lbOzs0aOHJlpGzLG6OTJk5L+3XMOAPc6jpQCAGRSoUIFLVy4UB06dFCVKlUUERGhatWqKTU1VWvWrNEXX3yhbt26SZJq1qyprl276oMPPtCZM2cUGhqqdevWae7cuWrTpk2uDlgtXRmHKTo6Wl27dlVISIi+//57LVu2TIMGDbKOz9SiRQtNnDhRzZs311NPPaVjx45p+vTpqlix4g1PjbmRs2fPqnTp0nriiSdUs2ZNFSpUSCtWrNDvv/+ud955R9KVIwzGjRun7t27KzQ0VJ06dVJCQoImT56sgIAAvfLKK7nyGJQoUUIDBw7UyJEj1bx5c7Vq1Urbt2/XjBkzVLdu3WwHGNd64IEHNGHCBEVGRqpGjRrq1q2bfH199c8//2jWrFlKT0/Xd999968G0r7Wjh079Mknn2Rq9/b2VtOmTXPlPl577TUtWrRI7du319NPP63g4GCdOnVKS5cu1cyZM1WzZs0s55s+fboaNWqk6tWrq0ePHipfvrwSEhIUFxenQ4cOadOmTTmqo0iRInr33Xf17LPPqm7dunrqqafk6empTZs26cKFC5o7d661r4uLizp27Khp06bJ2dlZnTp1ytZ9NGrUSMWLF9eKFSsyHa0nSTExMZkCMUlq06aNli1bpkaNGt30CKu3335biYmJ6t27twoXLmzd3t566y21bt1aDRs2VPfu3XX69GlNmzZN1apVswmqMvz4449q2bLlTY9ceeyxx/TGG2+oe/fuatCggTZv3qwFCxZkGlsuIiJC8+bNU2RkpNatW6fGjRvr/PnzWrFihXr16qXWrVvfdL0eeeQR1a9fX88884wuXryoqVOnysPDQyNGjJCUvf3AypUr1adPH7Vv316VK1fW5cuXNX/+fDk7O980TOrcubN+//13TZ48WVu3blXn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6dOKioqSxJguyD43NzfVq1dPHTt21KFDh9S4cWM9+uijWrJkiWrUqKGIiAgtWrSIoxCQLWfOnNHevXs1YsQIBQcHa/Hixerdu7dGjx6tAwcOaNCgQfrxxx8liW0K2bZ48WItXLhQ0dHRio2N1ZEjRxQcHKyvv/5a77//viS2J2Rt586dSk1NtWn7+eefFRoaqh49eig0NFTh4eHasGGDduzYoddff10S29O9hFAKd6TChQurW7duatasmVatWqWnn35aY8eO1e+//64aNWpo8ODBioqKyrSDA66nSJEiOnXqlHbt2mVtK1mypB5//HFt3bpVe/bscWB1uFMtWrRIo0ePto7JksFisejs2bNKTU21Dsr54IMP6plnntHHH3+sY8eOXXfsDeBaZcqU0fDhw+Xp6am3335b1atX18SJE3XfffepSpUqcnV1Vb9+/ZSUlMQgsMjk2gC8cOHCat++vVq3bq3NmzdrwIABGjFihAYNGqTx48frzz//1JAhQ7Ru3ToHVYy70b59+1S6dGlVq1ZNxhgVKlRIo0aNko+Pj7744gtHl4c71JIlS3Tffffpu+++06VLlyRdOX1vz549On36tLVfcnKySpYsqWnTpumnn37Snj17eL+7h/CJGQ6X1dEElStXVuvWrSVJM2fO1JNPPqkePXro8uXL8vf317lz57RgwQK5urrau1zcBbJ6E/Px8VHRokX1+eefKyEhwdru7++vwMBAjmpBlho2bKh58+apRIkS2rt3r7W9fPnyWrdundatW2fzS17lypVVtmxZAnNcV8b+6eDBg9qyZYsuX74sSSpRooSSk5O1ceNGlS1bVgULFpR05SiqsWPHasOGDSpSpAi/HMPG1WP9zJ07V9HR0UpLS1ODBg3k5eWlNWvWyMfHR507d5YknT9/Xu3atVP16tVVp04dR5aOu0TGla+dnZ2VkpKiS5cuycnJSZcvX5aXl5cGDRqkVatWacOGDQ6uFHeiNm3aqG3bturRo4e+//57paamymKx6Mknn9TOnTv16aefSpLc3d0lSa6urnJ2dlb+/Pl5v7uHEErBoa7+MBUTE6PVq1db39S8vb2VlJSkvXv3ytfXV05OTsqXL5+cnZ21Zs0aLV++3JGl4w5l/n/wxF9++UXTp0/X1KlTdfnyZd1///3q16+fZsyYobfffls///yzjh49qnHjxik+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Z599pnPnzqly5crq1KmTXn/9dbVq1crRpeMOs3v3bkn/++K/fPlyfffdd1q8eLGeffZZubi46OjRozp16pQaN26sQ4cOyd3dXWFhYWrRooV+/fVXPkMhS1cHUhMnTtRTTz2lkJAQjR8/XuvXr1etWrW0ePFiHTt2TKGhobp06ZJKlSqlwYMHa/ny5YRRsJHxvvfll1+qVatWmjNnjqKiotSkSRPFxMTIzc1NDz30kCZMmKBz586pVq1aDGqO7LH7CYPIc0aMGGEKFChg9u7da4y5MhZCWlqaadSokXn//fdNdHS0KVSokJkxY4Yx5spYUe+8846ZP3++zXIYVwNXy9gevv76a1O9enUzZ84c67R69eqZ6tWrm+3bt5vz58+b5ORkM3DgQOPv72/27dvnoIpxN/jmm2+Mu7u7adq0qalTp47x9PQ0CxYsMMYYc+HCBTN69GhTo0YNU7ZsWePj42N+++03B1eMO9k333xjChUqZMaNG2d++eUX88wzz5iCBQvavL8lJCSY3r17m+eff978/fffDqwWd6LHH3/cDB061KZtxYoV5o033jDGGPP9998bLy8vM336dLN582bj5eVlgoKCzJ49e2zmYcwfXO3az9QDBgwwxYsXN4MHDzYvvPCCqVy5smnRooX54YcfjDHGbNiwwdx3332mQoUKNuN18tkc1/rpp59MiRIlzAcffGCMuTI+mcViMS4uLmbx4sXGmCvjKH799demfv36fC5HthBK4V/75ZdfTHh4uKlQoYL1Q9Lly5fNwIEDzYMPPmiKFCli3nvvPWv/+Ph48+ijj5opU6Y4qmTcJb799lvj7u5uJk+ebPNlbufOnaZRo0amePHipkaNGiY0NNSUKFGCwRNxQydOnDDTp0+3fpDau3evee2114zFYjGffPKJMebKldJ+++03ExUVlelLH3C1/fv3myZNmph33nnHGGPMgQMHTPny5U3VqlVNvnz5zMcff2wzYHXGYMLA1X799VfrQPjx8fHW9kOHDpmUlBTz8MMPm8GDBxtjjElKSjINGjQwTk5OplWrVsYYQgNcX8b+Z9OmTaZSpUo2FxyKjY01rVq1Mm3atDEHDx406enpJi4uznTo0IGAEzc0cuRIM2TIEGPMlcHxy5QpY55++mnTo0cPky9fPhMdHW2MuRJMZVzsA7gZQincss8//9z6/3Xr1pmmTZuacuXKmd27dxtjjPn9999NqVKlTO3atc2WLVtMWlqaOXz4sHnkkUdM/fr1edPDDZ07d840bdrUDBo06Lp9Zs+ebcaOHWumTp1q3e6ArGzevNkUKVLEVK1a1fqByZgrV7bKCKYyjpgCricjADh9+rRJTU01b775pjl16pQ5cuSICQwMNM8884xJTU017du3N56enuajjz4iNEC2TJkyxbRt29bmx5X9+/ebsmXLmuXLlxtjjDl16pTp0KGD+f33320CTyBD//79zcCBA23atmzZYry9vc3q1att2leuXGmKFi1q3b6uxmd0ZMh4D1u+fLnZsmWL2blzp/n111/N2bNnTf369U3Pnj2NMVeutm6xWIzFYjFLly51ZMm4CzGmFG7JDz/8oA4dOmj06NGSpLp16+rNN99UpUqV9PDDD2vXrl2qU6eOFi5cqCNHjqhLly6qVKmS2rdvr+PHj1uvyJAxBhVwreTkZO3cuVPVqlWTJJtz0s3/jy/VvXt39e/fX3369OEqVrghFxcXtWvXTrt379bp06clXdmOvLy81L9/fw0YMEBdunTR4sWLHVwp7mQWi0VRUVEKDg7WxYsX9fTTT8vT01NTp05V+fLlNXHiRLm4uMjf319OTk7q37+/kpKSHF027kDmmusM+fv767ffftO0adP0119/SZLKlCmjkiVLasCAAfriiy/Utm1bHT58WLVr17YZxxOQpMTERB09evT/2rvv+Brv/o/jr5MlIgkaI0pr1KgVmxZVjda6bbVnGxoxo4hRtXcVrUhTTYlNbSptzZhBEFE1isZepZSINJHz/f3hl3Mnpffd9i4neD//cy2fy+N6nHN5n+/382XLli1MnDjRtv3evXtYLBYuXLhg+zPAG2+8wYsvvsjevXsfuJZ6k0kqi8XC9u3badKkCTExMRQuXJiqVaty/PhxkpKS6NOnDwBZs2alVatWDBkyhMKFC9u5annSKJSSv6VmzZqEhIQwatQoRo8eDdwPpsaMGUPRokV56623OHHiBDVq1GDTpk0MHTqUbt26MWjQIHbv3q2GnPJfeXh44OXlxb59+wDSvYDv27ePsLAw27G/f7kX+b1ixYoxYMAAWrZsiZ+fH5s2bbI1cPXy8qJv374MGzaM4sWL27lSycguXLjA/Pnz6devH56ennh7ewNw7Ngx8ubNi6enJ3B/sY85c+bw448/kjVrVnuWLBlU6ufPnj17SEhIoEmTJoSFhbFx40amTp1KbGwsAJ9++imZMmVi9OjRZMqUic2bN+Pg4IDVatU7lKSTNWtWPvroIypXrkxERARjx44FwMfHh7fffht/f392796Nk5MTADdv3sQYw/PPP2/PsiWDO3PmDBEREQwdOpR27drZtt+4cYMDBw6QkJAAwIIFC7hx4waDBw/Wu5T8dXYdpyVPtN9++82EhIQYR0dHW0NOY+5P5atdu7YpUKCAOXnypDHmwZ4HGhYsaaU+H8nJySYhIcG2vW/fvqZMmTK2xompgoKCzKuvvmpu3LjxOMuUJ0Tq8xQXF2eOHz9uDh06ZNt37Ngx07lzZ5M9e3azcePGdMdrOoz8J/v27TNt27Y1derUMZcvX073PTZs2DCTJUsWM378eNOxY0eTPXt2c/z4cTtWKxlV2s+ZtWvXGh8fHzNlyhSTmJhojDFm3bp15sUXXzSdOnUyR44csR179uzZdN+VImml/TzauHGjadmypSlcuLCt550xxrRu3dq4uLiYoKAgM3LkSFO7dm1TunRpPU/yh44cOWKqVq1qChQoYD7//HNjzL+ftd9++820bNnSWCwWU7FiRePh4WEOHjxoz3LlCWYxRkMM5M8z/78UaKrExERmzZpFr169GDFiBB9++CEA0dHRfPjhh5w6dYqIiAiKFClir5Ilg0t9piIiIpg3bx6xsbH861//ol69elStWpWmTZvyyy+/ULZsWXx8fIiOjmbFihXs2LEDHx8fe5cvGUzq87R69Wo+/PBDbt++jZubG7Vr12bq1KnA/VEtEydOJCIigjlz5lC3bl07Vy1PglGjRjFnzhwSEhL48ccf8fDwIDk5GWdnZ+7cucOQIUOIjIwke/bsTJs2jbJly9q7ZMlgrFYrDg73JynMnz+fQ4cOMXPmTLJnz06/fv3o0qULrq6uRERE0L17d3x9fenevTsVK1Z86DVEfq9fv37Exsbi4ODAwYMHcXNzIyAggIEDBwIwbtw4Nm/eTFJSEgUKFODLL7/E2dmZlJQUjbyTh+rVqxfz5s2jVq1ahIeH4+HhYXvXun79OhEREfz666/UrVtX0/bk77NnIiZPlrS/7iUnJ6cb/TR9+nTj4ODwwIip8uXLm7fffvux1ilPjtRnaPXq1cbNzc18+OGHZt68eaZmzZqmYMGC5vTp0+bmzZtm6NChpmbNmqZ06dKmcePG6Ua+iPxeRESEcXd3NzNmzDA//vijmTFjhrFYLKZbt262Y44dO2aaN29uChYsaO7cuaNm1PJfJSUlmcmTJ5u8efOaDh06mJs3bxpj0o8E/uWXX8ydO3fsVaI8IYYOHWprhD937lxTvXp1U6ZMGTN16lRz9+5dY8z9z7FMmTKZMWPG2LlaeVIsXrzYZMuWzezdu9fcvXvXXLlyxXTq1MlUqFDBTJo0yXbcr7/+mm5klUZKSao/ehfq16+fKVGihBk9erT59ddfH3NV8izQSCn5U9L+Mjdt2jQOHjzIyZMnadasGU2aNKFQoUKEhITQu3dvhg8fbhsxdfToUYoVK6Zf9cQmIiKCfPny4ePjgzGGa9eu0aJFC5o0aUJgYCB3794lf/78tG/fnsmTJ6d7duLj43FxccHFxcWOdyAZ2bVr1+jSpQs1atTg/fff59KlS1StWpWiRYuyc+dOWrdubetHduLECdzd3cmTJ4+dq5aMxvz/r8BXrlyxjYR64YUXuHfvHh9//DErVqygcuXKjBs3Dg8PD+7du2fr0yLyR4wxXLhwgVq1avHhhx/Svn17AO7cuUPXrl2Jjo6mT58+thFTUVFRVK5cWSNY5E+ZNGkSixYtIjo62vZ5dP78eQICAti/fz8DBgygb9++6c4xv5sBIc+u1Gdh7969REVF4eLiQqFChahTpw4AgYGB7Nixg6ZNm9KrVy88PT01clP+MXqK5E9J/cAZNGgQY8eOpVKlSvj6+hIWFoa/vz8JCQn4+fkxffp0xowZQ1BQEADFixe3NeQUuXLlCj179mTatGkcPXoUi8WCm5sb8fHx1KtXj7i4OIoUKUKTJk2YMmUKDg4OfPfdd5w4cQIAd3d3BVKSjjHG1uj+xIkT5MiRgzfffJNGjRpx9epVateuTZ06dVizZg19+/Zl1qxZtv8IFilSRIGUPCD1xXzVqlXUq1ePKlWq8MYbbzBmzBicnJzo378/TZo0Yd++fQwdOpRbt24pkJI/lPa3X4vFQpYsWXBwcLA1B7537x5ZsmRh7ty5ODg4EBISwsyZM/ntt9949dVXtVKx/Fep79i5cuXCarXaVtmzWq3ky5ePIUOGkJCQwKeffkp4eHi6cxVISSqLxcLy5ct56623WLp0KSEhITRo0MD2f7pp06bx6quv8vXXXzNx4kRu376tQEr+MXqS5L9KfaHau3cva9asYe3atfTo0YPq1asTFxdHu3btcHNzI1OmTAQEBDB69GiioqLSvYjpQ0sAcufOzbJlyzh8+DBTpkzh8OHDODo6cvfuXSIjI6lduzb16tXjs88+A+D06dOEh4dz8uRJO1cuGc3t27eB+y9RFouFNWvW8Prrr3PkyBH8/f0pXLgwS5cuJXfu3IwcOZJMmTKRN29eKlSoQFRUlO2lXeT3LBYLGzdupHXr1nTu3JmRI0fSq1cvRo4ciZ+fH46OjvTv359GjRqxfv16xowZoxVA5aHSjkK5du0aAM7Oznh6erJx40YAnJycSElJwcnJiXLlyuHi4sKyZcvYsWOH7ToaKSVp/f6H3tR37EqVKhEXF8cnn3xCQkKCbXtycjKvvfYaffv2pWPHjo+9XnkynDhxgp49ezJhwgR27NjB1q1bCQ8PJzg4mEGDBgEwffp0SpYsSVRUFElJSXauWJ4qdpgyKE+A4cOHm7Vr16bbtmXLFlO8eHFjjDHLli0zHh4e5rPPPjPGGBMfH29WrVpl7ty5Y1JSUmxzktWnRR7mwIEDpnz58sbPz89cvHjRBAcHG4vFYurXr5/uuCFDhphSpUqZs2fP2qlSyYi6du1q3nnnHZOUlGSMMebMmTOmVatWJjQ0NN1xAQEBpnLlyrY/DxgwwIwfPz7dCo8iaaV+ZwUEBJi2bdum27dlyxbj4OBgJk6caIy5v/LQxx9/bOLi4h53mfIESNuHc+XKlaZWrVrmhx9+MMYYs2fPHuPm5mZ69uxp69FptVpNmzZtTEREhClXrpxp0aKFvUqXDCzte3VoaKh5//33zbBhw8yZM2eMMfffzx0dHY2/v79Zt26d+eGHH0zdunVNQECA7VytgC0Ps2vXLlOsWDFz/vz5dNvnzJljMmfObCIjI23bLl++/LjLk6ecxpvLAw4fPsyGDRvYuXMnrq6uvPnmm8D9X/y8vLxYtGgR3bp1Y+LEiXTr1g2A3bt3s3r1akqWLGlbecFonrr8gXLlyhEWFsa7777LsGHDaN26Nf369WPq1Kl89NFHAMTFxTF//ny2bdvGCy+8YOeKJaNYvHgxq1atYv369Tg7OxMTE0NISAgXLlzA19cX+HcPvCZNmjB79myaNm2Ki4sL3333HVFRUWTOnNnOdyEZTer3VUJCAlmyZCEuLo7s2bPb9iUnJ1OzZk1Gjx7NggUL6NSpE7lz5+b999+3c+WSEaXts7J582aWL1/OgQMHGDFiBCNHjqRy5crMnz+fdu3aERMTQ+7cubl48SK//PILCxcuZNeuXWzZskX9WiSdtM/DoEGDmDVrFmXKlOHq1avMmjWLjRs30rx5c9asWcOAAQNYt24djo6O5MiRgzVr1mCxWDDGaOSdPJSzszMnTpzgxIkT5M2b1/a96OvrS548ebh06ZLt2Ny5c9uxUnka6ZtOHlCqVCnGjh2Lq6srkyZN4rvvvgPgjTfe4Ndff6Vdu3aMGzeOgIAAABITE5kyZQq3b9+mUKFCtusokJL/pFy5csyaNYuYmBiWLl1K7dq1mTZtGnPmzGH58uXcvHmTXbt2aVl1SefcuXN4eXlRtmxZvv32Wzp16sT27dvZt28fcXFxwL+nMlStWpXZs2dz584dHBwc2LZtG8WLF7dn+ZIBpb54b9y4kWHDhnH27FkaN27Mli1b2LdvHxaLBWdnZwCyZ8+OxWLB09PTzlVLRpb6GfT+++/Tq1cvnnvuOV577TW2bdvG0KFDOXbsGE2bNiU2NpayZcvi6elJlSpVOHz4MHB/kZhChQppWqikk/pcXb16lYSEBL777js2bNjAwoUL8fHx4ZVXXuHYsWPUr1+f9evXs2nTJpYsWcLevXtxdnbm3r17ejcX4N+tWY4ePcr27duJi4ujfPnyNGzYkBkzZnDw4EHbs5IzZ06yZcum6XrySGn1PUknOTnZ9vK9ePFi5s2bR3x8PCNGjOCNN97g6NGjNG7cGC8vL/z9/bl37x5Llizh8uXLxMTE4OTkpF/25C85cOAA/v7+lC1bllGjRuHt7Y3FYiExMRFXV1d7lycZTHR0NB06dOD5559n69atrF+/nuTkZPr370+hQoUYNmwYFStWTHeO1WolOTmZTJky2alqyehWrFhB+/btGTx4MPXr18fV1ZXBgweTkpLCqFGjqFChAgD9+/dn//79rFmzBg8PDztXLRnZ1q1badWqFStXruTVV18FICwsjPDwcHLnzs2YMWMoXrw4KSkptpErV69e5aOPPiI8PJytW7dSokQJe96CZEDz588nICCAEiVKsGzZMttI8pMnT9KnTx+ioqKIioqiWLFi6c5L+5yJAKxatYoOHTrg7e3NuXPnCAsL4+7duyxatAhPT0/8/f0pUKAAc+bMYfbs2ezZs4cCBQrYu2x5Wtlp2qBkcMOHDzctW7Y0Pj4+xsHBwVSvXt1s3LjRGGPMiRMnTK1atUypUqVMtWrVTKdOnWy9XTRPXf6OAwcOmEqVKplWrVqZw4cPG2PUj0z+WPfu3Y3FYjFVqlSxbVu4cKGpWLGi6dChg9m/f79te9q+LiIPc/z4cVOwYEETEhKSbvuqVatMw4YNjZeXl6lfv76pU6eO8fT0NDExMfYpVJ4omzZtMl5eXrbvtFSffvqpyZQpk2nevLmtx5Qxxpw7d86MGzfOFC1aVM+Y/KHNmzebOnXqGHd3d1sfqdT3pZMnT5qGDRsai8Vizp07Z88yJQNLSUkx169fN9WqVTOff/65OXHihBk9erRxcnIyM2bMMF988YVp1aqVcXBwMC+//LIpXLiwOXDggL3LlqecRkrJA0JCQhg0aBBr166lcOHCREVFERwcjIODA0OHDrX1bfn5559xc3MjS5YswP1ljbUstvxd0dHRDBgwgEWLFpEnTx57lyMZ1N27d2nQoAGFChVi165d+Pj4sGjRIgAWLlzI1KlTKVWqFAEBAVSuXNnO1cqTYOPGjfTo0YP169eTP3/+dKN9jx07xv79+1m/fj358uWjQ4cOvPzyy3auWDIy8//TQXfv3k27du349NNP+de//mV7rlJSUvDx8cHNzY2SJUsyfvx48uTJg9Vq5dKlSzg5OalfiwA8dOaBMYZ9+/YREBDArVu32LlzJzlz5rQ9d8ePHycsLIzx48frnVzSSX1GEhMTMcYwZswY+vfvb+ufOHXqVIKCgpg8eTJt2rTh9u3bJCUl4eXlRa5cuexcvTzt9GklD9i7dy+NGjXi9ddfB+Dtt9/G3d2dfv36MWzYMBwcHKhZsyY5c+a0nWOM0Zef/E8qVarEt99+qyl78h9lzpyZtWvX4ubmxqxZs5g0aRJt27Zl4cKFtG3b1haeu7q6UqZMGU3Zk/8qPj6eu3fvptuWOtXl8uXLVKtWjXbt2tmpOsnofh8cpPZheeWVVyhatCh9+vThhRdewMfHB4DLly9TunRpihcvzty5czly5Ah58uTBwcGBvHnz2uUeJONJ+1ytXLmSixcvYrVaeeutt6hUqRIzZ86kd+/e1KxZky1btpArVy6MMRQrVsy2YIx+LJa0LBYLq1ev5rPPPuPcuXNYrVZatWplC6X69u2LxWIhKCiIq1evMmTIENvAA5FHTY1/5AHPPfcc169fT/eSXrduXTp27Mj+/fsJDAxkz5496c5R40T5JyiQkj/Dzc0NgJYtWzJw4EBiYmJo27YtAK1bt2bChAkEBQUpkJI/pUyZMly7do2ZM2cC95sJp/ZeWbVqFbNnz1aDV3motMHB0qVLGT58ONOnT2fr1q0AREREkDNnTho1asS4ceMIDw+nU6dOxMfHM3z4cIwxfPPNN/a8BcmgUp+roKAgevToQWRkJLNmzaJt27bMmjWL8uXLM2nSJLy8vHjzzTe5fPnyA+/iCqQkrX379tGxY0cKFixI5cqVOXXqFLNmzeLMmTO2YwIDAxk1ahQhISEkJibasVp51iiUkgf4+Piwa9cuNm7cmG7ll9y5c1O1alXefvttKlWqZMcKRUTA3d2dli1bEhQUxPfff0+DBg2A+6M7CxYsaOfq5ElRsGBBgoOD+eijjwgKCuLw4cMcPXqUgQMHMmfOHNq0aYOLi4u9y5QMxhiTLjgIDAxk//79rFy5kgEDBjBv3jwsFgtRUVG8+eabrFu3jvHjx+Pi4sLSpUsByJMnD0WLFrXnbUgGtmjRIhYtWsSaNWtYunQpvXv35ocffiBbtmzA/RVmJ0+eTFJSEv3797dvsZKhnTp1irVr1zJ48GA+++wzZs+ezSeffMLy5csJDQ1NF0wNHDiQn376CS8vLztWLM8aRejygM6dO7Nz507at29PaGgo5cuXx9vbmxUrVuDr68uQIUOwWCxaZU9E7C5Lliy0bNmSxMREwsPDuXDhgqbAyF/WuXNnPDw88Pf3Z9GiRbi6uuLo6MjmzZvVQ0oekPb9Z8aMGXz11VcsX76cV155hZCQEPr27cvw4cNJSEjA39+fsLAwbt68iTHGNlVm2LBhxMXFUatWLXveimRgJ0+epEaNGlSsWJGlS5cSGBjIJ598QrNmzYiPj+fq1atUrlyZZcuWUbx4cXuXKxnUrVu3aN26NadPn+a9996zbQ8ICMBqtTJ+/HgcHR3x8/Oz/aCXGnyKPC5qdC7ppH3R6tmzJ6tWrSIlJQUPDw8cHR35/vvvcXJysjXLExHJCBISEkhOTiZr1qz2LkWeYBcvXuTMmTNYLBYKFiyohtPygLTvP7du3WLIkCEUKFCA/v37s2bNGjp27EifPn04ceIE27ZtY8KECbRv3952/okTJxg2bBhbt25l3bp1lCtXzl63IhnIw37oHTRoEI6OjjRs2JC33nqLjz76iG7dumGMITw8nF9++YXevXvj7OwM/LsXnsjvxcTE0KpVK3LlykVoaCilSpWy7QsNDaVv374MHjyYIUOGaNqn2IVCKXlA2heuqKgorl27xp07d2jRogWOjo760hMREZFnzpYtW7h48SLt2rXD39+f7Nmz06dPH+7evUtKSgr169enR48eBAYGsnLlStq0aYOzszNz586ladOmACQmJrJhwwaKFy9O4cKF7XxHkhGkDaROnTpF5syZyZkzJ9HR0VSvXh2AJUuW0KJFCwDu3LlDs2bNKFWqFB9//LHd6pYny6FDh+jUqROVK1emd+/elCxZ0rbvyy+/pEaNGhQpUsSOFcqzTKGUPNQfTc1TICUiIiLPEmMM8fHxNG/enKSkJDw9Pdm6dSvbt2+3rao3f/58pk+fzvr168maNSvr16/n888/p169erzzzjt6d5KHSvtD8KBBg1i9ejU///wzJUuWtPWz6969O7NmzaJatWrcunWLAQMGcPXqVfbu3atRLfKXxMTE0KVLF8qXL0/fvn0pUaKEvUsSAdTo/JlhtVofuv2PMsnUQOr35+mlSkRERJ4lFosFDw8PFi9ezOXLl/n6668ZMmSILZACcHZ25uzZs2zfvp2EhASmT59OgQIF8PPzs40yF0nLarXaAqnFixczZ84cJkyYwMcff0yVKlUIDAwkOjqaSZMm4efnx6uvvkrHjh1JSkpiz549ODk56bmSv6RcuXKEhYVx6NAhRo8ezbFjx+xdkgigRufPhLSjng4fPkxCQgK5cuWiQIECWCyWPxz9lHZlmWPHjvHiiy/almIXEREReZY4ODjw0ksvkTt3bjZt2kS+fPlo164dACVKlKBGjRp07NiRbNmykSVLFlasWIHFYsEYox/15AGp79iRkZFs2rSJoKAgGjduDNzvV1agQAEGDRrEokWL+OGHHzh37hyenp6UKVMGBwcH7t27p5FS8peVK1eO4OBgBgwYoD6ckmFo+t5TLu2w4A8++IA1a9Zw9uxZqlSpQuXKlRkzZgzw4LS8tOdNnz6d8ePHs2vXLgoUKPDY70FEREQko7h8+TJ+fn7cvXsXPz8/WzB1/Phxjh07xu3bt2nTpg2Ojo4KDuQ/unz5MtWrV+fq1asMHDiQDz74wLbv+vXr+Pn58cILLzB9+vR052kFbPlfJSYm4urqau8yRABN33vqpQZLY8aMISwsjE8++YSTJ0+SN29egoOD6dmzJ0C6oeVpA6nPP/+cESNGMGXKFAVSIiIi8szz9vYmODgYNzc35syZw6xZs0hJSaF79+58//33tG/f3vZepUBK/hNvb29WrFhBrly5WLFiBTExMbZ9Xl5e5MiRg1OnTj1wngIp+V8pkJKMRJ9oT6m0A+COHDnCypUrWbBgAb6+vsTGxvLVV19Ru3Ztvv32WwIDA4H7wVRycnK6QCooKIiZM2fSunVre9yGiIiISIZTsGBBpk+fjoeHB5MnT6ZIkSJcvXqVoKAg2zGasid/ho+PDytWrCAlJYVp06Zx8OBBAG7fvs3Ro0fJly+ffQsUEXnENH3vKZR2pFNsbCw+Pj6EhYXRrFkzDh8+TOvWrRk9ejTvvvsuDRo0YPPmzTRr1oyFCxfarjFz5kyCgoL48ssvad68ub1uRURERCTDunTpEvv37+fKlSt06tQJJycnTdmTvyUmJob27dvzyy+/ULFiRVxcXIiLi2P37t24uLike78XEXmaKJR6yvx+adndu3ezePFicufOjcViISAgACcnJ6ZMmYKzszMDBgwgOjqaEiVKEBwcjIODA2vWrKFJkyYsW7aMZs2a2fmORERERJ4Mf7R4jMifcfjwYRo1akS+fPlo27Yt3bp1AyA5ORlnZ2c7Vyci8mho+t5TJjWQOnbsGFFRUYwdOxZvb2/b9ri4OM6fP4+zszMpKSmcOXOGDh06MGPGDNv89AYNGrBlyxYFUiIiIiJ/gQIp+V+UKlWKFStWkJSUxIEDBzh58iSAAikReapppNRTaPz48URGRuLq6sr8+fPx8PDAarUCMG3aNObNm0eePHm4desWN2/eJDY2FkdHR4wxasopIiIiImJHMTExdOvWjUKFCjF8+HBefvlle5ckIvLIaKTUU6h48eJs2LCBHTt2cPr0aeD+Kh0ODg60adOGjh07kjVrVkqWLElMTIxthRiLxaJASkRERETEjsqVK0dwcDCXLl0ia9as9i5HROSR0kipJ9wfNT3ctGkTtWvXpnPnzrYpfH9EDTlFRERERDKWxMREXF1d7V2GiMgjpZFSTzCr1WoLpK5evcrZs2dt+2rVqsWqVasIDw9nzJgxXLlyJd15qYwxCqRERERERDIYBVIi8ixQKPWEslqttsbko0aNol69elSqVIm6desSGRlJYmIiDRs2ZNWqVYSGhjJ27FguXboEYDsP0NKyIiIiIiIiImIXCqWeQMYYW7A0fPhwQkNDCQwMJCoqip9++omhQ4eydu3adMFUcHAwixYtsnPlIiIiIiIiIiL3ad7WE+To0aMUL17c9uedO3eyevVq5s+fj6+vL9u3b+fChQsYYxg6dCiOjo7Ur1+fBg0asH37dqpUqWLH6kVERERERERE/k0jpZ4QkydPtgVPFosFYwzZs2enZ8+e+Pr6smnTJpo1a8aMGTM4ceIEiYmJTJkyhSVLlpCUlES1atVwcnLi3r179r4VERERERERERGFUk+K0qVLU6NGDfr06WMLpooUKULDhg1JTk5m2rRpdO3alY4dO2KMoUiRIsTGxrJz505cXFxs11FTcxERERERERHJCBRKZXBffPEFAHXq1KF79+4ULlyYXr16sW3bNpydncmdOzdJSUlcu3YNLy8vW6+pF198kcjISEJDQ+1ZvoiIiIiIiIjIQ2nYTAa2ceNG/P39iY2NJTg4mNdffx1jDCEhIfTu3Zvp06fz2muv4eDggJOTE8uWLePWrVts376d69evU65cORwcHEhJScHR0dHetyMiIiIiIiIiYqORUhlYpUqVmDlzJsuWLaNHjx4A1KxZk+7du1O0aFF69epFZGQkmTNnZvny5bi5ubFz5048PDzYt28fDg4OWK1WBVIiIiIiIiIikuFYjDHG3kXIH7t9+zaLFy/mgw8+oEWLFsyYMQOAyMhIQkJC+PHHH5kyZQq+vr4kJiZijMHV1RWLxcK9e/fUQ0pEREREREREMiQlFhmQMQaLxQKAh4cHLVq0AGDIkCEAzJgxg5o1awIQEhLCgAEDGD9+PLVr1053DQVSIiIiIiIiIpJRKbXIYKxWq61ZudVq5d69e2TLlo1OnToBMHjwYODfwZTFYmH06NEsXLgwXSiVGmqJiIiIiIiIiGRECqUykLSB1Mcff0xsbCwHDhzA39+fN954g65duwLwwQcfYLFYbM3PPT09KVOmjD1LFxERERERERH5S9RTKgMaPHgwX375JcOGDSM+Pp6wsDBefvllFi9eTEpKCkuXLmXo0KHUqlWLBQsW2M5LG2qJiIiIiIiIiGRkSjAymL1797Jq1SrWrl1Lz549qV69OmfPnqVly5a4u7uTNWtWOnTowODBg7l58yZWq9V2rgIpEREREREREXlSKMXIYKxWK66urlSpUoWvvvqKevXq8emnn9KxY0fu3LlDREQEAO+99x5ff/01Dg4O6YIpEREREREREZEngUIpO3pYmBQfH09iYiKLFy/mvffeY8KECXTr1g2AXbt2sXDhQs6ePUvmzJmxWCwYYzRCSkRERERERESeOOopZSdp+z+FhoYC2MKnOnXqsGHDBqZPn06PHj0ASExM5O233yZz5swsWbJEQZSIiIiIiIiIPNG0+p6dpIZKAwYMYMmSJXTq1Inz58+TL18+xo0bx6+//srUqVPJmjUrN27cYO3atVy8eJGDBw/apuwpmBIRERERERGRJ5VGStnR/Pnzef/99/nmm2+oUKGCbbvVauXYsWOMGjWK2NhYcuXKRZEiRfjss89wdnbm3r17ODkpTxQRERERERGRJ5dCKTsaMmQIFy5cYM6cOaSkpODo6PhA4HTlyhW8vLxs2xRIiYiIiIiIiMjTQPO/7OjChQvExcUB4OjoiDEGJycnEhMT2bhxIwC5c+e2hVCp+0VEREREREREnnQKpR6Dh62yB1CuXDmuXLnCli1bSEpKwmKxAHDr1i1GjhzJN998k+741P0iIiIiIiIiIk86Td97xNI2JI+OjsZqteLo6EjFihX57bffqFatGgCDBw+mWrVqxMfHExgYyI0bN9i2bRuOjo72LF9ERERERERE5JFQKPUIGWNso5sGDhzIokWLsFgsXLlyhTZt2jBp0iQ8PDxo3LgxFy5c4OTJk5QoUQJnZ2d27NiBs7OzrdeUiIiIiIiIiMjTRKHUYxAcHMzIkSNZvXo1Xl5enDt3jg4dOlClShUWLFiAi4sLR44c4fjx4+TOnZvq1as/tOm5iIiIiIiIiMjTQqHUY9CpUycyZ85MaGiobfTUwYMHqVGjBr169WLs2LEPnKMRUiIiIiIiIiLyNFOj83/Y7zO+5ORkLly4QGJiom1/UlISZcuWZcSIESxdupQbN26QkpKS7jwFUiIiIiIiIiLyNFMo9Q+yWq22HlI//fQTV69exdnZmY4dO7Js2TI2bdqEg4MDzs7OAGTKlIkcOXKQJUsWhVAiIiIiIiIi8kxRKPUPSl1lb8iQITRq1IgSJUoQFBSEu7s77777Lj169ODbb7/FarXy66+/8vXXX5M3b15bSCUiIiIiIiIi8qxQF+1/gNVqtQVSS5cuZe7cuQQHB3Po0CG+/fZbzp49yyuvvELDhg1p0KABhQoVwtHRkUyZMhEdHY3FYkm3Up+IiIiIiIiIyNNOjc7/Qdu2bWP58uWUKVOGd999F4A1a9Ywffp0smfPTteuXcmVKxd79uzB3d2dVq1aaZU9EREREREREXkmKZT6h1y+fJnq1avz888/M3LkSAIDA2371q5dy7Rp0/D09GTw4MFUrlzZtk+r7ImIiIiIiIjIs0g9pf4h3t7erFixAm9vbyIiIvj+++9t+xo2bEi/fv04efIkK1euTHeeAikREREREREReRZppNQ/LDY2lnfeeYeKFSvSp08fSpYsadu3a9cuqlSpoiBKRERERERERJ55CqUegZiYGLp06UKFChUIDAykRIkS6fZryp6IiIiIiIiIPOsUSj0iMTEx+Pv7kz9/fiZNmkTBggXtXZKIiIiIiIiISIahnlKPSLly5QgODsbDw4P8+fPbuxwRERERERERkQxFI6UeMWMMFosFq9WKg4MyQBERERERERERUCj1WKQGUyIiIiIiIiIicp+G7jwGCqRERERERERERNJTKCUiIiIiIiIiIo+dQikREREREREREXnsFEqJiIiIiIiIiMhjp1BKREREREREREQeO4VSIiIiIiIiIiLy2CmUEhEREXnCWCwWVq1aZe8yRERERP4nCqVEREREHoGGDRtSt27dh+7bvn07FouFQ4cO/a1rX7p0iXr16v3p4zt37kyTJk3+1t8lIiIi8qgolBIRERF5BPz8/NiwYQPnz59/YN/s2bOpWLEiPj4+f+maSUlJAHh7e5MpU6Z/pE4RERERe1EoJSIiIvIINGjQgJw5cxIeHp5ue3x8PEuXLqVJkya0adOGvHnz4ubmRunSpVm0aFG6Y2vWrEnPnj0JDAwkR44c1KlTB3hw+t65c+do2bIl2bJl47nnnqNx48acPn0agBEjRjBnzhxWr16NxWLBYrEQGRmJr68vPXv2TPf3/fzzz7i4uLBp06Z//N9DRERE5PcUSomIiIg8Ak5OTnTs2JHw8HCMMbbtS5cuJSUlhfbt21OhQgXWrVvH4cOHee+99+jQoQN79+5Nd505c+bg4uLCzp07CQ0NfeDvSU5Opk6dOnh4eLB9+3Z27tyJu7s7devWJSkpif79+9OyZUvq1q3LpUuXuHTpElWrVqVLly4sXLiQ3377zXat+fPnkzdvXnx9fR/dP4yIiIjI/1MoJSIiIvKIvPvuu5w6dYqtW7fats2ePZvmzZuTP39++vfvT9myZSlUqBC9evWibt26fPXVV+muUaRIESZNmkSxYsUoVqzYA3/HkiVLsFqthIWFUbp0aYoXL87s2bM5e/YskZGRuLu7kzlzZjJlyoS3tzfe3t64uLjQrFkzAFavXm27Vnh4OJ07d8ZisTyifxERERGRf1MoJSIiIvKIvPzyy1StWpVZs2YBcPLkSbZv346fnx8pKSmMHj2a0qVL89xzz+Hu7s53333H2bNn012jQoUK//HviI2N5eTJk3h4eODu7o67uzvPPfcciYmJnDp16g/Pc3V1pUOHDrbaDhw4wOHDh+ncufP/dtMiIiIif5KTvQsQEREReZr5+fnRq1cvZsyYwezZs3nppZd4/fXXmThxIp988gnTpk2jdOnSZMmShcDAQFsz81RZsmT5j9ePj4+nQoUKLFiw4IF9OXPm/I/ndunShbJly3L+/Hlmz56Nr68v+fPn/+s3KSIiIvI3KJQSEREReYRatmxJnz59WLhwIXPnziUgIACLxcLOnTtp3Lgx7du3B8BqtfLjjz9SokSJv3T98uXLs2TJEnLlyoWnp+dDj3FxcSElJeWB7aVLl6ZixYp88cUXLFy4kODg4L9+gyIiIiJ/k6bviYiIiDxC7u7utGrVisGDB3Pp0iXb9LgiRYqwYcMGdu3axdGjR/H39+fKlSt/+frt2rUjR44cNG7cmO3btxMXF0dkZCS9e/fm/PnzABQoUIBDhw5x/Phxrl27RnJysu38Ll26MGHCBIwxNG3a9B+5ZxEREZE/Q6GUiIiIyCPm5+fHjRs3qFOnDs8//zwAQ4cOpXz58tSpU4eaNWvi7e1NkyZN/vK13dzc2LZtGy+++CLNmjWjePHi+Pn5kZiYaBs51bVrV4oVK0bFihXJmTMnO3futJ3fpk0bnJycaNOmDa6urv/I/YqIiIj8GRaTdo1iEREREXmmnD59mpdeeono6GjKly9v73JERETkGaJQSkREROQZlJyczPXr1+nfvz9xcXHpRk+JiIiIPA6aviciIiLyDNq5cyd58uQhOjqa0NBQe5cjIiIizyCNlBIRERERERERkcdOI6VEREREREREROSxUyglIiIiIiIiIiKPnUIpERERERERERF57BRKiYiIiIiIiIjIY6dQSkREREREREREHjuFUiIiIiIiIiIi8tgplBIRERERERERkcdOoZSIiIiIiIiIiDx2CqVEREREREREROSx+z/Ng4n3nxVd9gAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 1200x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Plot salvato come: .//2024-12-07_07-35_plots/variety_comparison_oil_efficiency_l_kg.png\n"
]
},
{
"data": {
"image/png": "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bdvW+ktJly5dbJa5ubmpY8eO1vXtec7/7ciRIzp+/LhmzZqlGjVq2NwiIyMl/W8S8jxFfd3y1K1bVyEhIfluF7s6lr12795tEywUxe+//y5jjF5++eV82543x9W/t/3f76O80CBv38n7hfZStQwYMEDu7u6aN2+epPPhxxdffKEHHnigSHM2mX/N5XY57H3/FMXy5cvVp0+ffO1169bNt33e3t6X/Bxq3bq11q1bpzVr1iglJUWLFy9WzZo1L1pDt27ddOjQIf3+++9at26dLBaLOnfubBNWfffdd+ratatNyPz9998rJCREnp6eqlKlimrUqKGRI0dKUpHeU7t27VJCQkK+fSpvDjB73k95r/Ol9onTp09r1KhR1jmsfHx8VKNGDR0/ftymZnveJ/+uq6j7ibu7u8aPH6+vvvpKvr6+6t69uyZMmKC0tDRr/+DgYPXr109jxoyRj4+P7rzzTs2dOzfffIj/lhc4Xex7sijBVUH69+8vFxcXLVy4UNL5537RokXq3bu39ft5165dks4Hdv9+fd99912dPXv2kvtI7969Va1aNWsQJUkff/yxWrdurebNm1vbSvq7tDif9UWxa9cuZWRkqGbNmvnGPXnypHXM4r7mAGAvrr4HAMXk5eWl2rVra8uWLXatV9RJh11dXe1qL84vvd9995369u2r7t276+2331atWrVUvnx5zZ071+YH8DxFPdrm3nvvVbdu3bR06VJ98803mjhxosaPH69PP/20WJfOLmybnenGG29UfHy8jh8/ru+//15dunSxLuvSpYvmzJmjc+fOae3atQoKCrIeqWDvc/5veX/VHzRokCIiIgrs06pVK5v79hwldSXL2/bnnntOoaGhBfb5d+hbUu+XqlWr6vbbb9e8efM0atQoLV68WGfPnr3kVQolqXr16pcMUJ1p79692r59e77JwSXHfA7lyTua8Ntvv9WePXvUrl07eXp6qlu3bnrrrbd08uRJbdq0Sa+//rp1nd27d+vmm29W06ZNNXnyZNWrV09ubm768ssvNWXKlEseBSOd369uueUWPf/88wUuzwvz81zs/ZT3Ovv4+Fz0MZ944gnNnTtXTz/9tDp37ixvb29ZLBYNHDiwSDUX5HLe508//bTuuOMOLVu2TF9//bVefvllxcbGatWqVWrbtq0sFosWL16sH374Qf/973/19ddfa8iQIXrzzTf1ww8/qFKlSgWO26xZM0nSL7/8orCwsAL75E1uX5SjcC9Uu3ZtdevWTZ988olGjhypH374QampqRo/fry1T95zOXHiRLVp06bAcQqrPU/58uV17733avbs2UpPT1dqaqp27dqlCRMmWPuUxndpcT7riyI3N1c1a9a0Buz/lvcHoOK+5gBgL0IpALgMt99+u2bNmqXk5GSbU+0K4u/vr9zcXO3atcv6g7okpaen6/jx4/L39y/R2nJzc7Vnzx6bX6h27twpSdZTdJYsWSIPDw99/fXXNpe7njt37mU/fq1atTR06FANHTpUhw8fVrt27fT666+rd+/e1m3dsWNHvsvP79ixo8Seiwsf58KjxrKzs7V3797LuhrajTfeqJkzZ2rlypXatGmThg8fbl3WpUsXnT59WsuXL9eePXvUr18/6zJ7nvOCAswaNWqocuXKysnJKfGruTlSo0aN7A50817D8uXLl9i2N2rUSJK0ZcuWfIHWv4WHh+vOO+/UTz/9pHnz5qlt27Y2R0oUpmnTppo3b54yMjKsRxRdjpJ+/yxfvlze3t42p5g6Q/369VW/fn1999132rNnj7p16yZJ6t69u6Kjo7Vo0SLl5OSoe/fu1nX++9//6uzZs/r8889tjorLOwXpQoX9QaBRo0Y6efJkiexTe/fulYuLS74g698WL16siIgIvfnmm9a2M2fO2FwVNK82e98neezdTxo1aqRnn31Wzz77rHbt2qU2bdrozTff1H/+8x9rnxtuuEE33HCDXn/9dc2fP18PPPCAFixYoIcffrjAGm688UZVqVJF8+fP14svvlhgmPnhhx9KOv99aq8BAwZo6NCh2rFjhxYuXKiKFSvqjjvusNkm6fwfkS7n9X3ggQcUHx+vhQsXau/evbJYLLrvvvusy0vju9Sez/qi/rFLOv+crFy5Ul27di1SOGbvaw4A9uL0PQC4DM8//7w8PT318MMPKz09Pd/y3bt3a+rUqZKk2267TZIUFxdn02fy5MmSVOCpM5dr+vTp1v8bYzR9+nSVL19eN998s6TzRztYLBbl5ORY+/3xxx9atmxZsR8zJycn3+kKNWvWVO3ata2H/bdv3141a9ZUfHy8zakAX331lX777bcSey5CQkLk5uamt956y+YIjvfee08ZGRmX9Th5v8BPnjxZ586dszlSKiAgQLVq1bL+Jf3CX/btec49PT3z/ZLq6uqqfv36acmSJQX+snrkyJFib5Mj9evXTz///LOWLl2ab1lhR9vUrFlTN910k9555x0dOnQo3/LibHuvXr1UuXJlxcbG6syZMxeto3fv3vLx8dH48eO1Zs2aIh0lJUmdO3eWMUYbN260u76ClPT758svv1SvXr1Urpzz/1bZrVs3rVq1SuvXr7eGUm3atFHlypU1btw4VahQQUFBQdb+eSHHha9VRkZGgWFAQe8n6fyRncnJyfr666/zLTt+/Lj++eefIte/ceNGNW/e/JLho6ura779a9q0aTafC1Lx3id5irqfnDp1Kt++36hRI1WuXNm63t9//53v8fKOPLrY6VwVK1bUc889px07dujFF1/Mt3z58uV6//33FRoaqhtuuOGi21OQfv36ydXVVR9//LEWLVqk22+/XZ6entblQUFBatSokSZNmqSTJ0/mW7+onxldu3ZVQECA/vOf/2jhwoUKDg5W3bp1rctL47vUns/6vG0uaP/+t3vvvVc5OTkaO3ZsvmX//POPdYzivuYAYC/n//QBAFexRo0aaf78+RowYICaNWum8PBwtWjRQtnZ2Vq3bp0WLVqkwYMHSzo/x0pERIRmzZql48ePKzg4WOvXr9cHH3ygsLCwEp1EWjo/D1NCQoIiIiLUqVMnffXVV1q+fLlGjhxpPTy/T58+mjx5sm699Vbdf//9Onz4sGbMmKHGjRtbT6mw14kTJ1S3bl3dc889at26tSpVqqSVK1fqp59+sh4VUL58eY0fP16RkZEKDg7Wfffdp/T0dE2dOlUBAQF65plnSuQ5qFGjhmJiYjRmzBjdeuut6tu3r3bs2KG3335bHTp0KHKoUJD69eurXr16Sk5OVkBAgGrXrm2zvEuXLlqyZIksFou6du1qbbfnOQ8KCtLKlSs1efJk1a5dWw0aNFCnTp00btw4rV69Wp06dVJUVJQCAwN17NgxpaSkaOXKlTp27Fixt0s6f0TdhUdH5PH19dUtt9xyWWPnGT58uBYvXqz+/ftryJAhCgoK0rFjx/T5558rPj5erVu3LnC9GTNm6MYbb1TLli0VFRWlhg0bKj09XcnJyfrzzz/1888/21WHl5eXpkyZoocfflgdOnTQ/fffr6pVq+rnn3/WqVOn9MEHH1j7li9fXgMHDtT06dPl6upqc6TExdx4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AABwOEIpAAAAAAAAOByhFAAAAAAAAByOUAoAAAAAAAAORygFAAAAAAAAhyOUAgAAAAAAgMOVK85K586dU1pamk6dOqUaNWqoWrVqJV0XAAAAAAAAyrAiHyl14sQJzZw5U8HBwfLy8lJAQICaNWumGjVqyN/fX1FRUfrpp59Ks1YAAAAAAACUEUUKpSZPnqyAgADNnTtXISEhWrZsmTZv3qydO3cqOTlZo0eP1j///KNevXrp1ltv1a5du0q7bgAAAAAAAFzFinT63k8//aRvv/1WzZs3L3B5x44dNWTIEMXHx2vu3Ln67rvv1KRJkxItFAAAAAAAAGVHkUKpjz/+uEiDubu767HHHrusggAAAAAAAFD22XX1vXPnzqlcuXLasmVLadUDAAAAAACAa4BdoVT58uVVv3595eTklFY9AAAAAAAAuAbYFUpJ0osvvqiRI0fq2LFjpVEPAJSaGTNmKCAgQB4eHurUqZPWr19faN+tW7eqX79+CggIkMViUVxcXL4+M2fOVKtWreTl5SUvLy917txZX331VSluAQAAAACUHUWaU+pC06dP1++//67atWvL399fnp6eNstTUlJKrDgAKCkLFy5UdHS04uPj1alTJ8XFxSk0NFQ7duxQzZo18/U/deqUGjZsqP79++uZZ54pcMy6detq3LhxatKkiYwx+uCDD3TnnXdq06ZNhV4YAgAAAABwnt2hVFhYWCmUAQCla/LkyYqKilJkZKQkKT4+XsuXL9ecOXM0YsSIfP07dOigDh06SFKByyXpjjvusLn/+uuva+bMmfrhhx8IpQAAAADgEuwOpUaPHl0adQBAqcnOztbGjRsVExNjbXNxcVFISIiSk5NL5DFycnK0aNEiZWVlqXPnziUyJgAAAACUZXbPKSVJx48f17vvvquYmBjr3FIpKSk6cOBAiRYHACXh6NGjysnJka+vr027r6+v0tLSLmvsX3/9VZUqVZK7u7see+wxLV26VIGBgZc1JgAAAABcC+w+UuqXX35RSEiIvL299ccffygqKkrVqlXTp59+qtTUVH344YelUScAXJGuv/56bd68WRkZGVq8eLEiIiK0Zs0agikAAAAAuAS7j5SKjo7W4MGDtWvXLnl4eFjbb7vtNn377bclWhwAlAQfHx+5uroqPT3dpj09PV1+fn6XNbabm5saN26soKAgxcbGqnXr1po6depljQkAAAAA1wK7Q6mffvpJjz76aL72OnXqXPZpMABQGtzc3BQUFKTExERrW25urhITE0t8/qfc3FydPXu2RMcEAAAAgLLI7tP33N3dlZmZma99586dqlGjRokUBQAlLTo6WhEREWrfvr06duyouLg4ZWVlWa/GFx4erjp16ig2NlbS+cnRt23bZv3/gQMHtHnzZlWqVEmNGzeWJMXExKh3796qX7++Tpw4ofnz5yspKUlff/21czYSAAAAAK4idodSffv21auvvqpPPvlEkmSxWJSamqoXXnhB/fr1K/ECAaAkDBgwQEeOHNGoUaOUlpamNm3aKCEhwTr5eWpqqlxc/nfw6MGDB9W2bVvr/UmTJmnSpEkKDg5WUlKSJOnw4cMKDw/XoUOH5O3trVatWunrr7/WLbfc4tBtAwAAAICrkcUYY+xZISMjQ/fcc482bNigEydOqHbt2kpLS1Pnzp315ZdfytPTs7RqdZjMzEx5e3srIyNDXl5ezi4HAMqsgBHLnV0CSskf4/o4uwQAAAA4SVFzFbuPlPL29taKFSv0/fff6+eff9bJkyfVrl07hYSEXFbBAAAAAAAAuHbYHUp9+OGHGjBggLp27aquXbta27Ozs7VgwQKFh4eXaIEAAAAAAAAoe+w+fc/V1VWHDh1SzZo1bdr/+usv1axZUzk5OSVaoDNw+h5QOE63KruccboV+1PZxel7AAAA166i5iouhS4phDFGFoslX/uff/4pb29ve4cDAAAAAADANajIp++1bdtWFotFFotFN998s8qV+9+qOTk52rt3r2699dZSKRIAAAAAAABlS5FDqbCwMEnS5s2bFRoaqkqVKlmXubm5KSAgQP369SvxAgEAAAAAAFD2FDmUGj16tCQpICBAAwYMkIeHR6kVBQAAAAAAgLLN7qvvRURElEYdAAAAAAAAuIbYHUrl5ORoypQp+uSTT5Samqrs7Gyb5ceOHSux4gAAAAAAAFA22X31vTFjxmjy5MkaMGCAMjIyFB0drbvvvlsuLi565ZVXSqFEAAAAAAAAlDV2h1Lz5s3T7Nmz9eyzz6pcuXK677779O6772rUqFH64YcfSqNGAAAAAAAAlDF2h1JpaWlq2bKlJKlSpUrKyMiQJN1+++1avnx5sYqYMWOGAgIC5OHhoU6dOmn9+vWF9t26dav69eungIAAWSwW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LU3GGN1yyy1q0qSJJPYnFF3evrJkyRLFxMTozJkz+ueffxQcHKxJkyapTp06zi4RjmaAK9SoUaNMrVq1zJIlS8yxY8dMt27dTKNGjcyCBQvMmTNnnF0erjK//vqr8fHxMW+//bY5c+aM2bFjh3nttddM/fr1zdixY51dHq4COTk51v9/9913xtPT07z11ltm69at5uOPPzbBwcHm9ttvN2vWrHFilbga7dy503To0MG8/fbbxhhj0tPTTd26dU3Tpk1N5cqVzbJly4wxxuTm5jqzTFxFpkyZYurWrWs2bNhgjDFm3rx5xmKxmJtvvtmsXLnS2o99CvZ49tlnjY+Pj+nevbupXLmy6dChg5k0aZJ1P2J/QlGtWbPGVKxY0cyaNcskJSWZhIQEU6dOHdO9e3eTlpZmjGF/upYwpxSuSBs3btSKFSv0/vvv6+6771ZycrJ+/fVXVa1aVQ899JCWLVumU6dOObtMXEV27dqlmjVr6v7775e7u7uuu+46RUVFaciQIVq2bJl2797t7BJxhVq1apUk2Zy28M0336hbt2564oknFBgYqIEDB2r06NH6+++/tXDhQknM6YKic3d3V8eOHTVw4ED9+eef6tatm2677TYtW7ZMrVq1Unh4uBYvXsxRCCiS48ePa+/evXrllVcUFBSkJUuW6PHHH9drr72m1NRUjRw5UitWrJAk9ikU2ZIlSzR//nwlJCQoKSlJBw8eVFBQkD777DO98847ktifULBdu3YpOzvbpu27775TcHCwoqKiFBwcrNDQUKWkpGjnzp16/vnnJbE/XUsIpXBFqly5sgYPHqxevXpp9erVGjJkiMaNG6effvpJrVq10osvvqiFCxfm+4ADCuPl5aVjx47p999/t7bVrFlTd911l7Zt26Y9e/Y4sTpcqRYvXqzXXnvNOidLHovFohMnTig7O9s6KWePHj300EMP6f3339fhw4cLnXsD+Lf69etr9OjRqlq1qiZOnKiWLVtq8uTJuv7669WsWTO5ubnpueeeU2ZmJpPAIp9/B+CVK1dW//79deedd+rXX3/ViBEj9Morr2jkyJGaMGGCNm3apJdeeknr1693UsW4Gv3xxx+qW7euWrRoIWOMKlWqpLFjx8rPz0+LFi1ydnm4Qi1btkzXX3+9vvzyS507d07S+dP39uzZo7///tva78yZM6pZs6amT5+ub7/9Vnv27OH77hrCT8xwuoKOJrjuuut05513SpLi4+N17733KioqSv/884/q1aunkydPat68eXJzc3N0ubgKFPQl5ufnpypVquiTTz5Renq6tb1evXpq2rQpR7WgQF27dtWHH36oGjVqaO/evdb2hg0bav369Vq/fr3NX/Kuu+46+fv7E5ijUHmfT/v379fWrVv1zz//SJJq1KihM2fOaPPmzfL395enp6ek80dRjRs3TikpKfLy8uIvx7Bx4Vw/H3zwgRISEpSTk6MuXbrIx8dH69atk5+fnx544AFJUlZWlvr166eWLVuqffv2ziwdV4m8K1+7urrq7NmzOnfunFxcXPTPP//Ix8dHI0eO1OrVq5WSkuLkSnElCgsL0913362oqCh99dVXys7OlsVi0b333qtdu3bp448/liR5eHhIktzc3OTq6qoKFSrwfXcNIZSCU134w1RiYqLWrFlj/VLz9fVVZmam9u7dq1q1asnFxUXlypWTq6ur1q1bp2+++caZpeMKZf7/5Ilr167VjBkzNG3aNP3zzz9q3ry5nnvuOb399tuaOHGivvvuOx06dEjjx49XWlqamjdv7uzScYUxxqhWrVqqW7eutm3bpgEDBmjs2LGSpIiICPXr10933XWX1qxZo8zMTEnnJ4AtV66cNVAA/i1vctfg4GD16NFDwcHBWrp0qc6cOSMPDw+1a9dOn332mWbPnq0nn3xSS5cuVc+ePVWtWjVnl44rUN7PUM8//7xGjBihHTt26OTJk9b2I0eOKDMzU2lpaTpx4oQ++eQTde7cWe+++65cXFz4gwzy+fc+4erqKkkKDQ3Vtm3bFBsbK0kqV+78RdzPnTun5s2by8vLy7GF4oqX90eXxYsX6+abb9bgwYOVkJCgc+fOqXXr1rrzzjv19ttva/78+ZKk7Oxs/fDDD/L29pa7u7szS4eDcfU9OI254Codzz77rObNm6fc3FzVrVtXAwcOtJ5PPGDAAK1Zs0bh4eFau3atMjMz9fPPP8vV1fWil6fFtWvp0qUaNGiQrrvuOh08eFBVqlTRihUrVL9+fc2dO1dTp07V/v375evrq6ysLC1btkxt27Z1dtm4gh04cEAvv/yydu7cqTvuuEMvvPCCzpw5o4ceekhLlizR9ddfr8qVK2vbtm1KTExkf4KNC7/vtm3bprvuukuPPPKIgoKC9MYbb+jvv//Wo48+qoiICO3atUuxsbFau3atqlevrtmzZ7M/4aLeffddvfjii/r666/VokULa1ggSb///rtuvPFGeXp6KicnR97e3tqwYYPKly/vxIpxpbrws2rOnDnatWuX6tSpo969e6tRo0b68MMPFRUVpUcffVT9+/dX1apV9cILLygzM1Nr1qzhZ3Lk888//1g/kwYMGKBvvvlGH3zwgfr27atffvlF06ZN05IlS1S7dm1VqVJFv/32m1auXMn33jWGUApO8e8f0B944AHNmTNHp0+f1jfffKO5c+cqPDzcelTCoEGD9Ndff6lKlSr68MMPVb58eQIp2Mjbp86ePathw4bpxhtvVP/+/bV//35FRUVp//79WrlypRo1aqQ//vhDhw8fVlZWlpo2bapatWo5u3xcBfbv32+d2+7ee+/Vc889J0latGiRDh48KGOM7rjjDjVq1MjJleJKcezYMZsjnH7++WetWrVK+/fv1+TJkyWd/4F90KBB2rVrl5544gk9+OCDcnV1VVpamtzd3VW1alVnlY+rxJNPPqnTp09r9uzZysnJyfdHuz/++MM6sXlkZKTKlStn84siINmevTBixAjNmTNHTZo00YkTJ1ShQgW99957atGihZYtW6bHH39cFotFFSpUkJ+fn1atWsXP5iiSe+65RytXrtSHH36ovn376ujRo9qxY4f++9//qn79+rrlllvUpEkTZ5cJByOUglO9++67WrlypWrWrKm33npLkpSWlqb3339fb7/9tgYPHqxXX31V0vl5EPJOieGHKUjS+vXr1bFjR+v97777TkOHDlVAQIBef/11tWrVSpJ06NAhDRw4UPv27dOqVavUsGFDZ5WMq0BewLlx40Zt2bJF//zzj/5fe3ceV2P6/gH885wWSdmy1NhihCxR9mVGYiwzdmMnRoydDCrJnmEwthYxJuugsddoMCKSKCTLWMpEJLKTpOVcvz98e6YzzPxmvt/hFJ/3X+NZjuvM63mdc/uc+77uZs2awdbWFikpKZg7dy6io6PRo0cPuLu767tcyqcWLVqE1NRUzJ07V10m9dFHHyE6Ohpt2rTRWYKemZkJZ2dnJCYmwtnZGUOGDEHhwoX1WD3lV3l/1ANejoccHR1Rvnx5bNmyBcDv4UJmZibOnz8PBwcHndfIDa6IcuUNk65evYr58+dj9OjRqFevHg4d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ORkJCQmoWbMmjIyMcPToURgZGam9poiIiIiIiIiI3iUMpd4CX19fzJo1C7t374aFhQVu3LiBgQMHonHjxvjhhx9gbGyMX3/9FZcvX0bZsmXRokWL1zY9JyIiIiIiIiJ6VzCUegsGDRqEwoULIyAgQJ09debMGXz88ccYO3Ys5s6d+8o9nCFFRERERERERO8yNjr/l/0x48vKykJycjIyMjLU85mZmahXrx5mzpyJrVu34uHDh8jJydG5j4EUEREREREREb3LGEr9i7RardpD6rfffkNqaiqMjIzg7OyMbdu2ISwsDBqNBkZGRgCAQoUKoVSpUihSpAhDKCIiIiIiIiJ6rzCU+hfl7rLn6emJzp07o2bNmnBzc4OZmRmGDBmC0aNHY+/evdBqtXj8+DF++uknlCtXTg2piIiIiIiIiIjeF+yi/S/QarVqILV161asX78evr6+OHv2LPbu3YukpCQ0adIEnTp1QseOHVGlShUYGBigUKFCiImJgaIoOjv1ERERERERERG969jo/F905MgRbN++HXXr1sWQIUMAAMHBwfDx8UGJEiUwbNgwlClTBidOnICZmRl69+7NXfaIiIiIiIiI6L3EUOpfcvv2bbRo0QJ3797FrFmz4Orqqp4LCQnB0qVLUbRoUUyZMgWNGjVSz3GXPSIiIiIiIiJ6H7Gn1L/E0tISO3bsgKWlJUJDQ3Hu3Dn1XKdOnTBx4kQkJCRg586dOvcxkCIiIiIiIiKi9xFnSv3L4uLi8MUXX6BBgwYYP348atWqpZ47duwYGjduzCCKiIiIiIiIiN57DKXegNjYWAwdOhT169eHq6sratasqXOeS/aIiIiIiIiI6H3HUOoNiY2NxfDhw1GpUiUsWLAAlStX1ndJRERERERERET5BntKvSH29vbw9fWFubk5KlWqpO9yiIiIiIiIiIjyFc6UesNEBIqiQKvVQqNhBkhEREREREREBDCUeitygykiIiIiIiIiInqJU3feAgZSRERERERERES6GEoREREREREREdFbx1CKiIiIiIiIiIjeOoZSRERERERERET01jGUIiIiIiIiIiKit46hFBERERERERERvXUMpYiIiIgKGEVRsGvXLn2XQURERPQ/YShFRERE9AZ06tQJ7du3f+25iIgIKIqCs2fP/levnZKSgg4dOvzt6wcPHoyuXbv+V38XERER0ZvCUIqIiIjoDXBxccEvv/yCmzdvvnJuzZo1aNCgAezs7P7Ra2ZmZgIALC0tUahQoX+lTiIiIiJ9YShFRERE9AZ07NgRpUuXxtq1a3WOp6WlYevWrejatSv69u2LcuXKwdTUFHXq1MHmzZt1rnV0dMSYMWPg6uqKUqVKoV27dgBeXb5348YN9OrVC8WLF0fJkiXRpUsXXLt2DQAwc+ZMrFu3Drt374aiKFAUBeHh4XBycsKYMWN0/r67d+/C2NgYYWFh//r/DyIiIqI/YihFRERE9AYYGhrC2dkZa9euhYiox7du3YqcnBwMGDAA9evXx549e3D+/Hl8+eWXGDhwIKKjo3VeZ926dTA2NkZkZCQCAgJe+XuysrLQrl07mJubIyIiApGRkTAzM0P79u2RmZmJSZMmoVevXmjfvj1SUlKQkpKCZs2aYejQodi0aRNevHihvtbGjRtRrlw5ODk5vbn/MURERET/wVCKiIiI6A0ZMmQIrl69isOHD6vH1qxZgx49eqBSpUqYNGkS6tWrhypVqmDs2LFo3749fvzxR53XsLGxwYIFC1C9enVUr179lb8jKCgIWq0Wq1evRp06dWBra4s1a9YgKSkJ4eHhMDMzQ+HChVGoUCFYWlrC0tISxsbG6N69OwBg9+7d6mutXbsWgwcPhqIob+j/CBEREdHvGEoRERERvSE1atRAs2bNEBgYCABISEhAREQEXFxckJOTgzlz5qBOnTooWbIkzMzMsG/fPiQlJem8Rv369f/y74iLi0NCQgLMzc1hZmYGMzMzlCxZEhkZGbh69eqf3mdiYoKBAweqtZ0+fRrnz5/H4MGD/7c3TURERPQ3Geq7ACIiIqJ3mYuLC8aOHQs/Pz+sWbMGH374IVq2bIlvvvkGy5Ytw9KlS1GnTh0UKVIErq6uajPzXEWKFPnL109LS0P9+vXxww8/vHKudOnSf3nv0KFDUa9ePdy8eRNr1qyBk5MTKlWq9M/fJBEREdF/gaEUERER0RvUq1cvjB8/Hps2bcL69esxcuRIKIqCyMhIdOnSBQMGDAAAaLVaXLlyBTVr1vxHr+/g4ICgoCCUKVMGRYsWfe01xsbGyMnJeeV4nTp10KBBA3z33XfYtGkTfH19//kbJCIiIvovcfkeERER0RtkZmaG3r17Y8qUKUhJSVGXx9nY2OCXX37BsWPHcPHiRQwfPhx37tz5x6/fv39/lCpVCl26dEFERAQSExMRHh6OcePG4ebNmwAAa2trnD17FpcvX8a9e/eQlZWl3j906FDMnz8fIoJu3br9K++ZiIiI6O9gKEVERET0hrm4uODhw4do164dPvjgAwCAl5cXHBwc0K5dOzg6OsLS0hJdu3b9x69tamqKI0eOoGLFiujevTtsbW3h4uKCjIwMdebUsGHDUL16dTRo0AClS5dGZGSken/fvn1haGiIvn37wsTE5F95v0RERER/hyJ59ygmIiIiovfKtWvX8OGHHyImJgYODg76LoeIiIjeIwyliIiIiN5DWVlZuH//PiZNmoTExESd2VNEREREbwOX7xERERG9hyIjI2FlZYWYmBgEBATouxwiIiJ6D3GmFBERERERERERvXWcKUVERERERERERG8dQykiIiIiIiIiInrrGEoREREREREREdFbx1CKiIiIiIiIiIjeOoZSRERERERERET01jGUIiIiIiIiIiKit46hFBERERERERERvXUMpYiIiIiIiIiI6K1jKEVERERERERERG/d/wGlU1SEziQW4AAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 1200x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Plot salvato come: .//2024-12-07_07-35_plots/variety_comparison_water_efficiency_l_oil_m³_water.png\n",
"Plot salvato come: .//2024-12-07_07-35_plots/efficiency_vs_production.png\n"
]
},
{
"data": {
"image/png": "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v/6y2K7gvuudO3fqiSeekL+/v/mXl1e6J/vzzz9XWFiYPDw8VK5cOT3++OM6evSoeX27du30448/6siRI+bPJzQ0VOnp6fLy8tKwYcMKjXns2DE5Oztr7NixVzx+ALge/MoQwG2nTZs2+uyzz7RhwwbzP5Dj4+PVqlUrtWrVSqmpqdq+fbsaNmxoXlevXj2VL19ekjRjxgzdcccdeuihh1SmTBn98MMPeu6555Sfn6/nn39ekjR58mQNHTpU3t7eeu211yRJQUFBki7+wzgiIkJJSUl65plnVLVqVa1bt04xMTFKTk4udG/hnDlz9Pfff2vQoEFyc3NTuXLlrnp8ubm5On36dKF2Ly8veXh46LXXXlPdunU1a9Ys/etf/1L16tVVs2ZNde3aVZ9++qkWL16sGTNmyNvb2/weXC4vL08PPPCAYmNj9fjjj2vYsGE6f/68VqxYoe3bt6tmzZpFbnfy5En94x//kMlk0pAhQxQYGKiffvpJAwYMUFpaWqHLPceNGycnJyeNGDFCqampGj9+vHr37q0NGzaY+6xYsUIPPPCAgoODNWzYMFWsWFG7du3SkiVLNGzYMD366KN6/vnn9cUXX6hJkyYW43/xxRdq166dKleuXGS9Xbp0kbe3t7766itFRERYrFuwYIHuuOMO3XnnnZKk7t27a8eOHRo6dKhCQ0OVkpKiFStWKDExsdBlxgUyMzMVGxurtm3bqnr16kX26dmzpwYNGqQlS5ZYfTlts2bNVKNGDX311VfmX6hcWre/v786deokyfbPxBq5ubk6evSo+WemQFHf5ZUrV+r+++9XjRo19MYbbygrK0tTp05V69attXnzZvN7t23bNt17770KDAzUG2+8oQsXLmjMmDHmn6viOH78uFq0aKFz585p0KBBqlevnpKSkvT1118rMzNTd999t1544QV9+OGHevXVV1W/fn1JMv/3cllZWWrXrp3279+vIUOGqHr16lq4cKH69++vc+fOFQp8X375pc6fP69nnnlGJpNJ48ePV7du3XTw4EG5uLhcs/4hQ4aobNmyeuONN7Rnzx7NmDFDR44cMf+Sqk+fPvr000+1fPlyPfDAA+btTpw4oV9++cX8S7WimEwmPfHEE3r33Xe1Y8cO3XHHHeZ1y5Yt05kzZ9S7d29JF38GDx48qKioKFWsWFE7duzQrFmztGPHDv32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PWrtplc1depUo2rVqoarq6vRokUL47fffjOvi4iIMPr162d+fejQIUNSoSUiIsLcZ9WqVUX2uXSca0lNTTUkGampqXY4QgAAUJLS0tIMNzc3Y/bs2YXWzZo1y/D39zfS09PNbT/++KPh5ORknDhxwjAMw+jXr58RFBRkZGdnX3U/mzZtMiQZ58+fNwzjf//mOHv2rEW/iIgIY9iwYebX1apVM5588knz6/z8fKNChQrGjBkzrriv999/3wgLC7tqPQCAojk6z1l9JvuXX35RXFyc4uLi9N///lc5OTmqUaOGOnTooPbt26t9+/aFZgq3xpAhQzRkyJAi18XFxVm8Dg0NlXGNx3q3a9fumn0AAMCtY9euXcrOzlbHjh2LXNeoUSN5eXmZ21q3bq38/Hzt2bPH/G+Xu+66S66urhbbJiQk6I033tAff/yhs2fPKj8/X5KUmJioBg0a2FRjw4YNzX82mUyqWLGi+dJzSVqwYIE+/PBDHThwQOnp6bpw4QK3rwFAKWX1Pdnt2rXTG2+8obi4OJ09e1YrVqxQr169tGvXLvXv31+VKlXSHXfcUZK1AgAAFHK1y7StdWkIl2S+zNzX11dffPGFNm3apMWLF0sq3sRoLi4uFq9NJpM5tK9fv169e/dW586dtWTJEm3ZskWvvfbadU/ABgBwDJufky1J7u7u6tChg9q0aaP27dvrp59+0scff3zDn28NAABQu3ZteXh4KDY2Vk8//bTFuvr162vu3LnKyMgwB+n4+Hg5OTmZ74cuyu7du/XXX39p3Lhx5kd7/v777xZ9Cs585+XlXVf969atU7Vq1fTaa6+Z244cOXJdYwIAHMem2cVzcnK0Zs0avfnmm2rfvr3Kli2rZ599VmfPntW0adN06NChkqoTAACgSO7u7nrllVc0cuRIffrppzpw4IB+++03/ec//1Hv3r3l7u6ufv36afv27Vq1apWGDh2qPn36XPU2t6pVq8rV1VVTp07VwYMH9f333xd69nW1atVkMpm0ZMkSnTp1ymLGclvUrl1biYmJmj9/vg4cOKAPP/zQfNYcAFD6WB2yO3ToIH9/fz333HNKSUnRM888owMHDmjPnj2aPXu2+vTpw+zdAADAbgzD0JmMHB09k6kzGTlXnXPl9ddf10svvaTRo0erfv366tmzp1JSUuTp6anly5frzJkzat68uR59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0LbTp0/XJ598osTERGVlZSknJ8eqmctTU1OVnJys8PBwc1uZMmXUrFkz8yXj+/fvV2Zmpu655x6LbXNyctSkSROrju2PP/5QfHy8+cy1dPEy9b///luZmZny9PS84rahoaHy8fExvy74zArs27dPo0eP1oYNG3T69GnzGezExETdeeedVtUHAABuD4RsALAzFxcXi9cmk8nqy4o9PDyuuC49PV3Ozs5KSEiQs7OzxTpvb2+rxu/Xr5/++usvTZkyRdWqVZObm5tatmypnJwci35eXl4Wr+fPn68RI0Zo4sSJatmypXx8fPT+++9rw4YNVu33WtLT0yVdvFy+cuXKFuvc3NysHuPNN99Ut27dCq1zd3e/6rbX+swefPBBVatWTbNnz1alSpWUn5+vO++8s9D7BgAAQMgGgBukfv36Onr0qI4ePWo+m71z506dO3dODRo0kHTxLHhsbKyioqIKbd+kSRPl5eUpJSVFbdu2LVYN8fHx+uijj9S5c2dJ0tGjR3X69GmrtmvVqpWee+45c5u1E3/5+fkpODhYGzZs0N133y1JunDhghISEtS0aVNJF8/ou7m5KTExUREREbYeliSpadOm2rNnj2rVqnXFPi4uLsrLy7Np3L/++kt79uzR7Nmzze/72rVri1UjAAC49RGyAcAKhmHobGauMrIvyMutjPw9XWQymWwaIzIyUnfddZd69+6tyZMn68KFC3ruuecUERFhvjx7zJgx6tixo2rWrKnHH39cFy5c0NKlS/XKK6+oTp066t27t/r27auJEyeqSZMmOnXqlGJjY9WwYUN16dLlmjXUrl1bn332mZo1a6a0tDS9/PLLVz17ful2n376qZYvX67q1avrs88+06ZNm1S9enWrjn3YsGEaN26cateurXr16mnSpEk6d+6ceb2Pj49GjBihF198Ufn5+WrTpo1SU1MVHx8vX19f9evX75r7GD16tB544AFVrVpVjz76qJycnPTHH39o+/btevvttyVdvCw8NjZWrVu3lpubm/z9/a85rr+/v8qXL69Zs2YpODhYiYmJGjVqlFXHDQAAbj/MLg4AV5GalatP1h5SvZ6jFFC+nNqOX6Wmb61Qu/fj9MnaQ0rNuvIzpE0mk7799luL19999538/f119913KzIyUjVq1NCCBQvMfdq1a6eFCxfq+++/V+PGjdWhQwdt3LjR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InPnzhVTU1M5ffp0jV4P+vu631ioyL2ri4twLFD98KCxsGHDBjE1NZXly5dLenq6LFmyRIyNjSU2NlapIzg4WJo3by779u2TEydOSK9evaRXr15KeVFRkTz++OMycOBASUpKkh07dkijRo1k5syZSsz58+fFwsJCwsPDJSUlRZYuXSrGxsayY8eOmrsY9Lf2oLHg4+Mj7du3l+joaDl//rysXLlSzM3N5bPPPlPq4Fig+mDixIlia2srMTExqnygoKBAiampe33t2rWi1WolKipKzp49KxMmTBA7OzvVquV/FpNsMpjo6GgBUO7n+eeflwsXLlRYBkCio6OVOv773/9KYGCgWFlZiY2NjYwbN05yc3NV7Zw8eVJ69+4tWq1WmjVrJu+//365vnz33Xfi7u4uZmZm0r59e/npp5+q+/SJFPcbCxWpKMnmWKD64GHGwooVK8TNzU3Mzc3F09NTNm3apKqjsLBQJk2aJA0aNBALCwsZNmyYXLlyRRVz8eJFGTx4sOh0OrG3t5dp06aJXq8v15dOnTqJmZmZtGzZUlauXFldp01UzoPGwpUrV+SFF14QR0dHMTc3lzZt2khERISUlJQodXAsUH1QWT5w931Yk/f6kiVLpHnz5mJmZiY9evSQI0eOGOQ8Nf87WSIiIiIiIiJ6RHwnm4iIiIiIiMhAmGQTERERERERGQiTbCIiIiIiIiIDYZJNREREREREZCBMsomIiIiIiIgMhEk2ERERERERkYEwySYiIiIiIiIyECbZRERERERERAbCJJuIiMiAYmJioNFocOPGDQBAVFQU7OzsarVPhnTv+VWXefPmoVOnTtXaRpm9e/eiXbt2KC4urta2XV1dsXjx4keqIzIyEv7+/obpEBERVQsm2URE9KfExcXB2NgYfn5+td2VGrN161b4+PjA2toaFhYW6N69O6Kiou57TEBAANLS0qq1X2WJb9lP48aNMWLECJw/f75a2zUUjUaDTZs2qfaFhYVh7969NdL+9OnT8dZbb8HY2Njgda9atQq9e/c2WH0vvvgiEhISEBsba7A6iYjIsJhkExHRn7JixQpMnjwZBw4cQFZWVrW2JSIoKiqq1jYeZMmSJXjmmWfg7e2No0eP4tSpU3juuecQHByMsLCwSo/T6XRwcHCokT6mpqYiKysL69evR3JyMvz9/ZXZ2bvVhev5IFZW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",
"text/plain": [
"<Figure size 1000x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Plot salvato come: .//2024-12-07_07-35_plots/water_efficiency_vs_production.png\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA9kAAAJOCAYAAACjoMSlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACW40lEQVR4nOzdeVxV1f7/8fcRmYfjAAoqioqaszmGlFpa3ETNstJyzpzncrh2y7I0h9K0Scu6YqjXnBocyllKJDPM2dQ0xAFFJUCBGPfvD7+cn0dQQQ8C+no+HucRZ6+19/7sA5pv1tprmwzDMAQAAAAAAO5YicIuAAAAAACAewUhGwAAAAAAGyFkAwAAAABgI4RsAAAAAABshJANAAAAAICNELIBAAAAALARQjYAAAAAADZCyAYAAAAAwEYI2QAAAAAA2AghGwCKsJCQEJlMJkVFRVm2tWnTRm3atCm0mvLqrbfekslkKpRzF5fPCMWDyWTSW2+9ddM+27Ztk8lk0ooVK+5OUXdBbn//AABujZANAHfZwYMH1aNHD1WsWFGOjo6qUKGCunfvroMHD9r0PH5+fjKZTJZXuXLl9Mgjj+ibb76x6XkKy6FDh/TWW2/dNwFg2bJlMplMuX7/GjZsKJPJpK1bt+Zoq1y5slq2bJmvc3366acKCQm53VJvS/bP6/Dhw3O03YsB9nY0aNBAlStXlmEYN+wTGBio8uXLKyMj4y5WltO6detu+YsJALhXEbIB4C5atWqVGjdurM2bN6tv37769NNP1a9fP23dulWNGzfOEaB69uyplJQUValS5bbO16hRI4WGhio0NFRjxozR2bNn9cwzz2jevHm2uJxCdejQIU2aNCnXkL1hwwZt2LDh7hdVgB5++GFJ0vbt2622JyYm6sCBAypZsqTCw8Ot2k6dOqVTp05Z9s2rwgjZ2ebPn6+zZ88WyrmLuu7du+vUqVP6+eefc22PiopSRESEunbtqpIlS97x+e7k759169Zp0qRJd1wDABRHhGwAuEuOHz+unj17qlq1atq3b58mT56sfv366Z133tG+fftUrVo19ezZUydOnLDsY2dnJycnp9uedl2xYkX16NFDPXr00Lhx4xQeHi5XV1d98MEHN9wnIyNDaWlpt3W+osLBwUEODg6FXYZNVahQQVWrVs0RsiMiImQYhp577rkcbdnv8xuyC0Jefq7q1q2rzMxMTZs27S5VVby8+OKLMplMWrJkSa7t//vf/2QYhrp3735H50lKSpJ053//AMD9ipANAHfJe++9p+TkZH3++efy8vKyavP09NRnn32mpKQkzZgxw7Ld1vdEent7q3bt2vrrr78kXR35MplMev/99zV79mxVr15djo6OOnTokCRpy5YteuSRR+Tq6qpSpUrpqaee0uHDh3Mcd/v27WrWrJmcnJxUvXp1ffbZZzn6ZJ8rtxHS3O55PXPmjPr166cKFSrI0dFRVatW1eDBg5WWlqaQkBA999xzkqRHH33UMiV+27ZtknK/Jzs2Nlb9+vVT+fLl5eTkpIYNG2rhwoW51vj+++/r888/t3wezZo1065du2762f72228ymUw5jilJ69evl8lk0po1ayRJly9f1qhRo+Tn5ydHR0eVK1dOjz/+uHbv3n3Tczz88MP6/ffflZKSYtkWHh6uunXr6sknn9Qvv/yirKwsqzaTyaTAwEBJ0oIFC/TYY4+pXLlycnR0VJ06dTR37lyrc/j5+engwYMKCwuzfK7Xfpbx8fEaNWqUfH195ejoKH9/f02fPt3qvLf6uboRPz8/9erVK8+j2WfOnNFLL72k8uXLy9HRUXXr1tV///vfHP1SU1P15ptvyt/fX46OjvL19dW4ceOUmpqao9/o0aPl5eUld3d3derUSadPn75lHdfKzMzUa6+9Jm9vb7m6uqpTp046deqUpf3NN9+Uvb29Lly4kGPfAQMGqFSpUvrnn39yPbavr69atWqlFStWKD09PUf7kiVLVL16dbVo0UInT57UkCFDVKtWLTk7O6ts2bJ67rnncvxdkv13TFhYmIYMGaJy5cqpUqVKVm3X7/PDDz9Y/l5wd3dXcHCw1e0uffr00SeffCJJVresGIYhPz8/PfXUUzlq/+eff2Q2mzVw4MDcP1gAKEbufC4RACBPVq9eLT8/Pz3yyCO5trdq1Up+fn5au3ZtgdWQnp6uU6dOqWzZslbbFyxYoH/++UcDBgyQo6OjypQpo02bNunJJ59UtWrV9NZbbyklJUUfffSRAgMDtXv3bvn5+UmS9u/fryeeeEJeXl566623lJGRoTfffFPly5e/7TrPnj2r5s2bKz4+XgMGDNADDzygM2fOaMWKFUpOTlarVq00YsQIffjhh3rttddUu3ZtSbL893opKSlq06aN/vzzTw0bNkxVq1bV8uXL1adPH8XHx2vkyJFW/ZcsWaLLly9r4MCBMplMmjFjhp555hmdOHFC9vb2uZ6jadOmqlatmpYtW6bevXtbtX399dcqXbq0goKCJEmDBg3SihUrNGzYMNWpU0eXLl3S9u3bdfjwYTVu3PiGn8vDDz+s0NBQ7dy50xJ8w8PD1bJlS7Vs2VIJCQk6cOCAGjRoYGl74IEHLN/vuXPnqm7duurUqZNKliyp1atXa8iQIcrKytLQoUMlSbNnz9bw4cPl5uam//znP5Jk+V4mJyerdevWOnPmjAYOHKjKlStrx44dmjBhgmJiYjR79myrenP7ubqV//znP/rqq680bdo0ffjhhzfsd/78eT300EMymUwaNmyYvLy89MMPP6hfv35KTEzUqFGjJElZWVnq1KmTtm/frgEDBqh27drav3+/PvjgAx09elTffvut5Zgvv/yyFi1apBdffFEtW7bUli1bFBwcfMuarzVlyhSZTCaNHz9esbGxmj17ttq1a6c9e/bI2dlZPXv21Ntvv62vv/5aw4YNs+yXlpamFStWqEuXLnJycrrh8bt3764BAwZo/fr16tChg2X7/v37deDAAU2cOFGStGvXLu3YsUPdunVTpUqVFBUVpblz56pNmzY6dOiQXFxcrI47ZMgQeXl5aeLEiZaR7NyEhoaqd+/eCgoK0vTp05WcnKy5c+dafgHk5+engQMH6uzZs9q4caNCQ0Mt+5pMJvXo0UMzZsxQXFyc1c/D6tWrlZiYqB49euT9wwaAosoAABS4+Ph4Q5Lx1FNP3bRfp06dDElGYmKiYRiGsWDBAkOS8ddff1n6tG7d2mjduvUtz1mlShXjiSeeMC5cuGBcuHDB2Lt3r9GtWzdDkjF8+HDDMAzjr7/+MiQZHh4eRmxsrNX+jRo1MsqVK2dcunTJsm3v3r1GiRIljF69elm2de7c2XBycjJOnjxp2Xbo0CHDzs7OuPZ/M9nnWrBgQY5aJRlvvvmm5X2vXr2MEiVKGLt27crRNysryzAMw1i+fLkhydi6dWuOPtd/RrNnzzYkGYsWLbJsS0tLMwICAgw3NzfL551dY9myZY24uDhL3++++86QZKxevTrHua41YcIEw97e3mrf1NRUo1SpUsZLL71k2WY2m42hQ4fe9Fi5OXjwoCHJeOeddwzDMIz09HTD1dXVWLhwoWEYhlG+fHnjk08+MQzDMBITEw07Ozujf//+lv2Tk5NzHDMoKMioVq2a1ba6devm+jP2zjvvGK6ursbRo0ettv/73/827OzsjOjoaMMwbv5zdSNVqlQxgoODDcMwjL59+xpOTk7G2bNnDcMwjK1btxqSjOXLl1v69+vXz/Dx8TEuXrxodZxu3boZZrPZcq2hoaFGiRIljJ9//tmq37x58wxJRnh4uGEYhrFnzx5DkjFkyBCrfi+++GKOn8/cZNdYsWJFy8+TYRjGsmXLDEnGnDlzLNsCAgKMFi1aWO2/atWqG/48XysuLs5wdHQ0XnjhBavt//73vw1JxpEjRwzDyP17HRERYUgyvvrqK8u27L9jHn74YSMjI8Oq//V//1y+fNkoVaqU1c+UYRjGuXPnDLPZbLV96NChRm7/zDxy5IghyZg7d67V9k6dOhl+fn6WP98AUJwxXRwA7oLLly9Lktzd3W/aL7s9MTHRJufdsGGDvLy85OXlpYYNG2r58uXq2bOnpk+fbtWvS5cuVlPYY2JitGfPHvXp08dqtKlBgwZ6/PHHtW7dOklXp8auX79enTt3VuXKlS39ateubRm1za+srCx9++236tixo5o2bZqj/XbuD123bp28vb31wgsvWLbZ29trxIgRunLlisLCwqz6d+3aVaVLl7a8z559cO398rnp2rWr0tPTtWrVKsu2DRs2KD4+Xl27drVsK1WqlHbu3JnvBb5q166tsmXLWu613rt3r5KSkiyrh7ds2dKy+FlERIQyMzOt7sd2dna2fJ2QkKCLFy+qdevWOnHihBISEm55/uXLl+uRRx5R6dKldfHiRcurXbt2yszM1E8//WTV//qfq7x6/fXXlZGRccN7sw3D0MqVK9WxY0cZhmFVS1BQkBISEixT75cvX67atWvrgQcesOr32GOPSZJlRfbsn+kRI0ZYnSt7RDyvevXqZfXn/Nlnn5WPj4/l+Nl9du7cqePHj1u2LV68WL6+vmrduvVNj1+6dGm1b99e33//vWXE2TAMLV26VE2bNlXNmjUlWX+v09PTdenSJfn7+6tUqVK53pbQv39/2dnZ3fTcGzduVHx8vF544QWrz9LOzk4tWrTIdXX769WsWVMtWrTQ4sWLLdvi4uL0ww8/qHv37tz/DeCeQMgGgLsg+x/d2WH7RvIaxvOqRYsW2rhxozZt2qQdO3bo4sWL+uqrr6z+AS5JVatWtXp/8uRJSVKtWrVyHLN27dq6ePGikpKSdOHCBaWkpKhGjRo5+uW2b15cuHBBiYmJqlev3m3tn5uTJ0+qRo0aKlHC+n972dPLs68327W/MJBkCdx///33Tc/TsGFDPfDAA/r6668t277++mt5enpaQp0kzZgxQwcOHJCvr6+aN2+ut95665YBXrr6C4aWLVta7r0ODw9XuXLl5O/vL8k6ZGf/99qQHR4ernbt2lnusffy8tJrr70mSXkK2ceOHdOPP/5o+cVN9qtdu3aSrt73fq3rf67yKnsRwM8//1wxMTE52i9cuKD4+HjL+gbXvvr27WtVy7Fjx3Tw4MEc/bLDaHa/kydPqkSJEqpevbrVufL7c3z9nwWTySR/f3+r+5q7du0qR0dHS9BMSEjQmjVr8hwyu3fvrqSkJH333XeSpB07digqKspqwbOUlBRNnDjRcu+8p6envLy8FB8fn+v3Oi/fq2PHjkmSHnvssRyf54YNG3J8/2+kV69eCg8Pt/y5W758udLT09WzZ8887Q8ARR33ZAPAXWA2m+Xj46N9+/bdtN++fftUsWJFeXh42OS8np6elgB0M9eH7oJwo/CQmZlZ4OfOrxuN6Bk3eT5xtq5du2rKlCm6ePGi3N3d9f333+uFF16weqTS888/b3lm+YYNG/Tee+9p+vTpWrVqlZ588smbHv/hhx/W6tWrtX//fsv92NlatmypsWPH6syZM9q+fbsqVKigatWqSbq6un3btm31wAMPaNasWfL19ZWDg4PWrVunDz74wGrhshvJysrS448/rnHjxuXanh1cs93Jz9V//vMfhYaGavr06ercuXOOOiSpR48eOe5/z5Z9X3pWVpbq16+vWbNm5drP19f3tmu8XaVLl1aHDh20ePFiTZw4UStWrFBqamqe70fu0KGDzGazlixZohdffFFLliyRnZ2dunXrZukzfPhwLViwQKNGjVJAQIDMZrNMJpO6deuW6/c6L9+r7P1CQ0Pl7e2doz2vjw3r1q2bRo8ercWLF+u1117TokWL1LRp09v+xRwAFDWEbAC4Szp06KD58+dr+/btuT5S6eeff1ZUVFSRWF03+7m4R44cydH2xx9/yNPTU66urnJycpKzs7NlhOta1++bPRocHx9vtf36UWQvLy95eHjowIEDN60xP9NKq1Spon379ikrK8tqNPuPP/6wtNtK165dNWnSJK1cuVLly5dXYmKiVfjJ5uPjoyFDhmjIkCGKjY1V48aNNWXKlDyFbOnqiu7h4eFW05mbNGkiR0dHbdu2TTt37lT79u0tbatXr1Zqaqq+//57q5H63Kb43uizrV69uq5cuZKnX9zcqerVq6tHjx767LPP1KJFC6u27NW/MzMzb1lL9erVtXfvXrVt2/amPzNVqlRRVlaWjh8/bhX2cvszcDPX/1kwDEN//vmnJfRn69Wrl5566int2rVLixcv1oMPPqi6devm6RyOjo569tln9dVXX+n8+fNavny5HnvsMavgu2LFCvXu3VszZ860bPvnn39y/PnLj+xR/nLlyt3yc7/ZZ12mTBkFBwdr8eLF6t69u8LDw3MsmgcAxRnTxQHgLhk7dqycnZ01cOBAXbp0yaotLi5OgwYNkouLi8aOHVtIFf5/Pj4+atSokRYuXGj1j/IDBw5ow4YNlvBmZ2enoKAgffvtt4qOjrb0O3z4sNavX291TA8PD3l6eua4b/fTTz+1el+iRAl17txZq1ev1m+//ZajtuzRZFdXV0k5Q3tu2rdvr3PnzllN487IyNBHH30kNze3W94Hmx+1a9dW/fr19fXXX+vrr7+Wj4+PWrVqZWnPzMzMMV23XLlyqlChQo5HSuWmadOmcnJy0uLFi3XmzBmrkWxHR0c1btxYn3zyiZKSkqx+mZM9On/taHxCQoIWLFiQ4xyurq65fq7PP/+8IiIicnxvpavfh4yMjFvWnx+vv/660tPTrR5rJ129li5dumjlypW5/jLm2sdjPf/88zpz5ozmz5+fo19KSorlvubsX25cv6J5fsPfV199ZXVbyIoVKxQTE5PjlydPPvmkPD09NX36dIWFheV7Ve3u3bsrPT1dAwcO1IULF3I8G9vOzi7HzIuPPvrojmaOBAUFycPDQ++++26ujxC79nO/1Z/Pnj176tChQxo7dmyOUXgAKO4YyQaAu6RGjRpauHChunfvrvr166tfv36qWrWqoqKi9OWXX+rixYv63//+l+Oe0MLy3nvv6cknn1RAQID69etneYSX2Wy2eqb1pEmT9OOPP+qRRx7RkCFDLOG1bt26OabHv/zyy5o2bZpefvllNW3aVD/99JOOHj2a49zvvvuuNmzYoNatW1seuxQTE6Ply5dr+/btKlWqlBo1aiQ7OztNnz5dCQkJcnR0tDwD+noDBgzQZ599pj59+igyMlJ+fn5asWKFZQTNVvfAZ+vatasmTpwoJycn9evXz2r0/PLly6pUqZKeffZZNWzYUG5ubtq0aZN27dplNep4Iw4ODmrWrJl+/vlnOTo6qkmTJlbtLVu2tBzn2pD9xBNPyMHBQR07dtTAgQN15coVzZ8/X+XKlctx33OTJk00d+5cTZ48Wf7+/ipXrpwee+wxjR07Vt9//706dOigPn36qEmTJkpKStL+/fu1YsUKRUVFydPT804+OivZo9m5PXt82rRp2rp1q1q0aKH+/furTp06iouL0+7du7Vp0ybFxcVJuhrmli1bpkGDBmnr1q0KDAxUZmam/vjjDy1btkzr169X06ZN1ahRI73wwgv69NNPlZCQoJYtW2rz5s36888/81VzmTJl9PDDD6tv3746f/68Zs+eLX9/f/Xv39+qn729vbp166aPP/5YdnZ2Vovy5UXr1q1VqVIlfffdd3J2dtYzzzxj1d6hQweFhobKbDarTp06ioiI0KZNm3I8vi8/PDw8NHfuXPXs2VONGzdWt27d5OXlpejoaK1du1aBgYH6+OOPJcnyczlixAgFBQXlCNLBwcEqW7asli9frieffDLXP7cAUGwV3sLmAHB/2rdvn/HCCy8YPj4+hr29veHt7W288MILxv79+3P0vdNHeGU/EulGsh+19N577+XavmnTJiMwMNBwdnY2PDw8jI4dOxqHDh3K0S8sLMxo0qSJ4eDgYFSrVs2YN2+e8eabb+Z4hE9ycrLRr18/w2w2G+7u7sbzzz9vxMbG5vqIpJMnTxq9evUyvLy8DEdHR6NatWrG0KFDjdTUVEuf+fPnG9WqVbM8Liz78Ue5fUbnz583+vbta3h6ehoODg5G/fr1czxO7GafR2413sixY8cMSYYkY/v27VZtqampxtixY42GDRsa7u7uhqurq9GwYUPj008/zdOxDePqo8IkGS1btszRlv0oKHd39xyPZPr++++NBg0aGE5OToafn58xffp047///W+On7Fz584ZwcHBhru7uyHJ6rO8fPmyMWHCBMPf399wcHAwPD09jZYtWxrvv/++kZaWZhjGrX+ucnOjn9djx45Zvr/XPsLLMK5+T4cOHWr4+vpa/iy1bdvW+Pzzz636paWlGdOnTzfq1q1rODo6GqVLlzaaNGliTJo0yUhISLD0S0lJMUaMGGGULVvWcHV1NTp27GicOnUqX4/w+t///mdMmDDBKFeunOHs7GwEBwdbPd7uWr/++qshyXjiiSfy+ClZGzt2rCHJeP7553O0/f3335afdzc3NyMoKMj4448/jCpVqhi9e/e29Mv+Oya3x+Xl9vdP9rUGBQUZZrPZcHJyMqpXr2706dPH+O233yx9MjIyjOHDhxteXl6GyWTK9XFeQ4YMMSQZS5Ysua3rB4CiymQYeVjFBQAAADa1d+9eNWrUSF999dV9ubL26NGj9eWXX+rcuXNycXEp7HIAwGa4JxsAAKAQzJ8/X25ubjmmet8P/vnnHy1atEhdunQhYAO453BPNgAAwF20evVqHTp0SJ9//rmGDRtmWSTsfhAbG6tNmzZpxYoVunTpkkaOHFnYJQGAzTFdHAAA4C7y8/PT+fPnFRQUpNDQUJsvvFeUbdu2TY8++qjKlSunN954Q8OGDSvskgDA5gjZAAAAAADYCPdkAwAAAABgI4RsAAAAAABshIXP8iArK0tnz56Vu7u7TCZTYZcDAAAAALiGYRi6fPmyKlSooBIlCncsmZCdB2fPnpWvr29hlwEAAAAAuIlTp06pUqVKhVoDITsPslf9PHXqlDw8PAq5GgAAAADAtRITE+Xr61sknthAyM6D7CniHh4ehGwAAAAAKKKKwu29LHwGAAAAAICNELIBAAAAALARQjYAFEGGYWjAgAEqU6aMTCaT9uzZU9gl5dCnTx917ty5sMsAAAAoUrgnGwCKoB9//FEhISHatm2bqlWrJk9PzwI7V58+fRQfH69vv/02X/vNmTNHhmEUTFEAAADFFCEbAIqg48ePy8fHRy1btsy1PS0tTQ4ODne5Kmtms7lQzw8AAFAUMV0cAIqYPn36aPjw4YqOjpbJZJKfn5/atGmjYcOGadSoUfL09FRQUJAkadasWapfv75cXV3l6+urIUOG6MqVK5ZjhYSEqFSpUlq/fr1q164tNzc3/etf/1JMTIwk6a233tLChQv13XffyWQyyWQyadu2bZKk/fv367HHHpOzs7PKli2rAQMGWB37+uniqampGjFihMqVKycnJyc9/PDD2rVrV8F/YAAAAEUIIRsAipg5c+bo7bffVqVKlRQTE2MJqgsXLpSDg4PCw8M1b948SVKJEiX04Ycf6uDBg1q4cKG2bNmicePGWR0vOTlZ77//vkJDQ/XTTz8pOjpaY8aMkSSNGTNGzz//vCV4x8TEqGXLlkpKSlJQUJBKly6tXbt2afny5dq0aZOGDRt2w7rHjRunlStXauHChdq9e7f8/f0VFBSkuLi4AvqkAAAAih6miwNAEWM2m+Xu7i47Ozt5e3tbtteoUUMzZsyw6jtq1CjL135+fpo8ebIGDRqkTz/91LI9PT1d8+bNU/Xq1SVJw4YN09tvvy1JcnNzk7Ozs1JTU63OtXDhQv3zzz/66quv5OrqKkn6+OOP1bFjR02fPl3ly5e3qiMpKUlz585VSEiInnzySUnS/PnztXHjRn355ZcaO3asDT4ZAACAoo+RbAAoJpo0aZJj26ZNm9S2bVtVrFhR7u7u6tmzpy5duqTk5GRLHxcXF0vAliQfHx/Fxsbe9FyHDx9Ww4YNLQFbkgIDA5WVlaUjR47k6H/8+HGlp6crMDDQss3e3l7NmzfX4cOH83WdAAAAxRkhGwCKiWsDryRFRUWpQ4cOatCggVauXKnIyEh98sknkq4ujJbN3t7eaj+TycSq4AAAAAWEkA0AxVRkZKSysrI0c+ZMPfTQQ6pZs6bOnj2b7+M4ODgoMzPTalvt2rW1d+9eJSUlWbaFh4erRIkSqlWrVo5jVK9e3XK/eLb09HTt2rVLderUyXdNAAAAxRUhGwCKKX9/f6Wnp+ujjz7SiRMnFBoaalkQLT/8/Py0b98+HTlyRBcvXlR6erq6d+8uJycn9e7dWwcOHNDWrVs1fPhw9ezZM8f92NLVUfbBgwdr7Nix+vHHH3Xo0CH1799fycnJ6tevny0uFwAAoFggZAPAXWQYhuKS0nQqLllxSWl3NG27YcOGmjVrlqZPn6569epp8eLFmjp1ar6P079/f9WqVUtNmzaVl5eXwsPD5eLiovXr1ysuLk7NmjXTs88+q7Zt2+rjjz++4XGmTZumLl26qGfPnmrcuLH+/PNPrV+/XqVLl77tawQAAChuTAY35t1SYmKizGazEhIS5OHhUdjlACiGElLStTLytBbuiNLJuP+/KFmVMi7q3dJPXZpUktnZ/iZHAAAAwI0UpcxGyM6DovQNA1D8hB29oMGLIpWSdvW+52v/0jX933+dHew0t0cTta7pddfrAwAAKO6KUmZjujgAFKCwoxfUd8GvSknPlCHrgK3/e29ISknPVN8Fvyrs6IW7XyQAAABshpANAAUkISVdgxdFXg3St5gzZBhXw/bgRZFKSEm/G+UBAACgABCyAaCArIw8rZS0zFsG7GyGIaWkZWrV7tMFWxgAAAAKDCEbAAqAYRhauCPqtvYNCY+6o1XHAQAAUHgI2QBQAP5OTtfJuOQc92DfiiHpZFyy4pOZMg4AAFAcEbIBoAAkpWbc0f5X7nB/AAAAFA5CNgAUAFfHkne0v9sd7g8AAIDCQcgGgAJQ2sVeVcq4WJ6DnVcmSVXKuKiUi31BlAUAAIACRsgGgAJgMpnUu6Xfbe3bJ9BPJlN+4zkAAACKAkI2ABSQLk0qydnBTnnNyyVMkrODnZ5pXKlgCwMAAECBIWQDQAExO9trbo8mMkm3DNrZ7fN6NJHZmaniAAAAxRUhGwAKUOuaXlrQt7mc7e2uhu3r2rO3OdvbKaRvc7Wq6XX3iwQAAIDNsHwtABSw1jW9FDGhrVbtPq2Q8CidjEu2tFUu46I+gX7q0qSSPJwYwQYAACjuTIZhGIVdRFGXmJgos9mshIQEeXh4FHY5AIoxwzAUn5yuK6kZcnMsqVIu9ixyBgAAcIeKUmZjJBsA7iKTyaTSrg4q7epQ2KUAAACgAHBPNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjRSZkT5s2TSaTSaNGjbJsa9OmjUwmk9Vr0KBBVvtFR0crODhYLi4uKleunMaOHauMjAyrPtu2bVPjxo3l6Ogof39/hYSE3IUrAgAAAADcb0oWdgGStGvXLn322Wdq0KBBjrb+/fvr7bfftrx3cXGxfJ2Zmang4GB5e3trx44diomJUa9evWRvb693331XkvTXX38pODhYgwYN0uLFi7V582a9/PLL8vHxUVBQUMFfHAAAAADgvlHoI9lXrlxR9+7dNX/+fJUuXTpHu4uLi7y9vS0vDw8PS9uGDRt06NAhLVq0SI0aNdKTTz6pd955R5988onS0tIkSfPmzVPVqlU1c+ZM1a5dW8OGDdOzzz6rDz744K5dIwAAAADg/lDoIXvo0KEKDg5Wu3btcm1fvHixPD09Va9ePU2YMEHJycmWtoiICNWvX1/ly5e3bAsKClJiYqIOHjxo6XP9sYOCghQREVEAVwMAAAAAuJ8V6nTxpUuXavfu3dq1a1eu7S+++KKqVKmiChUqaN++fRo/fryOHDmiVatWSZLOnTtnFbAlWd6fO3fupn0SExOVkpIiZ2fnHOdNTU1Vamqq5X1iYuLtXyQAAAAA4L5RaCH71KlTGjlypDZu3CgnJ6dc+wwYMMDydf369eXj46O2bdvq+PHjql69eoHVNnXqVE2aNKnAjg8AAAAAuDcV2nTxyMhIxcbGqnHjxipZsqRKliypsLAwffjhhypZsqQyMzNz7NOiRQtJ0p9//ilJ8vb21vnz5636ZL/39va+aR8PD49cR7ElacKECUpISLC8Tp06dWcXCwAAAAC4LxTaSHbbtm21f/9+q219+/bVAw88oPHjx8vOzi7HPnv27JEk+fj4SJICAgI0ZcoUxcbGqly5cpKkjRs3ysPDQ3Xq1LH0WbdundVxNm7cqICAgBvW5ujoKEdHx9u+NgAAAADA/anQQra7u7vq1atntc3V1VVly5ZVvXr1dPz4cS1ZskTt27dX2bJltW/fPo0ePVqtWrWyPOrriSeeUJ06ddSzZ0/NmDFD586d0+uvv66hQ4daQvKgQYP08ccfa9y4cXrppZe0ZcsWLVu2TGvXrr3r1wwAAAAAuLcV+uriN+Lg4KBNmzbpiSee0AMPPKBXX31VXbp00erVqy197OzstGbNGtnZ2SkgIEA9evRQr169rJ6rXbVqVa1du1YbN25Uw4YNNXPmTH3xxRc8IxsAAAAAYHMmwzCMwi6iqEtMTJTZbFZCQoLVc7oBAAAAAIWvKGW2IjuSDQAAAABAcUPIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADcc9q0aaNRo0bd9fOWvOtnBAAAAADARrZt26ZHH300x/ZVq1bJ3t7+rtdDyAYAAAAAFDlpaWlycHC47f3LlCljw2ryjuniAAAAAACbyMrK0owZM+Tv7y9HR0dVrlxZU6ZMkSTt379fjz32mJydnVW2bFkNGDBAV65csezbp08fde7cWVOmTFGFChVUq1YtSVJoaKiaNm0qd3d3eXt768UXX1RsbKwkKSoqymoU22w2q0+fPpJyThf38/PTu+++q5deeknu7u6qXLmyPv/8c6v6x48fr5o1a8rFxUXVqlXTG2+8ofT09Hx9BoRsAAAAAIBNTJgwQdOmTdMbb7yhQ4cOacmSJSpfvrySkpIUFBSk0qVLa9euXVq+fLk2bdqkYcOGWe2/efNmHTlyRBs3btSaNWskSenp6XrnnXe0d+9effvtt4qKirIEaV9fX61cudKy/9GjRzVnzpwb1jdz5kw1bdpUv//+u4YMGaLBgwfryJEjlnZ3d3eFhITo0KFDmjNnjubPn68PPvggX5+ByTAMI1973IcSExNlNpuVkJAgDw+Pwi4HAAAAAIqcy5cvy8vLSx9//LFefvllq7b58+dr/PjxOnXqlFxdXSVJ69atU8eOHXX27FmVL19effr00Y8//qjo6OibThP/7bff1KxZM12+fFlubm5W92Rfm9natGmjRo0aafbs2ZKujmQ/8sgjCg0NlSQZhiFvb29NmjRJgwYNyvVc77//vpYuXarffvstz58DI9kAAAAAgDt2+PBhpaamqm3btrm2NWzY0BKwJSkwMFBZWVlWI8n169fPEbAjIyPVsWNHVa5cWe7u7mrdurUkKTo6Ot81NmjQwPK1yWSSt7e3Zeq5JH399dcKDAyUt7e33Nzc9Prrr+f7PIRsAAAAAMAdc3Z2vuNjXBvCJVmmmXt4eGjx4sXatWuXvvnmG0lXF0bLr+tXGzeZTMrKypIkRUREqHv37mrfvr3WrFmj33//Xf/5z3/yfR5CNgAAAADgjtWoUUPOzs7avHlzjrbatWtr7969SkpKsmwLDw9XiRIlLAuc5eaPP/7QpUuXNG3aND3yyCN64IEHrEaeJd3RCuTX2rFjh6pUqaL//Oc/atq0qWrUqKGTJ0/m+ziEbAAAAADAHXNyctL48eM1btw4ffXVVzp+/Lh++eUXffnll+revbucnJzUu3dvHThwQFu3btXw4cPVs2dPlS9f/obHrFy5shwcHPTRRx/pxIkT+v777/XOO+9Y9alSpYpMJpMk6eLFi1YrludHjRo1FB0draVLl+r48eP68MMPLaPm+UHIBgAAAADckGEYiktK06m4ZMUlpelma2e/8cYbevXVVzVx4kTVrl1bXbt2VWxsrFxcXLR+/XrFxcWpWbNmevbZZ9W2bVt9/PHHNz23l5eXQkJCtHz5ctWpU0fTpk3T+++/b9WnYsWKeu211yRJ/v7+OVYsz6tOnTpp9OjRGjZsmBo1aqQdO3bojTfeyPdxWF08D1hdHAAAAMD9JiElXSsjT2vhjiidjEu2bK9SxkW9W/qpS5NKMjvb3+QId09RymyE7DwoSt8wAAAAAChoYUcvaPCiSKWkZUqSrg2Npv/7r7ODneb2aKLWNb3uen3XK0qZjeniAAAAAACLsKMX1HfBr0pJz5Qh64Ct/3tvSEpJz1TfBb8q7OiFu19kEVYyvzukpqZq586dOnnypJKTk+Xl5aUHH3xQVatWLYj6AAAAAAB3SUJKugYvirwapG8x59kwJJmkwYsiFTGhbZGZOl7Y8hyyw8PDNWfOHK1evVrp6ekym81ydnZWXFycUlNTVa1aNQ0YMECDBg2Su7t7QdYMAAAAACgAKyNPKyUtM8fo9Y0YhpSSlqlVu0+rbyADr1Iep4t36tRJXbt2lZ+fnzZs2KDLly/r0qVLOn36tJKTk3Xs2DG9/vrr2rx5s2rWrKmNGzcWdN0AAAAAABsyDEMLd0Td1r4h4VE3XXX8fpKnkezg4GCtXLlS9va5D/9Xq1ZN1apVU+/evXXo0CHFxMTYtEgAAAAAQMH6OzndahXxvDIknYxLVnxyukq7Oti+sGImTyF74MCBeT5gnTp1VKdOndsuCAAAAABw9yWlZtzR/ldSMwjZYnVxAAAAAIAkV8d8r4ttxe0O979X5DtkZ2Zm6v3331fz5s3l7e2tMmXKWL0AAAAAAMVPaRd7VSnjYnkOdl6ZJFUp46JSLqwuLt1GyJ40aZJmzZqlrl27KiEhQa+88oqeeeYZlShRQm+99VYBlAgAAAAAKGgmk0m9W/rd1r59Av1kMuU3nt+b8h2yFy9erPnz5+vVV19VyZIl9cILL+iLL77QxIkT9csvvxREjQAAAACAu6BLk0pydrBTXvNyCZPk7GCnZxpXKtjCipF8h+xz586pfv36kiQ3NzclJCRIkjp06KC1a9fatjoAAAAAwF1jdrbX3B5NZJJuGbSz2+f1aCKzM1PFs+U7ZFeqVMnyiK7q1atrw4YNkqRdu3bJ0dHRttUBAAAAAO6q1jW9tKBvcznb210N29e1Z29ztrdTSN/malXT6+4XWYTle/m3p59+Wps3b1aLFi00fPhw9ejRQ19++aWio6M1evTogqgRAAAAAHAXta7ppYgJbbVq92mFhEdZPT+7chkX9Qn0U5cmleThxAj29UyGYRh3coCIiAhFRESoRo0a6tixo63qKlISExNlNpuVkJAgDw+Pwi4HAAAAAO4awzAUn5yuK6kZcnMsqVIu9kVukbOilNnuOGTfD4rSNwwAAAAAYK0oZbbbelr4sWPHtHXrVsXGxiorK8uqbeLEiTYpDAAAAACA4ibfIXv+/PkaPHiwPD095e3tbTVNwGQyEbIBAAAAAPetfIfsyZMna8qUKRo/fnxB1AMAAAAAQLGV70d4/f3333ruuedsXsi0adNkMpk0atQoy7Z//vlHQ4cOVdmyZeXm5qYuXbro/PnzVvtFR0crODhYLi4uKleunMaOHauMjAyrPtu2bVPjxo3l6Ogof39/hYSE2Lx+AAAAAADyHbKfe+45y7OxbWXXrl367LPP1KBBA6vto0eP1urVq7V8+XKFhYXp7NmzeuaZZyztmZmZCg4OVlpamnbs2KGFCxcqJCTEasr6X3/9peDgYD366KPas2ePRo0apZdfflnr16+36TUAAAAAAJCn1cU//PBDy9dJSUmaNWuWgoODVb9+fdnbWz8XbcSIEfkq4MqVK2rcuLE+/fRTTZ48WY0aNdLs2bOVkJAgLy8vLVmyRM8++6wk6Y8//lDt2rUVERGhhx56SD/88IM6dOigs2fPqnz58pKkefPmafz48bpw4YIcHBw0fvx4rV27VgcOHLCcs1u3boqPj9ePP/6YpxqL0kp1AAAAAABrRSmz5eme7A8++MDqvZubm8LCwhQWFma13WQy5TtkDx06VMHBwWrXrp0mT55s2R4ZGan09HS1a9fOsu2BBx5Q5cqVLSE7IiJC9evXtwRsSQoKCtLgwYN18OBBPfjgg4qIiLA6Rnafa6elAwAAAABgC3kK2X/99VeBnHzp0qXavXu3du3alaPt3LlzcnBwUKlSpay2ly9fXufOnbP0uTZgZ7dnt92sT2JiolJSUuTs7Jzj3KmpqUpNTbW8T0xMzP/FAQAAAADuO3m+J7tVq1aaOXOmjh07ZpMTnzp1SiNHjtTixYvl5ORkk2PaytSpU2U2my0vX1/fwi4JAAAAAFAM5Dlk9+vXTzt27FDjxo1Vu3ZtjR8/XuHh4crDLd25ioyMVGxsrBo3bqySJUuqZMmSCgsL04cffqiSJUuqfPnySktLU3x8vNV+58+fl7e3tyTJ29s7x2rj2e9v1cfDwyPXUWxJmjBhghISEiyvU6dO3dY1AgAAAADuL3kO2b1799bKlSt18eJFzZw5U/Hx8Xruuefk7e2tl156Sd9++61SUlLyfOK2bdtq//792rNnj+XVtGlTde/e3fK1vb29Nm/ebNnnyJEjio6OVkBAgCQpICBA+/fvV2xsrKXPxo0b5eHhoTp16lj6XHuM7D7Zx8iNo6OjPDw8rF4AAAAAANxKnlYXv5mdO3fq+++/1/fff6/jx4/rscce04QJExQYGJjvY7Vp08ayurgkDR48WOvWrVNISIg8PDw0fPhwSdKOHTskXX2EV6NGjVShQgXNmDFD586dU8+ePfXyyy/r3XfflXT1fvJ69epp6NCheumll7RlyxaNGDFCa9euVVBQUJ7qKkor1QEAAAAArBWlzJanhc9upkWLFmrRooUmTZqkHTt2KDIyUjExMbaoTR988IFKlCihLl26KDU1VUFBQfr0008t7XZ2dlqzZo0GDx6sgIAAubq6qnfv3nr77bctfapWraq1a9dq9OjRmjNnjipVqqQvvvgizwEbAAAAAIC8uuOR7Gx79+5V48aNlZmZaYvDFSlF6bciAAAAAABrRSmz5fmebAAAAAAAcHOEbAAAAAAAbISQDQAAAACAjeR54bN9+/bdtP3IkSN3XAwAAAAAAMVZnkN2o0aNZDKZlNs6adnbTSaTTYsDAAAAAKA4yXPI/uuvvwqyDgAAAAAAir08h+wqVaoUZB0AAAAAABR7eVr4LDo6Ol8HPXPmzG0VAwAAAABAcZankN2sWTMNHDhQu3btumGfhIQEzZ8/X/Xq1dPKlSttViAAAAAAAMVFnqaLHzp0SFOmTNHjjz8uJycnNWnSRBUqVJCTk5P+/vtvHTp0SAcPHlTjxo01Y8YMtW/fvqDrBgAAAACgyDEZuS0XfgMpKSlau3attm/frpMnTyolJUWenp568MEHFRQUpHr16hVkrYUmMTFRZrNZCQkJ8vDwKOxyAAAAAADXKEqZLV8h+35VlL5hAAAAAABrRSmz5emebAAAAAAAcGuEbAAAAAAAbISQDQAAAACAjRCyAQAAAACwEUI2AAAAAAA2kqfnZF/v2LFj2rp1q2JjY5WVlWXVNnHiRJsUBgAAAABAcZPvkD1//nwNHjxYnp6e8vb2lslksrSZTCZCNgAAAADgvpXvkD158mRNmTJF48ePL4h6AAAAAAAotvJ9T/bff/+t5557riBqAQAAAACgWMt3yH7uuee0YcOGgqgFAAAAAIBiLd/Txf39/fXGG2/ol19+Uf369WVvb2/VPmLECJsVBwAAAABAcWIyDMPIzw5Vq1a98cFMJp04ceKOiypqEhMTZTablZCQIA8Pj8IuBwAAAABwjaKU2fI9kv3XX38VRB0AAAAAABR7+b4n+1qGYSifA+EAAAAAANyzbitkf/XVV6pfv76cnZ3l7OysBg0aKDQ01Na1AQAAAABQrOR7uvisWbP0xhtvaNiwYQoMDJQkbd++XYMGDdLFixc1evRomxcJAAAAAEBxcFsLn02aNEm9evWy2r5w4UK99dZb9+Q920XpJnoAAAAAgLWilNnyPV08JiZGLVu2zLG9ZcuWiomJsUlRAAAAAAAUR/kO2f7+/lq2bFmO7V9//bVq1Khhk6IAAAAAACiO8n1P9qRJk9S1a1f99NNPlnuyw8PDtXnz5lzDNwAAAAAA94t8j2R36dJFO3fulKenp7799lt9++238vT01K+//qqnn366IGoEAAAAAKBYyPfCZ/ejonQTPQAAAADAWlHKbHmaLp6YmGgpNDEx8aZ9C/uCAAAAAAAoLHkK2aVLl1ZMTIzKlSunUqVKyWQy5ehjGIZMJpMyMzNtXiQAAAAAAMVBnkL2li1bVKZMGUnS1q1bC7QgAAAAAACKqzyF7NatW1u+rlq1qnx9fXOMZhuGoVOnTtm2OgAAAAAAipF8ry5etWpVXbhwIcf2uLg4Va1a1SZFAQAAAABQHOU7ZGffe329K1euyMnJySZFAQAAAABQHOVpurgkvfLKK5Ikk8mkN954Qy4uLpa2zMxM7dy5U40aNbJ5gQAAAAAAFBd5Dtm///67pKsj2fv375eDg4OlzcHBQQ0bNtSYMWNsXyEAAAAAAMVEnkN29qriffv21Zw5c3geNgAAAAAA18n3PdmzZ89WRkZGju1xcXFKTEy0SVEAAAAAABRH+Q7Z3bp109KlS3NsX7Zsmbp162aTogAAAAAAKI7yHbJ37typRx99NMf2Nm3aaOfOnTYpCgAAAACA4ijfITs1NTXX6eLp6elKSUmxSVEAAAAAABRH+Q7ZzZs31+eff55j+7x589SkSRObFAUAAAAAQHGU59XFs02ePFnt2rXT3r171bZtW0nS5s2btWvXLm3YsMHmBQIAAAAAUFzkeyQ7MDBQERER8vX11bJly7R69Wr5+/tr3759euSRRwqiRgAAAAAAigWTYRhGYRdR1CUmJspsNishIYHngwMAAABAEVOUMlu+p4tHR0fftL1y5cq3XQwAAAAAAMVZvkO2n5+fTCbTDdszMzPvqCAAAAAAAIqrfIfs33//3ep9enq6fv/9d82aNUtTpkyxWWEAAAAAABQ3+Q7ZDRs2zLGtadOmqlChgt577z0988wzNikMAAAAAIDiJt+ri99IrVq1tGvXLlsdDgAAAACAYiffI9mJiYlW7w3DUExMjN566y3VqFHDZoUBAAAAAFDc5DtklypVKsfCZ4ZhyNfXV0uXLrVZYQAAAAAAFDf5Dtlbt261el+iRAl5eXnJ399fJUvm+3AAAAAAANwz8p2KW7duXRB1AAAAAABQ7OUpZH///fd5PmCnTp1uuxgAAAAAAIqzPIXszp07W703mUwyDMPqfbbMzEzbVAYAAAAAQDGTp0d4ZWVlWV4bNmxQo0aN9MMPPyg+Pl7x8fFat26dGjdurB9//LGg6wUAAAAAoMjK9z3Zo0aN0rx58/Twww9btgUFBcnFxUUDBgzQ4cOHbVogAAAAAADFRZ5Gsq91/PhxlSpVKsd2s9msqKgoG5QEAAAAAEDxlO+Q3axZM73yyis6f/68Zdv58+c1duxYNW/e3KbFAQAAAABQnOQ7ZP/3v/9VTEyMKleuLH9/f/n7+6ty5co6c+aMvvzyy4KoEQAAAACAYiHf92T7+/tr37592rhxo/744w9JUu3atdWuXTurVcYBAAAAALjfmIxrn8WFXCUmJspsNishIUEeHh6FXQ4AAAAA4BpFKbPle7q4JIWFhaljx46W6eKdOnXSzz//bOvaAAAAAAAoVvIdshctWqR27drJxcVFI0aM0IgRI+Tk5KS2bdtqyZIlBVEjAAAAAADFQr6ni9euXVsDBgzQ6NGjrbbPmjVL8+fPvyefk12Uph4AAAAAAKwVpcyW75HsEydOqGPHjjm2d+rUSX/99ZdNigIAAAAAoDjKd8j29fXV5s2bc2zftGmTfH19bVIUAAAAAADFUb4f4fXqq69qxIgR2rNnj1q2bClJCg8PV0hIiObMmWPzAgEAAAAAKC7yHbIHDx4sb29vzZw5U8uWLZN09T7tr7/+Wk899ZTNCwQAAAAAoLjIV8jOyMjQu+++q5deeknbt28vqJoAAAAAACiW8nVPdsmSJTVjxgxlZGQUVD0AAAAAABRb+V74rG3btgoLCyuIWgAAAAAAKNbyfU/2k08+qX//+9/av3+/mjRpIldXV6v2Tp062aw4AAAAAACKk3yPZA8ZMkTnz5/XrFmz1L17d3Xu3Nnyevrpp/N1rLlz56pBgwby8PCQh4eHAgIC9MMPP1ja27RpI5PJZPUaNGiQ1TGio6MVHBwsFxcXlStXTmPHjs0xnX3btm1q3LixHB0d5e/vr5CQkPxeNgAAAAAAt5TvkeysrCybnbxSpUqaNm2aatSoIcMwtHDhQj311FP6/fffVbduXUlS//799fbbb1v2cXFxsXydmZmp4OBgeXt7a8eOHYqJiVGvXr1kb2+vd999V5L0119/KTg4WIMGDdLixYu1efNmvfzyy/Lx8VFQUJDNrgUAAAAAAJNhGEZeO0dFRWnjxo1KT09X69atLUHYlsqUKaP33ntP/fr1U5s2bdSoUSPNnj07174//PCDOnTooLNnz6p8+fKSpHnz5mn8+PG6cOGCHBwcNH78eK1du1YHDhyw7NetWzfFx8frxx9/zFNNiYmJMpvNSkhIkIeHxx1fIwAAAADAdopSZsvzdPGtW7eqbt26GjhwoIYNG6YHH3xQixYtslkhmZmZWrp0qZKSkhQQEGDZvnjxYnl6eqpevXqaMGGCkpOTLW0RERGqX7++JWBLUlBQkBITE3Xw4EFLn3bt2lmdKygoSBERETesJTU1VYmJiVYvAAAAAABuJc8h+4033tDjjz+uM2fO6NKlS+rfv7/GjRt3xwXs379fbm5ucnR01KBBg/TNN9+oTp06kqQXX3xRixYt0tatWzVhwgSFhoaqR48eln3PnTtnFbAlWd6fO3fupn0SExOVkpKSa01Tp06V2Wy2vHx9fe/4OgEAAAAA974835N94MAB7dixQz4+PpKk9957T5999pkuXbqksmXL3nYBtWrV0p49e5SQkKAVK1aod+/eCgsLU506dTRgwABLv/r168vHx0dt27bV8ePHVb169ds+561MmDBBr7zyiuV9YmIiQRsAAAAAcEt5HslOTEyUp6en5b2Li4ucnZ2VkJBwRwU4ODjI399fTZo00dSpU9WwYUPNmTMn174tWrSQJP3555+SJG9vb50/f96qT/Z7b2/vm/bx8PCQs7NzrudxdHS0rHie/QIAAAAA4Fbytbr4+vXrZTabLe+zsrK0efNmq0XF7vQ52VlZWUpNTc21bc+ePZJkGU0PCAjQlClTFBsbq3LlykmSNm7cKA8PD8uU84CAAK1bt87qOBs3brS67xsAAAAAAFvI8+riJUrcetDbZDIpMzMzzyefMGGCnnzySVWuXFmXL1/WkiVLNH36dK1fv17VqlXTkiVL1L59e5UtW1b79u3T6NGjValSJYWFhUm6ulhao0aNVKFCBc2YMUPnzp1Tz5499fLLL1s9wqtevXoaOnSoXnrpJW3ZskUjRozQ2rVr8/wIr6K0Uh0AAAAAwFpRymx5Hsm25fOxs8XGxqpXr16KiYmR2WxWgwYNtH79ej3++OM6deqUNm3apNmzZyspKUm+vr7q0qWLXn/9dcv+dnZ2WrNmjQYPHqyAgAC5urqqd+/eVs/Vrlq1qtauXavRo0drzpw5qlSpkr744guekQ0AAAAAsLl8PSf7flWUfisCAAAAALBWlDJbnhc+AwAAAAAAN0fIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjeXqEV+nSpWUymfJ0wLi4uDsqCAAAAACA4ipPIXv27NkFXAYAAAAAAMVfnkJ27969C7oOAAAAAACKvTyF7MTERMsDvRMTE2/at7Af/A0AAAAAQGHJ8z3ZMTExKleunEqVKpXr/dmGYchkMikzM9PmRQIAAAAAUBzkKWRv2bJFZcqUkSRt3bq1QAsCAAAAAKC4MhmGYRR2EUVdYmKizGazEhISmA4PAAAAAEVMUcpseRrJvtauXbv0v//9T0ePHpUk1apVSy+88IKaNm1q8+IAAAAAAChOSuSn87hx49SiRQt98cUXOn36tE6fPq3PP/9cLVq00Pjx4wuqRgAAAAAAioU8h+yFCxfqo48+0ocffqhLly5pz5492rNnj+Li4vTBBx/oww8/1FdffVWQtQIAAAAAUKTl+Z7s5s2b64UXXtDo0aNzbZ81a5aWLl2qX3/91aYFFgVFaX4/AAAAAMBaUcpseR7JPnjwoJ566qkbtnfu3FkHDx60SVEAAAAAABRHeQ7ZdnZ2SktLu2F7enq67OzsbFIUAAAAAADFUZ5DduPGjbV48eIbtoeGhqpx48Y2KQoAAAAAgOIoz4/wGjNmjDp37qzU1FS9+uqrKl++vCTp3LlzmjlzpmbPnq1vvvmmwAoFAAAAAKCoy/PCZ5L00UcfacyYMcrIyJDZbJYkJSQkqGTJkpoxY4ZGjhxZYIUWpqJ0Ez0AAAAAwFpRymz5CtmSdPr0aS1fvlzHjh2TJNWsWVNdunSRr69vgRRYFBSlbxgAAAAAwFpRymz5Dtn3o6L0DQMAAAAAWCtKmS3PC58BAAAAAICbI2QDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI3cVsiOj4/XF198oQkTJiguLk6StHv3bp05c8amxQEAAAAAUJyUzO8O+/btU7t27WQ2mxUVFaX+/furTJkyWrVqlaKjo/XVV18VRJ0AAAAAABR5+R7JfuWVV9SnTx8dO3ZMTk5Olu3t27fXTz/9ZNPiAAAAAAAoTvIdsnft2qWBAwfm2F6xYkWdO3fOJkUBAAAAAFAc5TtkOzo6KjExMcf2o0ePysvLyyZFAQAAAABQHOU7ZHfq1Elvv/220tPTJUkmk0nR0dEaP368unTpYvMCAQAAAAAoLvIdsmfOnKkrV66oXLlySklJUevWreXv7y93d3dNmTKlIGoEAAAAAKBYyPfq4mazWRs3btT27du1b98+XblyRY0bN1a7du0Koj4AAAAAAIoNk2EYRmEXUdQlJibKbDYrISFBHh4ehV0OAAAAAOAaRSmz5Xsk+8MPP8x1u8lkkpOTk/z9/dWqVSvZ2dndcXEAAAAAABQn+Q7ZH3zwgS5cuKDk5GSVLl1akvT333/LxcVFbm5uio2NVbVq1bR161b5+vravGAAAAAAAIqqfC989u6776pZs2Y6duyYLl26pEuXLuno0aNq0aKF5syZo+joaHl7e2v06NEFUS8AAAAAAEVWvu/Jrl69ulauXKlGjRpZbf/999/VpUsXnThxQjt27FCXLl0UExNjy1oLTVGa3w8AAAAAsFaUMlu+R7JjYmKUkZGRY3tGRobOnTsnSapQoYIuX75859UBAAAAAFCM5DtkP/rooxo4cKB+//13y7bff/9dgwcP1mOPPSZJ2r9/v6pWrWq7KnHH2rRpo1GjRhX4eaKiomQymbRnz54CPxcAAAAAFDX5DtlffvmlypQpoyZNmsjR0VGOjo5q2rSpypQpoy+//FKS5ObmppkzZ9q8WBR9vr6+iomJUb169Qq7FAAAAAC46/K9uri3t7c2btyoP/74Q0ePHpUk1apVS7Vq1bL0efTRR21XIYoVOzs7eXt7F3YZAAAAAFAo8j2Sne2BBx5Qp06d1KlTJ6uAjaIvNTVVY8aMUcWKFeXq6qoWLVpo27ZtVn3Cw8PVpk0bubi4qHTp0goKCtLff/8tScrKytKMGTPk7+8vR0dHVa5cWVOmTJGUc7r4tm3bZDKZtHnzZjVt2lQuLi5q2bKljhw5YnW+uXPnqnr16nJwcFCtWrUUGhpa4J8DAAAAANhavkeyJen06dP6/vvvFR0drbS0NKu2WbNm2aQwFJxhw4bp0KFDWrp0qSpUqKBvvvlG//rXv7R//37VqFFDe/bsUdu2bfXSSy9pzpw5KlmypLZu3arMzExJ0oQJEzR//nx98MEHevjhhxUTE6M//vjjpuf8z3/+o5kzZ8rLy0uDBg3SSy+9pPDwcEnSN998o5EjR2r27Nlq166d1qxZo759+6pSpUrMigAAAABQrOT7EV6bN29Wp06dVK1aNf3xxx+qV6+eoqKiZBiGGjdurC1bthRUrYWmKC0Hf7vatGmjRo0a6ZVXXlG1atUUHR2tChUqWNrbtWun5s2b691339WLL76o6Ohobd++PcdxLl++LC8vL3388cd6+eWXc7RHRUWpatWq+v3339WoUSNt27ZNjz76qDZt2qS2bdtKktatW6fg4GClpKTIyclJgYGBqlu3rj7//HPLcZ5//nklJSVp7dq1BfBpAAAAALiXFKXMlu/p4hMmTNCYMWO0f/9+OTk5aeXKlTp16pRat26t5557riBqhA3t379fmZmZqlmzptzc3CyvsLAwHT9+XJIsI9m5OXz4sFJTU2/YfiMNGjSwfO3j4yNJio2NtRwzMDDQqn9gYKAOHz6cr3MAAAAAQGHL93Txw4cP63//+9/VnUuWVEpKitzc3PT222/rqaee0uDBg21eJGznypUrsrOzU2RkpOzs7Kza3NzcJEnOzs433P9mbTdjb29v+dpkMkm6em83AAAAANxL8j2S7erqarkP28fHxzL6KUkXL160XWUoEA8++KAyMzMVGxsrf39/q1f2quANGjTQ5s2bc92/Ro0acnZ2vmH77ahdu7bl/uxs4eHhqlOnjs3OAQAAAAB3Q75Hsh966CFt375dtWvXVvv27fXqq69q//79WrVqlR566KGCqBE2VLNmTXXv3l29evXSzJkz9eCDD+rChQvavHmzGjRooODgYE2YMEH169fXkCFDNGjQIDk4OGjr1q167rnn5OnpqfHjx2vcuHFycHBQYGCgLly4oIMHD6pfv363VdPYsWP1/PPP68EHH1S7du20evVqrVq1Sps2bbLx1QMAAABAwcp3yJ41a5auXLkiSZo0aZKuXLmir7/+WjVq1GBl8UJgGIb+Tk5XUmqGXB1LqrSLvWU69o0sWLBAkydP1quvvqozZ87I09NTDz30kDp06CDpahDfsGGDXnvtNTVv3lzOzs5q0aKFXnjhBUnSG2+8oZIlS2rixIk6e/asfHx8NGjQoNu+hs6dO2vOnDl6//33NXLkSFWtWlULFixQmzZtbvuYAAAAAFAY8rW6eGZmpsLDw9WgQQOVKlWqAMsqWorSSnXZElLStTLytBbuiNLJuGTL9iplXNS7pZ+6NKkks7P9TY4AAAAAAPeGopTZ8v0ILycnJx0+fFhVq1YtqJqKnKL0DZOksKMXNHhRpFLSrj63+tpvYPYYtrODneb2aKLWNb3uen0AAAAAcDcVpcyW74XP6tWrpxMnThRELciDsKMX1HfBr0pJz5Qh64Ct/3tvSEpJz1TfBb8q7OiFu18kAAAAANyn8h2yJ0+erDFjxmjNmjWKiYlRYmKi1QsFJyElXYMXRV4N0reYf2AYV8P24EWRSkhJvxvlAQAAAMB9L98Ln7Vv316S1KlTJ6sFtgzDkMlkUmZmpu2qg5WVkaeVkpaZY/T6RgxDSknL1Krdp9U38P6Z3g8AAAAAhSXfIXvr1q0FUQduwTAMLdwRdVv7hoRHqU9Lv1uuOg4AAAAAuDP5DtmtW7cuiDpwC38np1utIp5XhqSTccmKT05XaVcH2xcGAAAAALDI9z3ZkvTzzz+rR48eatmypc6cOSNJCg0N1fbt221aHP6/pNSMO9r/yh3uDwAAAAC4tXyH7JUrVyooKEjOzs7avXu3UlNTJUkJCQl69913bV4grnJ1zPekAytud7g/AAAAAODWbmt18Xnz5mn+/Pmyt7e3bA8MDNTu3bttWhz+v9Iu9qpSxkX5vavaJKlKGReVcrG/ZV8AAAAAwJ3Jd8g+cuSIWrVqlWO72WxWfHy8LWpCLkwmk3q39LutffsEsugZAAAAANwN+Q7Z3t7e+vPPP3Ns3759u6pVq2aTopC7Lk0qydnBTnnNyyVMkrODnZ5pXKlgCwMAAAAASLqNkN2/f3+NHDlSO3fulMlk0tmzZ7V48WKNGTNGgwcPLoga8X/Mzvaa26OJTNItg3Z2+7weTWR2Zqo4AAAAANwN+V4N69///reysrLUtm1bJScnq1WrVnJ0dNSYMWM0fPjwgqgR12hd00sL+jbX4EWRSknLlHT1MV3ZsrO3s72d5vVoolY1ve56jQAAAABwvzIZhmHcultOaWlp+vPPP3XlyhXVqVNHbm5utq6tyEhMTJTZbFZCQoI8PDwKuxxJUkJKulbtPq2Q8Cir52dXKeOiPoF+6tKkkjycGMEGAAAAcO8rSpkt3yF70aJFeuaZZ+Ti4lJQNRU5Rekbdj3DMBSfnK4rqRlycyypUi72LHIGAAAA4L5SlDJbvu/JHj16tMqVK6cXX3xR69atU2ZmZkHUhTwymUwq7eog3zIuKu3qQMAGAAA3FRISolKlSlnev/XWW2rUqFGh1XMzffr0UefOnfPcf9u2bTKZTJYn3lx/rQBwN+Q7ZMfExGjp0qUymUx6/vnn5ePjo6FDh2rHjh0FUR8AAABw15hMJn377beFXQaAYizfIbtkyZLq0KGDFi9erNjYWH3wwQeKiorSo48+qurVqxdEjQAAACjC0tPTC7sEACgy8h2yr+Xi4qKgoCA9+eSTqlGjhqKiomxUFgAAwL2pTZs2GjFihMaNG6cyZcrI29tbb731lqU9OjpaTz31lNzc3OTh4aHnn39e58+ftzrG6tWr1axZMzk5OcnT01NPP/20pS01NVVjxoxRxYoV5erqqhYtWmjbtm15rm/Xrl16/PHH5enpKbPZrNatW2v37t1WfUwmk+bOnatOnTrJ1dVVU6ZMUWZmpvr166eqVavK2dlZtWrV0pw5c/J83szMTL3yyisqVaqUypYtq3Hjxun6pYOysrI0depUyzkaNmyoFStW5PkckvTdd9+pcePGcnJyUrVq1TRp0iRlZGRIkvz8/CRJTz/9tEwmk+V99pT60NBQ+fn5yWw2q1u3brp8+bLluD/++KMefvhhS/0dOnTQ8ePH81UbgHvDbYXs5ORkLV68WO3bt1fFihU1e/ZsPf300zp48KCt6wMAALjnLFy4UK6urtq5c6dmzJiht99+Wxs3blRWVpaeeuopxcXFKSwsTBs3btSJEyfUtWtXy75r167V008/rfbt2+v333/X5s2b1bx5c0v7sGHDFBERoaVLl2rfvn167rnn9K9//UvHjh3LU22XL19W7969tX37dv3yyy+qUaOG2rdvbxUopavB8+mnn9b+/fv10ksvKSsrS5UqVdLy5ct16NAhTZw4Ua+99pqWLVuWp/POnDlTISEh+u9//6vt27crLi5O33zzjVWfqVOn6quvvtK8efN08OBBjR49Wj169FBYWFiezvHzzz+rV69eGjlypA4dOqTPPvtMISEhmjJliqSrv2CQpAULFigmJsbyXpKOHz+ub7/9VmvWrNGaNWsUFhamadOmWdqTkpL0yiuv6LffftPmzZtVokQJPf3008rKyspTbQDuIUY+de3a1XB1dTW8vLyMoUOHGjt27MjvIYqdhIQEQ5KRkJBQ2KUAAIBirnXr1sbDDz9sta1Zs2bG+PHjjQ0bNhh2dnZGdHS0pe3gwYOGJOPXX381DMMwAgICjO7du+d67JMnTxp2dnbGmTNnrLa3bdvWmDBhgmEYhrFgwQLDbDZb2t58802jYcOGN6w3MzPTcHd3N1avXm3ZJskYNWrULa916NChRpcuXW7ZzzAMw8fHx5gxY4blfXp6ulGpUiXjqaeeMgzDMP755x/DxcUlx789+/XrZ7zwwguGYRjG1q1bDUnG33//bRhGzmtt27at8e6771rtHxoaavj4+Fhd2zfffGPV58033zRcXFyMxMREy7axY8caLVq0uOH1XLhwwZBk7N+//5bXDuDOFaXMVjK/odzOzk7Lli1TUFCQ7OzsrNoOHDigevXq3XnyBwAAuIc1aNDA6r2Pj49iY2N1+PBh+fr6ytfX19JWp04dlSpVSocPH1azZs20Z88e9e/fP9fj7t+/X5mZmapZs6bV9tTUVJUtWzZPtZ0/f16vv/66tm3bptjYWGVmZio5OVnR0dFW/Zo2bZpj308++UT//e9/FR0drZSUFKWlpeVp5fKEhATFxMSoRYsWlm0lS5ZU06ZNLVPG//zzTyUnJ+vxxx+32jctLU0PPvhgnq5t7969Cg8Pt4xcS1enqf/zzz9KTk6+6SNq/fz85O7ubnmf/T3LduzYMU2cOFE7d+7UxYsXLSPY0dHR/PsYuM/kO2QvXrzY6v3ly5f1v//9T1988YUiIyN5pBcAAMAt2NvbW703mUx5nlbs7Ox8w7YrV67Izs5OkZGROQZD3Nzc8nT83r1769KlS5ozZ46qVKkiR0dHBQQEKC0tzaqfq6ur1fulS5dqzJgxmjlzpgICAuTu7q733ntPO3fuzNN5b+XKlSuSrk6Xr1ixolWbo6Njno8xadIkPfPMMznanJycbrrvrb5nHTt2VJUqVTR//nxVqFBBWVlZqlevXo7PDcC9L98hO9tPP/2kL7/8UitXrlSFChX0zDPP6JNPPrFlbQAAAPeV2rVr69SpUzp16pRlNPvQoUOKj49XnTp1JF0dBd+8ebP69u2bY/8HH3xQmZmZio2N1SOPPHJbNYSHh+vTTz9V+/btJUmnTp3SxYsX87Rfy5YtNWTIEMu2vC78ZTab5ePjo507d6pVq1aSpIyMDEVGRqpx48aSro7oOzo6Kjo6Wq1bt87vZUmSGjdurCNHjsjf3/+Gfezt7fM9aHTp0iUdOXJE8+fPt3zu27dvv60aARR/+QrZ586dU0hIiL788kslJibq+eefV2pqqr799lvLX/wAAAC4Pe3atVP9+vXVvXt3zZ49WxkZGRoyZIhat25tmZ795ptvqm3btqpevbq6deumjIwMrVu3TuPHj1fNmjXVvXt39erVSzNnztSDDz6oCxcuaPPmzWrQoIGCg4NvWUONGjUUGhqqpk2bKjExUWPHjr3p6Pm1+3311Vdav369qlatqtDQUO3atUtVq1bN07WPHDlS06ZNU40aNfTAAw9o1qxZio+Pt7S7u7trzJgxGj16tLKysvTwww8rISFB4eHh8vDwUO/evW95jokTJ6pDhw6qXLmynn32WZUoUUJ79+7VgQMHNHnyZElXp4Vv3rxZgYGBcnR0VOnSpW953NKlS6ts2bL6/PPP5ePjo+joaP373//O03UDuPfkeXXxjh07qlatWtq3b59mz56ts2fP6qOPPirI2gAAAIoNwzAUl5SmU3HJiktKy/H4qbwwmUz67rvvVLp0abVq1Urt2rVTtWrV9PXXX1v6tGnTRsuXL9f333+vRo0a6bHHHtOvv/5qaV+wYIF69eqlV199VbVq1VLnzp21a9cuVa5cOU81fPnll/r777/VuHFj9ezZUyNGjFC5cuVuud/AgQP1zDPPqGvXrmrRooUuXbpkNap9K6+++qp69uyp3r17W6abX/toMkl655139MYbb2jq1KmqXbu2/vWvf2nt2rV5DvJBQUFas2aNNmzYoGbNmumhhx7SBx98oCpVqlj6zJw5Uxs3bpSvr2+e7/UuUaKEli5dqsjISNWrV0+jR4/We++9l+drB3BvMRl5/D9AyZIlNWLECA0ePFg1atSwbLe3t9fevXvv6ZHsxMREmc1mJSQkyMPDo7DLAQAARUhCSrpWRp7Wwh1ROhmXbNlepYyLerf0U5cmlWR2tr/JEQAAd6ooZbY8j2Rv375dly9fVpMmTdSiRQt9/PHHebo/52bmzp2rBg0ayMPDQx4eHgoICNAPP/xgaf/nn380dOhQlS1bVm5uburSpYvOnz9vdYzo6GgFBwfLxcVF5cqV09ixY5WRkWHVZ9u2bWrcuLEcHR3l7++vkJCQO6obAABAksKOXlDA1M16Z80hRV8TsCUpOi5Z76w5pICpmxV29EIhVQgAuNvyHLIfeughzZ8/XzExMRo4cKCWLl1qWTlx48aNunz5cr5PXqlSJU2bNk2RkZH67bff9Nhjj+mpp57SwYMHJUmjR4/W6tWrtXz5coWFhens2bNWq0FmZmYqODhYaWlp2rFjhxYuXKiQkBBNnDjR0uevv/5ScHCwHn30Ue3Zs0ejRo3Syy+/rPXr1+e7XgAAgGxhRy+o74JflZKeKUPS9VMDs7elpGeq74Jf7/ug7ebmdsPXzz//XNjlAYDN5Hm6eG6OHDmiL7/8UqGhoYqPj9fjjz+u77///o4KKlOmjN577z09++yz8vLy0pIlS/Tss89Kkv744w/Vrl1bEREReuihh/TDDz+oQ4cOOnv2rMqXLy9JmjdvnsaPH68LFy7IwcFB48eP19q1a3XgwAHLObp166b4+Hj9+OOPeaqpKE09AAAAhS8hJV0BUzdfDdh5+JeUySQ529spYkLb+3bq+J9//nnDtooVK+ZpcTUAuJGilNnyPJKdm1q1amnGjBk6ffq0/ve//91RIZmZmVq6dKmSkpIUEBCgyMhIpaenq127dpY+DzzwgCpXrqyIiAhJUkREhOrXr28J2NLVBS0SExMto+ERERFWx8juk32M3KSmpioxMdHqBQAAkG1l5GmlpOUtYEuSYUgpaZlatft0wRZWhPn7+9/wRcAGcC+5o5Cdzc7OTp07d76tUez9+/fLzc1Njo6OGjRokL755hvVqVNH586dk4ODg0qVKmXVv3z58jp37pykq48UuzZgZ7dnt92sT2JiolJSUnKtaerUqTKbzZZX9nMqAQAADMPQwh1Rt7VvSHjUba06DgAoPmwSsu9ErVq1tGfPHu3cuVODBw9W7969dejQoUKtacKECUpISLC8Tp06Vaj1AACAouPv5HSdjEvOcQ/2rRiSTsYlKz45vSDKAgAUESULuwAHBwf5+/tLkpo0aaJdu3Zpzpw56tq1q9LS0hQfH281mn3+/Hl5e3tLkry9va2eC5ndnt2W/d/rVyQ/f/68PDw8bjg1ydHRUY6Ojja5PgAAcG9JSs24daebuJKaodKuDjaqBgBQ1BT6SPb1srKylJqaqiZNmsje3l6bN2+2tB05ckTR0dEKCAiQJAUEBGj//v2KjY219Nm4caM8PDwsz+0OCAiwOkZ2n+xjAAAA5Ier452NUbjdYP+QkJAct8ndislk0rfffntH9QAAbKtQR7InTJigJ598UpUrV9bly5e1ZMkSbdu2TevXr5fZbFa/fv30yiuvqEyZMvLw8NDw4cMVEBCghx56SJL0xBNPqE6dOurZs6dmzJihc+fO6fXXX9fQoUMtI9GDBg3Sxx9/rHHjxumll17Sli1btGzZMq1du7YwLx0AABRTpV3sVaWMi6LzOWXcJKlyGReVcsl9dfGuXbuqffv2NqkRAFB4CjVkx8bGqlevXoqJiZHZbFaDBg20fv16Pf7445KkDz74QCVKlFCXLl2UmpqqoKAgffrpp5b97ezstGbNGg0ePFgBAQFydXVV79699fbbb1v6VK1aVWvXrtXo0aM1Z84cVapUSV988YWCgoLu+vUCAIDiz2QyqXdLP72zJm9ryBiZ6TLZXQ3WfQL9ZDKZcu3n7OzMKtsAcA+4o+dk3y+K0jPXAACA7bRp00b169eXnZ2dFi5cKAcHB02ePFkvvviihg0bphUrVqh8+fL66KOP9OSTT0qSwsLC9MqrY/T7nj0q4eQu13ptVapVT5lK2EmSzi35txy8qkgmOyUd2iZ7ryqq8OJUJUV+J8+zOxT1118qU6aMOnbsqBkzZsjNzU3S1enio0aNUnx8vKW+uXPn6v3339epU6dUtWpVvf766+rZs6el3WQy6ZtvvlHnzp0lXX1qy8iRIxURESEXFxd16dJFs2bNspwDAO5VRSmzFbl7sgEAAO6mhQsXytPTU7/++quGDx+uwYMH67nnnlPLli21e/duPfHEE+rZs6eSk5N15swZtW/fXg+1aK6Q1WEqGzREV/ZtUMKOpVbHvHJgi0x2JeXdfYY8g4ZKkp5vWlkff/SRDh48qIULF2rLli0aN27cDev65ptvNHLkSL366qs6cOCABg4cqL59+2rr1q259k9KSlJQUJBKly6tXbt2afny5dq0aZOGDRtmuw8LAHBLjGTnQVH6rQgAALCdNm3aKDMzUz///LMkKTMzU2azWc8884y++uorSdK5c+fk4+OjiIgIrV69WitXrtThw4dlMpkUdvSCuo6apNjN/1XlUV9LphI6t+TfMtJSVKHPHEmSs4Od5vVoolY1vazOvWLFCg0aNEgXL16UlHMkOzAwUHXr1tXnn39u2ef5559XUlKSZW2Za0ey58+fr/Hjx+vUqVNydXWVJK1bt04dO3bU2bNnVb58+YL7IAGgkBWlzMZINgAAuK81aNDA8rWdnZ3Kli2r+vXrW7Zlh9PY2FgdPnxYAQEBlvuqW9f00oo3+8hIS1H5EkmWfRzKV1flMi6a2LGOfnmtrVrV9NKmTZvUtm1bVaxYUe7u7urZs6cuXbqk5OTkXOs6fPiwAgMDrbYFBgbq8OHDN+zfsGFDS8DO7p+VlaUjR47k81MBANwuQjYAALiv2dtbr/ZtMpmstmUH6qysrFz3d3e62nfZoAD9/sbjerByaXV/uKa2jW2jvoFV5eFkr6ioKHXo0EENGjTQypUrFRkZqU8++USSlJaWVhCXBQAoJIRsAACAPKpdu7YiIiJ07d124eHhcnd3l6+vr0q7OsixZAk52dtZrSIeGRmprKwszZw5Uw899JBq1qyps2fP3vJc4eHhVtvCw8NVp06dG/bfu3evkpKSrPqXKFFCtWrVup3LBQDcBkI2AABAHg0ZMkSnTp3S8OHD9ccff+i7777Tm2++qVdeeUUlStz4n1X+/v5KT0/XRx99pBMnTig0NFTz5s276bnGjh2rkJAQzZ07V8eOHdOsWbO0atUqjRkzJtf+3bt3l5OTk3r37q0DBw5o69atGj58uHr27Mn92ABwFxGyAQDAPccwDMUlpelUXLLiktJkq3VeK1asqHXr1unXX39Vw4YNNWjQIPXr10+vv/76Tfdr2LChZs2apenTp6tevXpavHixpk6detN9OnfurDlz5uj9999X3bp19dlnn2nBggVq06ZNrv1dXFy0fv16xcXFqVmzZnr22WfVtm1bffzxx7d7uQCA28Dq4nlQlFaqAwAAN5aQkq6Vkae1cEeUTsb9/wXFqpRxUe+WfurSpJLMzvY3OQIAoDgqSpmNkJ0HRekbBgAAchd29IIGL4pUSlqmJOnaf+Bk3x3t7GCnuT2aqPV1j9MCABRvRSmzMV0cAAAUe2FHL6jvgl+Vkp4pQ9YBW//33pCUkp6pvgt+VdjRC3e/SADAfYGQDQAAirWElHQNXhR5NUjfYn6eYVwN24MXRSohJf1ulAcAuM8QsgEAQLG2MvK0UtIybxmwsxmGlJKWqVW7TxdsYQCA+xIhGwAAFFuGYWjhjqjb2jckPMpmq44DAJCNkA0AAIqtv5PTdTIuOcc92LdiSDoZl6z4ZKaMAwBsi5ANAACKraTUjDva/8od7g8AwPUI2QAAoNhydSx5R/u73eH+AABcj5ANAACKrdIu9qpSxsXyHOy8MkmqUsZFpVzsC6IsAMB9jJANAACKLZPJpN4t/W5r3z6BfjKZ8hvPAQC4OUI2AAAo1ro0qSRnBzvlNS+XMEnODnZ6pnGlgi0MAHBfImQDAIBizexsr7k9msgk3TJoZ7fP69FEZmemigMAbI+QDQAAir3WNb20oG9zOdvbXQ3b17Vnb3O2t1NI3+ZqVdPr7hcJALgvsKQmAAC4J7Su6aWICW21avdphYRH6WRcsqWtchkX9Qn0U5cmleThxAg2AKDgmAzDMAq7iKIuMTFRZrNZCQkJ8vDwKOxyAADALRiGofjkdF1JzZCbY0mVcrFnkTMAuIcVpczGSDYAALjnmEwmlXZ1UGlXh8IuBQBwn+GebAAAAAAAbISQDQAAAACAjRCyAQAAAACwEUI2AAAAAAA2QsgGAAAAAMBGCNkAAAAAANgIIRsAAAAAABshZAMAAAAAYCOEbAAAAAAAbISQDQAAAACAjRCyAQAAAACwEUI2AAAAAAA2QsgGAAAAAMBGCNkAAAAAANgIIRsAAAAAABshZAMAAAAAYCOEbAAAAAAAbISQDQAAAACAjRCygULQp08fde7cOc/9t23bJpPJpPj4eElSSEiISpUqVSC1AQAAALh9hGygGOratauOHj1a2GUAAAAAuE7Jwi4AQP45OzvL2dm5sMsAAAAAcB1GsnFfa9OmjYYNG6Zhw4bJbDbL09NTb7zxhgzDkCSlpqZqzJgxqlixolxdXdWiRQtt27bNsn/2tO3169erdu3acnNz07/+9S/FxMRY+mRmZuqVV15RqVKlVLZsWY0bN85y/GypqakaMWKEypUrJycnJz388MPatWvXDeu+frr4W2+9pUaNGik0NFR+fn4ym83q1q2bLl++fNvnAAAAAJB/hGzc9xYuXKiSJUvq119/1Zw5czRr1ix98cUXkqRhw4YpIiJCS5cu1b59+/Tcc8/pX//6l44dO2bZPzk5We+//75CQ0P1008/KTo6WmPGjLG0z5w5UyEhIfrvf/+r7du3Ky4uTt98841VDePGjdPKlSu1cOFC7d69W/7+/goKClJcXFyer+P48eP69ttvtWbNGq1Zs0ZhYWGaNm2aTc8BAAAA4BYM3FJCQoIhyUhISCjsUmBjrVu3NmrXrm1kZWVZto0fP96oXbu2cfLkScPOzs44c+aM1T5t27Y1JkyYYBiGYSxYsMCQZPz555+W9k8++cQoX7685b2Pj48xY8YMy/v09HSjUqVKxlNPPWUYhmFcuXLFsLe3NxYvXmzpk5aWZlSoUMGy39atWw1Jxt9//205r9lstvR/8803DRcXFyMxMdGybezYsUaLFi3yfA4AAACguCpKmY17snHfe+ihh2QymSzvAwICNHPmTO3fv1+ZmZmqWbOmVf/U1FSVLVvW8t7FxUXVq1e3vPfx8VFsbKwkKSEhQTExMWrRooWlvWTJkmratKllyvjx48eVnp6uwMBASx97e3s1b95chw8fzvN1+Pn5yd3dPdc6bHUOAAAAADdHyAZu4MqVK7Kzs1NkZKTs7Oys2tzc3Cxf29vbW7WZTKYc91zfDbnVkZWVddfrAAAAAO5n3JON+97OnTut3v/yyy+qUaOGHnzwQWVmZio2Nlb+/v5WL29v7zwd22w2y8fHx+ocGRkZioyMtLyvXr26HBwcFB4ebtmWnp6uXbt2qU6dOnd4dXfvHAAAAAAYyQYUHR2tV155RQMHDtTu3bv10UcfaebMmapZs6a6d++uXr16aebMmXrwwQd14cIFbd68WQ0aNFBwcHCejj9y5EhNmzZNNWrU0AMPPKBZs2YpPj7e0u7q6qrBgwdr7NixKlOmjCpXrqwZM2YoOTlZ/fr1s8k13o1zAAAAACBk4x5lGIb+Tk5XUmqGXB1LqrSLvdV919fq1auXUlJS1Lx5c9nZ2WnkyJEaMGCAJGnBggWaPHmyXn31VZ05c0aenp566KGH1KFDhzzX8uqrryomJka9e/dWiRIl9NJLL+npp59WQkKCpc+0adOUlZWlnj176vLly2ratKnWr1+v0qVL39kHcY27cQ4AAADgfmcyCuPm0WImMTFRZrNZCQkJ8vDwKOxycBMJKelaGXlaC3dE6WRcsmV7lTIu6t3ST12aVJLZ+f/fu9ymTRs1atRIs2fPLoRqAQAAANhCUcpsjGTjnhF29IIGL4pUSlpmjrbouGS9s+aQ3t9wRHN7NFHrml6FUCEAAACAex0Ln+GeEHb0gvou+FUp6ZkyJF0/PSN7W0p6pvou+FVhRy/c/SIBAAAA3POYLp4HRWnqAXJKSElXwNTNVwN2Hn6aTSbJ2d5OERPaWk0dBwAAAFA8FaXMxkg2ir2VkaeVkpa3gC1JhiGlpGVq1e7TBVsYAAAAgPsOIRvFmmEYWrgj6rb2DQmPEhM5AAAAANgSIRvF2t/J6ToZl5zjHuxbMSSdjEtWfHJ6QZQFAAAA4D5FyEaxlpSacUf7X7nD/QEAAADgWoRsFGuujnf2FDq3O9wfAAAAAK5FyEaxVtrFXlXKuMiUz/1MkqqUcVEpF1YXBwAAAGA7hGwUayaTSb1b+t3Wvn0C/WQy5TeeAwAAAMCNEbJR7HVpUknODnbKa14uYZKcHez0TONKBVsYAAAAgPsOIRvFntnZXnN7NJFJumXQzm6f16OJzM5MFQcAAABgW4Rs3BNa1/TSgr7N5WxvdzVsX9eevc3Z3k4hfZurVU2vu18kAAAAgHseSyvjntG6ppciJrTVqt2nFRIepZNxyZa2ymVc1CfQT12aVJKHEyPYAAAAAAqGyTAMo7CLKOoSExNlNpuVkJAgDw+Pwi4HeWAYhuKT03UlNUNujiVVysWeRc4AAACAe1RRymyMZOOeZDKZVNrVQaVdHQq7FAAAAAD3Ee7JBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADARgjZAAAAAADYSKGG7KlTp6pZs2Zyd3dXuXLl1LlzZx05csSqT5s2bWQymaxegwYNsuoTHR2t4OBgubi4qFy5cho7dqwyMjKs+mzbtk2NGzeWo6Oj/P39FRISUtCXBwAAAAC4zxRqyA4LC9PQoUP1yy+/aOPGjUpPT9cTTzyhpKQkq379+/dXTEyM5TVjxgxLW2ZmpoKDg5WWlqYdO3Zo4cKFCgkJ0cSJEy19/vrrLwUHB+vRRx/Vnj17NGrUKL388stav379XbtWAAAAAMC9z2QYhlHYRWS7cOGCypUrp7CwMLVq1UrS1ZHsRo0aafbs2bnu88MPP6hDhw46e/asypcvL0maN2+exo8frwsXLsjBwUHjx4/X2rVrdeDAAct+3bp1U3x8vH788cdb1pWYmCiz2ayEhAR5eHjc+YUCAAAAAGymKGW2InVPdkJCgiSpTJkyVtsXL14sT09P1atXTxMmTFBycrKlLSIiQvXr17cEbEkKCgpSYmKiDh48aOnTrl07q2MGBQUpIiIi1zpSU1OVmJho9QIAAAAA4FZKFnYB2bKysjRq1CgFBgaqXr16lu0vvviiqlSpogoVKmjfvn0aP368jhw5olWrVkmSzp07ZxWwJVnenzt37qZ9EhMTlZKSImdnZ6u2qVOnatKkSTa/RgAAAADAva3IhOyhQ4fqwIED2r59u9X2AQMGWL6uX7++fHx81LZtWx0/flzVq1cvkFomTJigV155xfI+MTFRvr6+BXIuAAAAAMC9o0hMFx82bJjWrFmjrVu3qlKlSjft26JFC0nSn3/+KUny9vbW+fPnrfpkv/f29r5pHw8Pjxyj2JLk6OgoDw8PqxcAAAAAALdSqCHbMAwNGzZM33zzjbZs2aKqVavecp89e/ZIknx8fCRJAQEB2r9/v2JjYy19Nm7cKA8PD9WpU8fSZ/PmzVbH2bhxowICAmx0JQAAAAAAFHLIHjp0qBYtWqQlS5bI3d1d586d07lz55SSkiJJOn78uN555x1FRkYqKipK33//vXr16qVWrVqpQYMGkqQnnnhCderUUc+ePbV3716tX79er7/+uoYOHSpHR0dJ0qBBg3TixAmNGzdOf/zxhz799FMtW7ZMo0ePLrRrBwAAAADcewr1EV4mkynX7QsWLFCfPn106tQp9ejRQwcOHFBSUpJ8fX319NNP6/XXX7eawn3y5EkNHjxY27Ztk6urq3r37q1p06apZMn/f8v5tm3bNHr0aB06dEiVKlXSG2+8oT59+uSpzqK0HDwAAAAAwFpRymxF6jnZRVVR+oYBAAAAAKwVpcxWJBY+AwAAAADgXkDIBgAAAADARgjZAAAAAADYCCEbAAAAAAAbIWQDAAAAAGAjhGwAAAAAAGyEkA0AAAAAgI0QsgEAAAAAsBFCNgAAAAAANkLIBgAAAADARgjZAAAAAADYCCEbKGL8/Pw0e/bswi4DAAAAwG0oWdgFAEVRmzZt1KhRo0IJu7t27ZKrq+tdPy8AAACAO0fIBooYLy+vwi4BAAAAwG1iujhwnT59+igsLExz5syRyWSSyWTS8ePH1a9fP1WtWlXOzs6qVauW5syZY7VfRkaGRowYoVKlSqls2bIaP368evfurc6dO1v6XL58Wd27d5erq6t8fHz0wQcfqE2bNho1apSlz/XTxWfNmqX69evL1dVVvr6+GjJkiK5cuWJpP3nypDp27KjSpUvL1dVVdevW1bp16yztBw8eVIcOHeTh4SF3d3c98sgjOn78uKSro+aPP/64PD09ZTab1bp1a+3evdu2HygAAABwHyFkA9eZM2eOAgIC1L9/f8XExCgmJkaVKlVSpUqVtHz5ch06dEgTJ07Ua6+9pmXLlln2mz59uhYvXqwFCxYoPDxciYmJ+vbbb62O/corryg8PFzff/+9Nm7cqJ9//vmWobZEiRL68MMPdfDgQS1cuFBbtmzRuHHjLO1Dhw5VamqqfvrpJ+3fv1/Tp0+Xm5ubJOnMmTNq1aqVHB0dtWXLFkVGRuqll15SRkaGpKuhv3fv3tq+fbt++eUX1ahRQ+3bt9fly5dt9GkCAAAA9xemiwPXMZvNcnBwkIuLi7y9vS3bJ02aZPm6atWqioiI0LJly/T8889Lkj766CNNmDBBTz/9tCTp448/thpRvnz5shYuXKglS5aobdu2kqQFCxaoQoUKN63n+lHuyZMna9CgQfr0008lSdHR0erSpYvq168vSapWrZql/yeffCKz2aylS5fK3t5eklSzZk1L+2OPPWZ1rs8//1ylSpVSWFiYOnTocItPCgAAAMD1GMkG8uiTTz5RkyZN5OXlJTc3N33++eeKjo6WJCUkJOj8+fNq3ry5pb+dnZ2aNGlieX/ixAmlp6db9TGbzapVq9ZNz7tp0ya1bdtWFStWlLu7u3r27KlLly4pOTlZkjRixAhNnjxZgYGBevPNN7Vv3z7Lvnv27NEjjzxiCdjXO3/+vPr3768aNWrIbDbLw8NDV65csVwXAAAAgPwhZAN5sHTpUo0ZM0b9+vXThg0btGfPHvXt21dpaWkFet6oqCh16NBBDRo00MqVKxUZGalPPvlEkiznfvnll3XixAn17NlT+/fvV9OmTfXRRx9JkpydnW96/N69e2vPnj2aM2eOduzYoT179qhs2bIFfl0AAADAvYqQDeTCwcFBmZmZlvfh4eFq2bKlhgwZogcffFD+/v6WxcOkqyPS5cuX165duyzbMjMzre63rlatmuzt7a36JCQk6OjRozesIzIyUllZWZo5c6Yeeugh1axZU2fPns3Rz9fXV4MGDdKqVav06quvav78+ZKkBg0a6Oeff1Z6enquxw8PD9eIESPUvn171a1bV46Ojrp48WIePiEAAAAAuSFkA7nw8/PTzp07FRUVpYsXL6pGjRr67bfftH79eh09elRvvPGGVViWpOHDh2vq1Kn67rvvdOTIEY0cOVJ///23TCaTJMnd3V29e/fW2LFjtXXrVh08eFD9+vVTiRIlLH2u5+/vr/T0dH300Uc6ceKEQkNDNW/ePKs+o0aN0vr16/XXX39p9+7d2rp1q2rXri1JGjZsmBITE9WtWzf99ttvOnbsmEJDQ3XkyBFJUo0aNRQaGqrDhw9r586d6t69+y1HvwEAAADcGCEb9xXDMBSXlKZTccmKS0qTYRi59hszZozs7OxUp04deXl5KSgoSM8884y6du2qFi1a6NKlSxoyZIjVPuPHj9cLL7ygXr16KSAgQG5ubgoKCpKTk5Olz6xZsxQQEKAOHTqoXbt2CgwMVO3ata36XKthw4aaNWuWpk+frnr16mnx4sWaOnWqVZ/MzEwNHTpUtWvX1r/+9S/VrFnTsiha2bJltWXLFl25ckWtW7dWkyZNNH/+fMs92l9++aX+/vtvNW7cWD179tSIESNUrly52/58AQAAgPudybhRyoBFYmKizGazEhIS5OHhUdjl4DYkpKRrZeRpLdwRpZNxyZbtVcq4qHdLP3VpUklm59wXB7tdWVlZql27tp5//nm98847ufZJSkpSxYoVNXPmTPXr18+m5wcAAADuF0Ups/EIL9zzwo5e0OBFkUpJy8zRFh2XrHfWHNL7G45obo8mal3T67bPc/LkSW3YsEGtW7dWamqqPv74Y/3111968cUXLX1+//13/fHHH2revLkSEhL09ttvS5Keeuqp2z4vAAAAgKKD6eK4p4UdvaC+C35VSnqmDEnXT9vI3paSnqm+C35V2NELt32uEiVKKCQkRM2aNVNgYKD279+vTZs2We6Pzvb++++rYcOGateunZKSkvTzzz/L09Pzts8LAAAAoOhgungeFKWpB8i7hJR0BUzdfDVg5+Gn3GSSnO3tFDGhrc2njgMAAAAoOEUpszGSjXvWysjTSknLW8CWJMOQUtIytWr36YItDAAAAMA9i5CNe5JhGFq4I+q29g0Jj7rhquMAAAAAcDOEbNyT/k5O18m45Bz3YN+KIelkXLLik9MLoiwAAAAA9zhCNu5JSakZd7T/lTvcHwAAAPh/7d15VFXl/j/w9xE4cA6cAygIDiCWikNEiorAVwlFwazrQOlV66qRYpmt682KLMuu14u3a5OEQ6UiLsuhrkOKGiIoKjmCQhAGDlhhloiCgIJ8fn/4Yy+3jOaRyfdrLdZyP/vZz/Ps8+Hg/uxnD/RgYpJNLZK15b29nc7mHrcnIiIiIqIHE5NsapHs9Rbo1FoPzV1upwHQqbUedno+XZyIiIiIiO4ek2xqkTQaDSb5uv2pbSf7uUGjudv0nIiIiIiIiEk2tWAhXh2h05qhvvlyKw2g05phTJ+O93dgRERERETUYjHJphbLVmeBpc96QQPUmWhXrl/2rBdsdbxUnIiIiIiI/hwm2dSi+XdzxKop/aGzMLuVbN+xvrJMZ2GG6Cn9MaibY8MPkoiIiIiIWgw+QplaPP9ujkh+cwj+d/xnRB84i3P5xco619Z6TPZzQ4hXRxitOINNRERERET3RiMi0tiDaOquXr0KW1tbXLlyBUajsbGHQ/dARFBQXIai6+WwsTSHnd6CDzkjIiIiImrmmlLOxplseqBoNBrYW2thb61t7KEQEREREVELxHuyiYiIiIiIiEyESTYRERERERGRiTDJJiIiIiIiIjIRJtlEREREREREJsIkm4iIiIiIiMhEmGQTERERERERmQiTbCIiIiIiIiITYZJNREREREREZCJMsomIiIiIiIhMhEk2ERERERERkYkwySYiIiIiIiIyESbZRERERERERCZi3tgDaA5EBABw9erVRh4JERERERER3akyV6vM3RoTk+x6KCwsBAC4uLg08kiIiIiIiIioJoWFhbC1tW3UMWikKaT6TVxFRQV+/fVXGAwGaDSaxh4O4daZKhcXF5w/fx5Go7Gxh0Mmxvi2bIxvy8b4tmyMb8vG+LZsLT2+IoLCwkK0b98erVo17l3RnMmuh1atWqFjx46NPQyqhtFobJF/JOgWxrdlY3xbNsa3ZWN8WzbGt2VryfFt7BnsSnzwGREREREREZGJMMkmIiIiIiIiMhEm2dQsWVpa4t1334WlpWVjD4XuA8a3ZWN8WzbGt2VjfFs2xrdlY3wbDh98RkRERERERGQinMkmIiIiIiIiMhEm2UREREREREQmwiSbiIiIiIiIyESYZFODiIiIQL9+/WAwGNC2bVuMGjUKWVlZVeolJydj8ODBsLa2htFoxKBBg1BSUqKsz8/Px8SJE2E0GmFnZ4fQ0FAUFRWp2jh58iQGDhwIKysruLi44P3336/Sz8aNG9G9e3dYWVnBw8MDsbGxpt/pB0h94nvhwgU899xzcHZ2hrW1Nfr06YNvvvlGVYfxbZqWLl2KRx99VHmvpo+PD3bs2KGsLy0txYwZM9CmTRvY2NggJCQEv/32m6qN3NxcjBgxAnq9Hm3btsVrr72G8vJyVZ3ExET06dMHlpaW6NKlC6Kjo6uMJSoqCm5ubrCysoK3tzcOHz58X/b5QVJbfPPz8zFz5ky4u7tDp9PB1dUVr7zyCq5cuaJqg/Ftuur6/lYSEQwfPhwajQabN29WrWN8m676xJfHVs1bXTHm8VUTJUQNICgoSFatWiXp6emSmpoqTzzxhLi6ukpRUZFS5+DBg2I0GiUiIkLS09Plxx9/lPXr10tpaalSJzg4WDw9PeX777+XpKQk6dKli4wfP15Zf+XKFXFycpKJEydKenq6fPXVV6LT6WT58uVKnQMHDoiZmZm8//77kpGRIW+//bZYWFhIWlpaw3wYLVB94jt06FDp16+fHDp0SHJycmT+/PnSqlUrOX78uFKH8W2atm7dKtu3b5dTp05JVlaWzJkzRywsLCQ9PV1ERKZPny4uLi4SHx8vR48elQEDBoivr6+yfXl5uTzyyCMSGBgoKSkpEhsbKw4ODvLmm28qdU6fPi16vV7+8Y9/SEZGhkRGRoqZmZns3LlTqbNu3TrRarWycuVK+eGHH2Tq1KliZ2cnv/32W8N9GC1QbfFNS0uTMWPGyNatWyU7O1vi4+Ola9euEhISomzP+DZtdX1/K3344YcyfPhwASCbNm1Syhnfpq2u+PLYqvmrK8Y8vmqamGRTo7h48aIAkL179ypl3t7e8vbbb9e4TUZGhgCQI0eOKGU7duwQjUYjv/zyi4iILFmyROzt7eX69etKnTfeeEPc3d2V5bFjx8qIESNUbXt7e0tYWNg97xfdUl18ra2tJSYmRlWvdevW8vnnn4sI49vc2NvbyxdffCEFBQViYWEhGzduVNZlZmYKAElOThYRkdjYWGnVqpVcuHBBqbN06VIxGo1KLF9//XXp1auXqo9x48ZJUFCQsty/f3+ZMWOGsnzz5k1p3769RERE3Jd9fJBVxrc6GzZsEK1WK2VlZSLC+DZHd8Y3JSVFOnToIHl5eVWSbMa3+bk9vjy2aplujzGPr5omXi5OjaLyUsPWrVsDAC5evIhDhw6hbdu28PX1hZOTE/z9/bF//35lm+TkZNjZ2aFv375KWWBgIFq1aoVDhw4pdQYNGgStVqvUCQoKQlZWFi5fvqzUCQwMVI0nKCgIycnJ92dnH0B3xhcAfH19sX79euTn56OiogLr1q1DaWkpHn/8cQCMb3Nx8+ZNrFu3DteuXYOPjw+OHTuGsrIy1WfevXt3uLq6Kp95cnIyPDw84OTkpNQJCgrC1atX8cMPPyh1aovbjRs3cOzYMVWdVq1aITAwkLE1oTvjW50rV67AaDTC3NwcAOPbnFQX3+LiYkyYMAFRUVFwdnausg3j23zcGV8eW7U81X2HeXzVNDHJpgZXUVGBv//97/Dz88MjjzwCADh9+jQAYN68eZg6dSp27tyJPn36YMiQIfjpp58A3LrnpG3btqq2zM3N0bp1a1y4cEGpc/uBAABlua46levp3lQXXwDYsGEDysrK0KZNG1haWiIsLAybNm1Cly5dADC+TV1aWhpsbGxgaWmJ6dOnY9OmTejZsycuXLgArVYLOzs7Vf3bP/N7idvVq1dRUlKCP/74Azdv3mRs75Oa4nunP/74A/Pnz8e0adOUMsa36astvrNmzYKvry9GjhxZ7baMb9NXU3x5bNVy1PYd5vFV02Te2AOgB8+MGTOQnp6uOpNaUVEBAAgLC8OUKVMAAL1790Z8fDxWrlyJiIiIRhkr3b3q4gsAc+fORUFBAXbv3g0HBwds3rwZY8eORVJSEjw8PBpptFRf7u7uSE1NxZUrV/D1119j0qRJ2Lt3b2MPi0ykpvjenmhfvXoVI0aMQM+ePTFv3rzGGyzdtZrim52djT179iAlJaWxh0j3oKb48tiq5ajtbzSPr5omJtnUoF5++WVs27YN+/btQ8eOHZXydu3aAUCVmZMePXogNzcXAODs7IyLFy+q1peXlyM/P1+5xM3Z2bnKU40rl+uqU91lcnR3aopvTk4OPv30U6Snp6NXr14AAE9PTyQlJSEqKgrLli1jfJs4rVarnBX38vLCkSNH8Mknn2DcuHG4ceMGCgoKVLPZt3/mzs7OVZ4iXN+4GY1G6HQ6mJmZwczMjLG9T2qK7/LlywEAhYWFCA4OhsFgwKZNm2BhYaFsy/g2fTXFV6fTIScnp8qVKCEhIRg4cCASExMZ32agpviGh4cD4LFVS1BTjF9//XUeXzVRvFycGoSI4OWXX8amTZuwZ88edO7cWbXezc0N7du3r/Lap1OnTqFTp04AAB8fHxQUFODYsWPK+j179qCiogLe3t5KnX379qGsrEypExcXB3d3d9jb2yt14uPjVf3ExcXVeP8h1a2u+BYXFwO4dQ/e7czMzJQz7Yxv81JRUYHr16/Dy8sLFhYWqs88KysLubm5ymfu4+ODtLQ01X/ycXFxMBqNysFfXXHTarXw8vJS1amoqEB8fDxjex9Uxhe4NYM9bNgwaLVabN26FVZWVqq6jG/zUxnf8PBwnDx5EqmpqcoPAHz00UdYtWoVAMa3OaqML4+tWq7KGPP4qglr7Cev0YPhxRdfFFtbW0lMTJS8vDzlp7i4WKnz0UcfidFolI0bN8pPP/0kb7/9tlhZWUl2drZSJzg4WHr37i2HDh2S/fv3S9euXVWvICgoKBAnJyd57rnnJD09XdatWyd6vb7KKwjMzc1l0aJFkpmZKe+++y5fQXCP6orvjRs3pEuXLjJw4EA5dOiQZGdny6JFi0Sj0cj27duVdhjfpik8PFz27t0rZ86ckZMnT0p4eLhoNBr57rvvROTWK7xcXV1lz549cvToUfHx8REfHx9l+8pXAA0bNkxSU1Nl586d4ujoWO0rgF577TXJzMyUqKioal8BZGlpKdHR0ZKRkSHTpk0TOzs71VOP6e7VFt8rV66It7e3eHh4SHZ2tur7XV5eLiKMb1NX1/f3TqjhFV6Mb9NUV3x5bNX81RZjHl81XUyyqUEAqPZn1apVqnoRERHSsWNH0ev14uPjI0lJSar1ly5dkvHjx4uNjY0YjUaZMmWKFBYWquqcOHFC/u///k8sLS2lQ4cOsnDhwirj2bBhg3Tr1k20Wq306tVL9YeI7l594nvq1CkZM2aMtG3bVvR6vTz66KNVXjnB+DZNzz//vHTq1Em0Wq04OjrKkCFDVAfoJSUl8tJLL4m9vb3o9XoZPXq05OXlqdo4e/asDB8+XHQ6nTg4OMirr76qvAKqUkJCgjz22GOi1WrloYceqvL3QUQkMjJSXF1dRavVSv/+/eX777+/L/v8IKktvgkJCTV+v8+cOaO0wfg2XXV9f+90Z5Itwvg2ZfWJL4+tmre6Yszjq6ZJIyLSsHPnRERERERERC0T78kmIiIiIiIiMhEm2UREREREREQmwiSbiIiIiIiIyESYZBMRERERERGZCJNsIiIiIiIiIhNhkk1ERERERERkIkyyiYiIiIiIiEyESTYRERERERGRiTDJJiIioibp7Nmz0Gg0SE1NrbVeVlYWnJ2dUVhY2CDjmjx5MkaNGnVPbWRkZKBjx464du2aaQZFRERNBpNsIiJqFMnJyTAzM8OIESMaeyj33YABAzB9+nRV2bJly6DRaBAdHa0qnzx5MgYOHFivdk2R7NUmOjoaGo0GwcHBqvKCggJoNBokJibet77vxptvvomZM2fCYDD86TbOnz+P8ePHIzg4GEOHDkVSUpJq/blz56DT6VBUVHSvwwUA9OzZEwMGDMCHH35okvaIiKjpYJJNRESNYsWKFZg5cyb27duHX3/99b72JSIoLy+/r33UJiAgoEpCmpCQABcXlyrliYmJGDx4cMMNDsCNGzdqXGdubo7du3cjISGhAUdUf7m5udi2bRsmT558T+24uLhg1qxZKCkpQXJyMr777jvV+i1btiAgIAA2Njb31M/tpkyZgqVLlzbq7yYREZkek2wiImpwRUVFWL9+PV588UWMGDFCNZs7YcIEjBs3TlW/rKwMDg4OiImJAQBUVFQgIiICnTt3hk6ng6enJ77++mulfmJiIjQaDXbs2AEvLy9YWlpi//79yMnJwciRI+Hk5AQbGxv069cPu3fvVvWVl5eHESNGQKfToXPnzvjyyy/h5uaGjz/+WKlTUFCAF154AY6OjjAajRg8eDBOnDhR4/4GBAQgKysLFy5cUMr27t2L8PBwVZJ95swZnDt3DgEBAbh58yZCQ0OVfXR3d8cnn3yi1J03bx5Wr16NLVu2QKPRqGaWz58/j7Fjx8LOzg6tW7fGyJEjcfbsWWXbyhnwBQsWoH379nB3d69x7NbW1nj++ecRHh5eY5369AkAX3zxBXr06AErKyt0794dS5YsUa0/fPgwevfuDSsrK/Tt2xcpKSm19gkAGzZsgKenJzp06KCURUdHw87ODtu2bYO7uzv0ej2efvppFBcXY/Xq1XBzc4O9vT1eeeUV3Lx5U9muf//+2Lt3L5YsWYK//OUvqn62bNlSpWzRokVo164d2rRpgxkzZqCsrExZt2bNGvTt2xcGgwHOzs6YMGECLl68qNp+6NChyM/Px969e+vcTyIiaj6YZBMRUYPbsGEDunfvDnd3dzz77LNYuXIlRAQAMHHiRHz77beqy3J37dqF4uJijB49GgAQERGBmJgYLFu2DD/88ANmzZqFZ599tkqyEh4ejoULFyIzMxOPPvooioqK8MQTTyA+Ph4pKSkIDg7GU089hdzcXGWbv/3tb/j111+RmJiIb775Bp999lmV5OiZZ57BxYsXsWPHDhw7dgx9+vTBkCFDkJ+fX+3++vn5wcLCQpkNzsjIQElJCUJDQ3Hp0iWcOXMGwK3ZbSsrK/j4+KCiogIdO3bExo0bkZGRgXfeeQdz5szBhg0bAACzZ8/G2LFjERwcjLy8POTl5cHX1xdlZWUICgqCwWBAUlISDhw4ABsbGwQHB6tmrOPj45GVlYW4uDhs27at1njNmzcPaWlpqhMZt6tPn2vXrsU777yDBQsWIDMzE//+978xd+5crF69GsCtEy9PPvkkevbsiWPHjmHevHmYPXt2reMCgKSkJPTt27dKeXFxMRYvXox169Zh586dSExMxOjRoxEbG4vY2FisWbMGy5cvV/aptLRU2ba0tBQLFixQlgsKCrB//35Vkp2QkICcnBwkJCRg9erViI6OVp0sKisrw/z583HixAls3rwZZ8+erTLbrtVq8dhjj1W5NJ2IiJo5ISIiamC+vr7y8ccfi4hIWVmZODg4SEJCgmo5JiZGqT9+/HgZN26ciIiUlpaKXq+XgwcPqtoMDQ2V8ePHi4hIQkKCAJDNmzfXOZZevXpJZGSkiIhkZmYKADly5Iiy/qeffhIA8tFHH4mISFJSkhiNRiktLVW18/DDD8vy5ctr7MfPz0+mTZsmIiJRUVHyxBNPiIjIsGHDZOXKlSIi8txzz0lAQECNbcyYMUNCQkKU5UmTJsnIkSNVddasWSPu7u5SUVGhlF2/fl10Op3s2rVL2c7JyUmuX79eY18iIqtWrRJbW1sREQkPD5du3bpJWVmZXL58WQAoMatPnw8//LB8+eWXqvbnz58vPj4+IiKyfPlyadOmjZSUlCjrly5dKgAkJSWlxjF6enrKP//5zyrjBiDZ2dlKWVhYmOj1eiksLFTKgoKCJCwsTERENm3aJD4+PuLn5yeenp7KvomIrF27Vvr27assT5o0STp16iTl5eVK2TPPPKP8jlbnyJEjAkDVv4jI6NGjZfLkyTVuR0REzQ9nsomIqEFlZWXh8OHDGD9+PIBb9/yOGzcOK1asUJbHjh2LtWvXAgCuXbuGLVu2YOLEiQCA7OxsFBcXY+jQobCxsVF+YmJikJOTo+rrzhnOoqIizJ49Gz169ICdnR1sbGyQmZmpzGRnZWXB3Nwcffr0Ubbp0qUL7O3tleUTJ06gqKgIbdq0UfV/5syZKv3f7vHHH1cu505MTMTjjz8OAPD391eVBwQEKNtERUXBy8sLjo6OsLGxwWeffaaada/OiRMnkJ2dDYPBoIytdevWKC0tVY3Pw8MDWq221rZu98Ybb+D333/HypUr77rPa9euIScnB6GhoarP7F//+pcypsqrDaysrJR2fXx86hxXSUmJaptKer0eDz/8sLLs5OQENzc31T3VTk5OylUKo0aNwsGDB7F//36kpqYq8QGqv1S8V69eMDMzU5bbtWunuuLh2LFjeOqpp+Dq6gqDwQB/f38AqBI/nU6H4uLiOveTiIiaD/PGHgARET1YVqxYgfLycrRv314pExFYWlri008/ha2tLSZOnAh/f39cvHgRcXFx0Ol0yhOuKy8j3759u+o+XACwtLRULVtbW6uWZ8+ejbi4OCxatAhdunSBTqfD008/XeuDv+5UVFSEdu3aVftkbTs7uxq3CwgIwIIFC/DLL78gMTFRuRTa398fy5cvR05ODs6fP6889GzdunWYPXs2PvjgA/j4+MBgMOC///0vDh06VOf4vLy8lJMUt3N0dFT+fednUxc7Ozu8+eabeO+99/Dkk0/eVZ+VMfv888/h7e2tWn97ovpnODg44PLly1XKLSwsVMsajabasoqKilrbv3HjBnbu3Ik5c+bU2X5lW9euXUNQUBCCgoKwdu1aODo6Ijc3F0FBQVV+1/Lz81UnA4iIqPljkk1ERA2mvLwcMTEx+OCDDzBs2DDVulGjRuGrr77C9OnT4evrCxcXF6xfvx47duzAM888oyQ1PXv2hKWlJXJzc5XZwfo6cOAAJk+erNzbXVRUpHo4l7u7O8rLy5GSkgIvLy8At2bOb0/i+vTpgwsXLsDc3Bxubm717tvX1xdarRZLlixBaWmp0n6/fv2UGWJra2v0799fGauvry9eeuklpY07Z8q1Wq3qwV2V41u/fj3atm0Lo9FY7/HVx8yZM7F48WLVA9jq06etrS3at2+P06dPK1ck3KlHjx5Ys2YNSktLlZnp77//vs4x9e7dGxkZGX9ib+onMTER9vb28PT0rPc2P/74Iy5duoSFCxfCxcUFAHD06NFq66anp+Ppp582yViJiKhp4OXiRETUYLZt24bLly8jNDQUjzzyiOonJCREuWQcuPWU8WXLliEuLk6VmBkMBsyePRuzZs3C6tWrkZOTg+PHjyMyMlJ5iFZNunbtiv/9739ITU3FiRMnMGHCBNVMZvfu3REYGIhp06bh8OHDSElJwbRp06DT6aDRaAAAgYGB8PHxwahRo/Ddd9/h7NmzOHjwIN56660aEyng1mXBAwYMQGRkJPz8/JQZXK1WqyqvPJnQtWtXHD16FLt27cKpU6cwd+5cHDlyRNWmm5sbTp48iaysLPzxxx8oKyvDxIkT4eDggJEjRyIpKQlnzpxBYmIiXnnlFfz888/1jFT1rKys8N5772Hx4sWq8vr0+d577yEiIgKLFy/GqVOnkJaWhlWrVinviZ4wYQI0Gg2mTp2KjIwMxMbGYtGiRXWOKSgoCMnJyVVONpjK1q1bq1wqXhdXV1dotVpERkbi9OnT2Lp1K+bPn1+l3tmzZ/HLL78gMDDQVMMlIqImgEk2ERE1mBUrViAwMBC2trZV1oWEhODo0aM4efIkgFuJW0ZGBjp06AA/Pz9V3fnz52Pu3LmIiIhAjx49EBwcjO3bt6Nz58619v/hhx/C3t4evr6+eOqppxAUFKS6/xoAYmJi4OTkhEGDBmH06NGYOnUqDAaDMruq0WgQGxuLQYMGYcqUKejWrRv++te/4ty5c3Bycqq1/4CAABQWFqru9wVuXTJeWFiouh87LCwMY8aMwbhx4+Dt7Y1Lly6pZrUBYOrUqXB3d0ffvn3h6OiIAwcOQK/XY9++fXB1dcWYMWPQo0cPhIaGorS01CQz25MmTcJDDz2kKqtPny+88AK++OILrFq1Ch4eHvD390d0dLQSMxsbG3z77bdIS0tD79698dZbb+E///lPneMZPny48i7v++HPJNmOjo6Ijo7Gxo0b0bNnTyxcuLDaEwZfffUVhg0bhk6dOplquERE1ARoRP7/O1OIiIioip9//hkuLi7YvXs3hgwZ0tjDoWpERUVh69at2LVrl0nbPX78OAYPHozff/+9yj3Y9+rGjRvo2rUrvvzyyyonkYiIqHnjPdlERES32bNnD4qKiuDh4YG8vDy8/vrrcHNzw6BBgxp7aFSDsLAwFBQUoLCwEAaDwWTtlpeXIzIy0uQJNnDrKeNz5sxhgk1E1AJxJpuIiOg2u3btwquvvorTp0/DYDDA19cXH3/8MS/pJSIionphkk1ERERERERkInzwGREREREREZGJMMkmIiIiIiIiMhEm2UREREREREQmwiSbiIiIiIiIyESYZBMRERERERGZCJNsIiIiIiIiIhNhkk1ERERERERkIkyyiYiIiIiIiEyESTYRERERERGRifw/KdoIqdA/y8IAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 1000x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Plot salvato come: .//2024-12-07_07-35_plots/water_need_vs_oil_production.png\n",
" Variety Technique Technique String \\\n",
"0 nocellara_delletna 3 tradizionale \n",
"1 nocellara_delletna 1 intensiva \n",
"2 nocellara_delletna 2 superintensiva \n",
"3 leccino 1 intensiva \n",
"4 leccino 2 superintensiva \n",
"5 leccino 3 tradizionale \n",
"6 frantoio 2 superintensiva \n",
"7 frantoio 3 tradizionale \n",
"8 frantoio 1 intensiva \n",
"9 coratina 1 intensiva \n",
"10 coratina 2 superintensiva \n",
"11 coratina 3 tradizionale \n",
"12 taggiasca 3 tradizionale \n",
"13 taggiasca 2 superintensiva \n",
"14 taggiasca 1 intensiva \n",
"15 pendolino 1 intensiva \n",
"16 pendolino 2 superintensiva \n",
"17 pendolino 3 tradizionale \n",
"18 moraiolo 2 superintensiva \n",
"19 moraiolo 1 intensiva \n",
"20 moraiolo 3 tradizionale \n",
"\n",
" Avg Olive Production (kg/ha) Avg Oil Production (L/ha) \\\n",
"0 9564.638687 2088.362004 \n",
"1 13699.079622 2991.183032 \n",
"2 17826.710664 3892.059753 \n",
"3 16432.379678 3229.053194 \n",
"4 20528.499013 4033.942398 \n",
"5 10937.982122 2149.449585 \n",
"6 24621.040119 6047.876212 \n",
"7 13740.739760 3375.103688 \n",
"8 20550.900635 5047.942655 \n",
"9 16429.706879 4215.265516 \n",
"10 19164.700743 4916.649709 \n",
"11 12318.510310 3160.037128 \n",
"12 6839.506230 1381.247995 \n",
"13 16433.741502 3319.210170 \n",
"14 10968.603159 2215.371493 \n",
"15 13705.431414 2468.678455 \n",
"16 19183.689269 3455.879324 \n",
"17 10960.549241 1974.357984 \n",
"18 17793.971752 3885.415851 \n",
"19 13144.222436 2870.020002 \n",
"20 8765.195655 1913.745255 \n",
"\n",
" Avg Water Need (m³/ha) Oil Efficiency (L/kg) \\\n",
"0 32997.227891 0.218342 \n",
"1 33079.012125 0.218349 \n",
"2 33118.708645 0.218327 \n",
"3 25013.303736 0.196506 \n",
"4 24989.459147 0.196504 \n",
"5 24981.219100 0.196512 \n",
"6 28874.473543 0.245639 \n",
"7 29003.452741 0.245628 \n",
"8 28921.261327 0.245631 \n",
"9 38270.638622 0.256564 \n",
"10 38264.650562 0.256547 \n",
"11 38253.676395 0.256528 \n",
"12 26219.134374 0.201951 \n",
"13 26253.317778 0.201975 \n",
"14 26284.027794 0.201974 \n",
"15 26154.359691 0.180124 \n",
"16 26153.199618 0.180147 \n",
"17 26152.823801 0.180133 \n",
"18 32561.911109 0.218356 \n",
"19 32577.899255 0.218348 \n",
"20 32594.860153 0.218335 \n",
"\n",
" Water Efficiency (L oil/m³ water) \n",
"0 0.063289 \n",
"1 0.090425 \n",
"2 0.117518 \n",
"3 0.129093 \n",
"4 0.161426 \n",
"5 0.086043 \n",
"6 0.209454 \n",
"7 0.116369 \n",
"8 0.174541 \n",
"9 0.110144 \n",
"10 0.128491 \n",
"11 0.082607 \n",
"12 0.052681 \n",
"13 0.126430 \n",
"14 0.084286 \n",
"15 0.094389 \n",
"16 0.132140 \n",
"17 0.075493 \n",
"18 0.119324 \n",
"19 0.088097 \n",
"20 0.058713 \n",
"Comparison by Variety:\n",
" Avg Olive Production (kg/ha) Avg Oil Production (L/ha) \\\n",
"Variety \n",
"nocellara_delletna 13696.683690 2990.507461 \n",
"leccino 15971.162702 3138.439782 \n",
"frantoio 19648.631813 4826.360700 \n",
"coratina 15974.164423 4098.136472 \n",
"taggiasca 11412.636779 2305.011278 \n",
"pendolino 14617.432649 2633.129635 \n",
"moraiolo 13232.961913 2889.399172 \n",
"\n",
" Avg Water Need (m³/ha) Oil Efficiency (L/kg) \\\n",
"Variety \n",
"nocellara_delletna 33064.983905 0.218338 \n",
"leccino 24994.676451 0.196507 \n",
"frantoio 28932.932409 0.245633 \n",
"coratina 38262.995517 0.256548 \n",
"taggiasca 26252.184893 0.201970 \n",
"pendolino 26153.461822 0.180136 \n",
"moraiolo 32578.228327 0.218349 \n",
"\n",
" Water Efficiency (L oil/m³ water) \n",
"Variety \n",
"nocellara_delletna 0.090443 \n",
"leccino 0.125564 \n",
"frantoio 0.166812 \n",
"coratina 0.107104 \n",
"taggiasca 0.087803 \n",
"pendolino 0.100680 \n",
"moraiolo 0.088691 \n",
"\n",
"Best Varieties by Water Efficiency:\n",
" Variety Avg Olive Production (kg/ha) \\\n",
"2 frantoio 19648.631813 \n",
"1 leccino 15971.162702 \n",
"3 coratina 15974.164423 \n",
"5 pendolino 14617.432649 \n",
"0 nocellara_delletna 13696.683690 \n",
"\n",
" Avg Oil Production (L/ha) Avg Water Need (m³/ha) Oil Efficiency (L/kg) \\\n",
"2 4826.360700 28932.932409 0.245633 \n",
"1 3138.439782 24994.676451 0.196507 \n",
"3 4098.136472 38262.995517 0.256548 \n",
"5 2633.129635 26153.461822 0.180136 \n",
"0 2990.507461 33064.983905 0.218338 \n",
"\n",
" Water Efficiency (L oil/m³ water) \n",
"2 0.166812 \n",
"1 0.125564 \n",
"3 0.107104 \n",
"5 0.100680 \n",
"0 0.090443 \n"
]
}
],
"source": [
"simulated_data = pd.read_parquet(f\"{data_dir}olive_training_dataset.parquet\")\n",
"olive_varieties = pd.read_parquet(f\"{data_dir}olive_varieties.parquet\")\n",
"# Esecuzione dell'analisi\n",
"comparison_data = prepare_comparison_data(simulated_data, olive_varieties)\n",
"\n",
"# Genera i grafici\n",
"plot_variety_comparison(comparison_data, 'Avg Olive Production (kg/ha)')\n",
"plot_variety_comparison(comparison_data, 'Avg Oil Production (L/ha)')\n",
"plot_variety_comparison(comparison_data, 'Avg Water Need (m³/ha)')\n",
"plot_variety_comparison(comparison_data, 'Oil Efficiency (L/kg)')\n",
"plot_variety_comparison(comparison_data, 'Water Efficiency (L oil/m³ water)')\n",
"plot_efficiency_vs_production(comparison_data)\n",
"plot_water_efficiency_vs_production(comparison_data)\n",
"plot_water_need_vs_oil_production(comparison_data)\n",
"\n",
"# Analisi per tecnica\n",
"technique_data = analyze_by_technique(simulated_data, olive_varieties)\n",
"\n",
"print(technique_data)\n",
"\n",
"# Stampa un sommario statistico\n",
"print(\"Comparison by Variety:\")\n",
"print(comparison_data.set_index('Variety'))\n",
"print(\"\\nBest Varieties by Water Efficiency:\")\n",
"print(comparison_data.sort_values('Water Efficiency (L oil/m³ water)', ascending=False).head())"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "bbe87b415168368",
"metadata": {},
"outputs": [],
"source": [
"def prepare_transformer_data(df, olive_varieties_df):\n",
" # Crea una copia del DataFrame per evitare modifiche all'originale\n",
" df = df.copy()\n",
"\n",
" # Ordina per zona e anno\n",
" df = df.sort_values(['zone', 'year'])\n",
"\n",
" # Definisci le feature\n",
" temporal_features = ['temp_mean', 'precip_sum', 'solar_energy_sum']\n",
" static_features = ['ha'] # Feature statiche base\n",
" target_features = ['olive_prod', 'min_oil_prod', 'max_oil_prod', 'avg_oil_prod', 'total_water_need']\n",
"\n",
" # Ottieni le varietà pulite\n",
" all_varieties = olive_varieties_df['Varietà di Olive'].unique()\n",
" varieties = [clean_column_name(variety) for variety in all_varieties]\n",
"\n",
" # Crea la struttura delle feature per ogni varietà\n",
" variety_features = [\n",
" 'tech', 'pct', 'prod_t_ha', 'oil_prod_t_ha', 'oil_prod_l_ha',\n",
" 'min_yield_pct', 'max_yield_pct', 'min_oil_prod_l_ha', 'max_oil_prod_l_ha',\n",
" 'avg_oil_prod_l_ha', 'l_per_t', 'min_l_per_t', 'max_l_per_t', 'avg_l_per_t'\n",
" ]\n",
"\n",
" # Prepara dizionari per le nuove colonne\n",
" new_columns = {}\n",
"\n",
" # Prepara le feature per ogni varietà\n",
" for variety in varieties:\n",
" # Feature esistenti\n",
" for feature in variety_features:\n",
" col_name = f\"{variety}_{feature}\"\n",
" if col_name in df.columns:\n",
" if feature != 'tech': # Non includere la colonna tech direttamente\n",
" static_features.append(col_name)\n",
"\n",
" # Feature binarie per le tecniche di coltivazione\n",
" for technique in ['tradizionale', 'intensiva', 'superintensiva']:\n",
" col_name = f\"{variety}_{technique}\"\n",
" new_columns[col_name] = df[f\"{variety}_tech\"].notna() & (\n",
" df[f\"{variety}_tech\"].str.lower() == technique\n",
" ).fillna(False)\n",
" static_features.append(col_name)\n",
"\n",
" # Aggiungi tutte le nuove colonne in una volta sola\n",
" new_df = pd.concat([df] + [pd.Series(v, name=k) for k, v in new_columns.items()], axis=1)\n",
"\n",
" # Ordiniamo per zona e anno per mantenere la continuità temporale\n",
" df_sorted = new_df.sort_values(['zone', 'year'])\n",
"\n",
" # Definiamo la dimensione della finestra temporale\n",
" window_size = 41\n",
"\n",
" # Liste per raccogliere i dati\n",
" temporal_sequences = []\n",
" static_features_list = []\n",
" targets_list = []\n",
"\n",
" # Iteriamo per ogni zona\n",
" for zone in df_sorted['zone'].unique():\n",
" zone_data = df_sorted[df_sorted['zone'] == zone].reset_index(drop=True)\n",
"\n",
" if len(zone_data) >= window_size: # Verifichiamo che ci siano abbastanza dati\n",
" # Creiamo sequenze temporali scorrevoli\n",
" for i in range(len(zone_data) - window_size + 1):\n",
" # Sequenza temporale\n",
" temporal_window = zone_data.iloc[i:i + window_size][temporal_features].values\n",
" # Verifichiamo che non ci siano valori NaN\n",
" if not np.isnan(temporal_window).any():\n",
" temporal_sequences.append(temporal_window)\n",
"\n",
" # Feature statiche (prendiamo quelle dell'ultimo timestep della finestra)\n",
" static_features_list.append(zone_data.iloc[i + window_size - 1][static_features].values)\n",
"\n",
" # Target (prendiamo quelli dell'ultimo timestep della finestra)\n",
" targets_list.append(zone_data.iloc[i + window_size - 1][target_features].values)\n",
"\n",
" # Convertiamo in array numpy\n",
" X_temporal = np.array(temporal_sequences)\n",
" X_static = np.array(static_features_list)\n",
" y = np.array(targets_list)\n",
"\n",
" print(f\"Dataset completo - Temporal: {X_temporal.shape}, Static: {X_static.shape}, Target: {y.shape}\")\n",
"\n",
" # Split dei dati (usando indici casuali per una migliore distribuzione)\n",
" indices = np.random.permutation(len(X_temporal))\n",
"\n",
" #train_idx = int(len(indices) * 0.7) # 70% training\n",
" #val_idx = int(len(indices) * 0.85) # 15% validation\n",
" # Il resto rimane 15% test\n",
"\n",
" train_idx = int(len(indices) * 0.65) # 65% training\n",
" val_idx = int(len(indices) * 0.85) # 20% validation\n",
" # Il resto rimane 15% test\n",
"\n",
" #train_idx = int(len(indices) * 0.60) # 60% training\n",
" #val_idx = int(len(indices) * 0.85) # 25% validation\n",
" # Il resto rimane 15% test\n",
"\n",
" train_indices = indices[:train_idx]\n",
" val_indices = indices[train_idx:val_idx]\n",
" test_indices = indices[val_idx:]\n",
"\n",
" # Split dei dati\n",
" X_temporal_train = X_temporal[train_indices]\n",
" X_temporal_val = X_temporal[val_indices]\n",
" X_temporal_test = X_temporal[test_indices]\n",
"\n",
" X_static_train = X_static[train_indices]\n",
" X_static_val = X_static[val_indices]\n",
" X_static_test = X_static[test_indices]\n",
"\n",
" y_train = y[train_indices]\n",
" y_val = y[val_indices]\n",
" y_test = y[test_indices]\n",
"\n",
" # Standardizzazione\n",
" scaler_temporal = StandardScaler()\n",
" scaler_static = StandardScaler()\n",
" scaler_y = StandardScaler()\n",
"\n",
" # Standardizzazione dei dati temporali\n",
" X_temporal_train = scaler_temporal.fit_transform(X_temporal_train.reshape(-1, len(temporal_features))).reshape(X_temporal_train.shape)\n",
" X_temporal_val = scaler_temporal.transform(X_temporal_val.reshape(-1, len(temporal_features))).reshape(X_temporal_val.shape)\n",
" X_temporal_test = scaler_temporal.transform(X_temporal_test.reshape(-1, len(temporal_features))).reshape(X_temporal_test.shape)\n",
"\n",
" # Standardizzazione dei dati statici\n",
" X_static_train = scaler_static.fit_transform(X_static_train)\n",
" X_static_val = scaler_static.transform(X_static_val)\n",
" X_static_test = scaler_static.transform(X_static_test)\n",
"\n",
" # Standardizzazione dei target\n",
" y_train = scaler_y.fit_transform(y_train)\n",
" y_val = scaler_y.transform(y_val)\n",
" y_test = scaler_y.transform(y_test)\n",
"\n",
" print(\"\\nShape dopo lo split e standardizzazione:\")\n",
" print(f\"Train - Temporal: {X_temporal_train.shape}, Static: {X_static_train.shape}, Target: {y_train.shape}\")\n",
" print(f\"Val - Temporal: {X_temporal_val.shape}, Static: {X_static_val.shape}, Target: {y_val.shape}\")\n",
" print(f\"Test - Temporal: {X_temporal_test.shape}, Static: {X_static_test.shape}, Target: {y_test.shape}\")\n",
"\n",
" # Prepara i dizionari di input\n",
" train_data = {'temporal': X_temporal_train, 'static': X_static_train}\n",
" val_data = {'temporal': X_temporal_val, 'static': X_static_val}\n",
" test_data = {'temporal': X_temporal_test, 'static': X_static_test}\n",
"\n",
" joblib.dump(scaler_temporal, os.path.join(base_project_dir, f'{execute_name}_scaler_temporal.joblib'))\n",
" joblib.dump(scaler_static, os.path.join(base_project_dir, f'{execute_name}_scaler_static.joblib'))\n",
" joblib.dump(scaler_y, os.path.join(base_project_dir, f'{execute_name}_scaler_y.joblib'))\n",
"\n",
" return (train_data, y_train), (val_data, y_val), (test_data, y_test), (scaler_temporal, scaler_static, scaler_y)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "9c4d5f0f3fafdc2d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dataset completo - Temporal: (3920000, 41, 3), Static: (3920000, 113), Target: (3920000, 5)\n",
"\n",
"Shape dopo lo split e standardizzazione:\n",
"Train - Temporal: (2548000, 41, 3), Static: (2548000, 113), Target: (2548000, 5)\n",
"Val - Temporal: (784000, 41, 3), Static: (784000, 113), Target: (784000, 5)\n",
"Test - Temporal: (588000, 41, 3), Static: (588000, 113), Target: (588000, 5)\n",
"Temporal data shape: (2548000, 41, 3)\n",
"Static data shape: (2548000, 113)\n",
"Target shape: (2548000, 5)\n"
]
}
],
"source": [
"simulated_data = pd.read_parquet(f\"{data_dir}olive_training_dataset.parquet\")\n",
"olive_varieties = pd.read_parquet(f\"{data_dir}olive_varieties.parquet\")\n",
"\n",
"(train_data, train_targets), (val_data, val_targets), (test_data, test_targets), scalers = prepare_transformer_data(simulated_data, olive_varieties)\n",
"\n",
"scaler_temporal, scaler_static, scaler_y = scalers\n",
"\n",
"print(\"Temporal data shape:\", train_data['temporal'].shape)\n",
"print(\"Static data shape:\", train_data['static'].shape)\n",
"print(\"Target shape:\", train_targets.shape)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "604c952c7195f40c",
"metadata": {},
"outputs": [],
"source": [
"@keras.saving.register_keras_serializable()\n",
"class DataAugmentation(tf.keras.layers.Layer):\n",
" \"\"\"Custom layer per l'augmentation dei dati\"\"\"\n",
"\n",
" def __init__(self, noise_stddev=0.03, **kwargs):\n",
" super().__init__(**kwargs)\n",
" self.noise_stddev = noise_stddev\n",
"\n",
" def call(self, inputs, training=None):\n",
" if training:\n",
" return inputs + tf.random.normal(\n",
" shape=tf.shape(inputs),\n",
" mean=0.0,\n",
" stddev=self.noise_stddev\n",
" )\n",
" return inputs\n",
"\n",
" def get_config(self):\n",
" config = super().get_config()\n",
" config.update({\"noise_stddev\": self.noise_stddev})\n",
" return config\n",
"\n",
"\n",
"@keras.saving.register_keras_serializable()\n",
"class PositionalEncoding(tf.keras.layers.Layer):\n",
" \"\"\"Custom layer per l'encoding posizionale\"\"\"\n",
"\n",
" def __init__(self, d_model, **kwargs):\n",
" super().__init__(**kwargs)\n",
" self.d_model = d_model\n",
"\n",
" def build(self, input_shape):\n",
" _, seq_length, _ = input_shape\n",
"\n",
" # Crea la matrice di encoding posizionale\n",
" position = tf.range(seq_length, dtype=tf.float32)[:, tf.newaxis]\n",
" div_term = tf.exp(\n",
" tf.range(0, self.d_model, 2, dtype=tf.float32) *\n",
" (-tf.math.log(10000.0) / self.d_model)\n",
" )\n",
"\n",
" # Calcola sin e cos\n",
" pos_encoding = tf.zeros((1, seq_length, self.d_model))\n",
" pos_encoding_even = tf.sin(position * div_term)\n",
" pos_encoding_odd = tf.cos(position * div_term)\n",
"\n",
" # Assegna i valori alle posizioni pari e dispari\n",
" pos_encoding = tf.concat(\n",
" [tf.expand_dims(pos_encoding_even, -1),\n",
" tf.expand_dims(pos_encoding_odd, -1)],\n",
" axis=-1\n",
" )\n",
" pos_encoding = tf.reshape(pos_encoding, (1, seq_length, -1))\n",
" pos_encoding = pos_encoding[:, :, :self.d_model]\n",
"\n",
" # Salva l'encoding come peso non trainabile\n",
" self.pos_encoding = self.add_weight(\n",
" shape=(1, seq_length, self.d_model),\n",
" initializer=tf.keras.initializers.Constant(pos_encoding),\n",
" trainable=False,\n",
" name='positional_encoding'\n",
" )\n",
"\n",
" super().build(input_shape)\n",
"\n",
" def call(self, inputs):\n",
" # Broadcast l'encoding posizionale sul batch\n",
" batch_size = tf.shape(inputs)[0]\n",
" pos_encoding_tiled = tf.tile(self.pos_encoding, [batch_size, 1, 1])\n",
" return inputs + pos_encoding_tiled\n",
"\n",
" def get_config(self):\n",
" config = super().get_config()\n",
" config.update({\"d_model\": self.d_model})\n",
" return config\n",
"\n",
"\n",
"@keras.saving.register_keras_serializable()\n",
"class WarmUpLearningRateSchedule(tf.keras.optimizers.schedules.LearningRateSchedule):\n",
" \"\"\"Custom learning rate schedule with linear warmup and exponential decay.\"\"\"\n",
"\n",
" def __init__(self, initial_learning_rate=1e-3, warmup_steps=500, decay_steps=5000):\n",
" super().__init__()\n",
" self.initial_learning_rate = initial_learning_rate\n",
" self.warmup_steps = warmup_steps\n",
" self.decay_steps = decay_steps\n",
"\n",
" def __call__(self, step):\n",
" warmup_pct = tf.cast(step, tf.float32) / self.warmup_steps\n",
" warmup_lr = self.initial_learning_rate * warmup_pct\n",
" decay_factor = tf.pow(0.1, tf.cast(step, tf.float32) / self.decay_steps)\n",
" decayed_lr = self.initial_learning_rate * decay_factor\n",
" return tf.where(step < self.warmup_steps, warmup_lr, decayed_lr)\n",
"\n",
" def get_config(self):\n",
" return {\n",
" 'initial_learning_rate': self.initial_learning_rate,\n",
" 'warmup_steps': self.warmup_steps,\n",
" 'decay_steps': self.decay_steps\n",
" }\n",
"\n",
"\n",
"def create_olive_oil_transformer(temporal_shape, static_shape, num_outputs,\n",
" d_model=128, num_heads=8, ff_dim=256,\n",
" num_transformer_blocks=4, mlp_units=None,\n",
" dropout=0.2):\n",
" \"\"\"\n",
" Crea un transformer per la predizione della produzione di olio d'oliva.\n",
" \"\"\"\n",
" # Input layers\n",
" if mlp_units is None:\n",
" mlp_units = [256, 128, 64]\n",
"\n",
" temporal_input = tf.keras.layers.Input(shape=temporal_shape, name='temporal')\n",
" static_input = tf.keras.layers.Input(shape=static_shape, name='static')\n",
"\n",
" # === TEMPORAL PATH ===\n",
" x = tf.keras.layers.LayerNormalization(epsilon=1e-6)(temporal_input)\n",
" x = DataAugmentation()(x)\n",
"\n",
" # Temporal projection\n",
" x = tf.keras.layers.Dense(\n",
" d_model // 2,\n",
" activation='swish',\n",
" kernel_regularizer=tf.keras.regularizers.l2(1e-5)\n",
" )(x)\n",
" x = tf.keras.layers.Dropout(dropout)(x)\n",
" x = tf.keras.layers.Dense(\n",
" d_model,\n",
" activation='swish',\n",
" kernel_regularizer=tf.keras.regularizers.l2(1e-5)\n",
" )(x)\n",
"\n",
" # Positional encoding\n",
" x = PositionalEncoding(d_model)(x)\n",
"\n",
" # Transformer blocks\n",
" skip_connection = x\n",
" for _ in range(num_transformer_blocks):\n",
" # Self-attention\n",
" attention_output = tf.keras.layers.MultiHeadAttention(\n",
" num_heads=num_heads,\n",
" key_dim=d_model // num_heads,\n",
" value_dim=d_model // num_heads\n",
" )(x, x)\n",
" attention_output = tf.keras.layers.Dropout(dropout)(attention_output)\n",
"\n",
" # Residual connection con pesi addestrabili\n",
" residual_weights = tf.keras.layers.Dense(d_model, activation='sigmoid')(x)\n",
" x = tfa.layers.StochasticDepth(survival_probability=0.3)([x, residual_weights * attention_output])\n",
" x = tf.keras.layers.LayerNormalization(epsilon=1e-6)(x)\n",
"\n",
" # Feed-forward network\n",
" ffn = tf.keras.layers.Dense(ff_dim, activation=\"swish\")(x)\n",
" ffn = tf.keras.layers.Dropout(dropout)(ffn)\n",
" ffn = tf.keras.layers.Dense(d_model)(ffn)\n",
" ffn = tf.keras.layers.Dropout(dropout)(ffn)\n",
"\n",
" # Second residual connection\n",
" x = tfa.layers.StochasticDepth()([x, ffn])\n",
" x = tf.keras.layers.LayerNormalization(epsilon=1e-6)(x)\n",
"\n",
" # Add final skip connection\n",
" x = tfa.layers.StochasticDepth(survival_probability=0.5)([x, skip_connection])\n",
"\n",
" # Temporal pooling\n",
" attention_pooled = tf.keras.layers.MultiHeadAttention(\n",
" num_heads=num_heads,\n",
" key_dim=d_model // 4\n",
" )(x, x)\n",
" attention_pooled = tf.keras.layers.GlobalAveragePooling1D()(attention_pooled)\n",
"\n",
" # Additional pooling operations\n",
" avg_pooled = tf.keras.layers.GlobalAveragePooling1D()(x)\n",
" max_pooled = tf.keras.layers.GlobalMaxPooling1D()(x)\n",
"\n",
" # Combine pooling results\n",
" temporal_features = tf.keras.layers.Concatenate()(\n",
" [attention_pooled, avg_pooled, max_pooled]\n",
" )\n",
"\n",
" # === STATIC PATH ===\n",
" static_features = tf.keras.layers.LayerNormalization(epsilon=1e-6)(static_input)\n",
" for units in [256, 128, 64]:\n",
" static_features = tf.keras.layers.Dense(\n",
" units,\n",
" activation='swish',\n",
" kernel_regularizer=tf.keras.regularizers.l2(1e-5)\n",
" )(static_features)\n",
" static_features = tf.keras.layers.Dropout(dropout)(static_features)\n",
"\n",
" # === FEATURE FUSION ===\n",
" combined = tf.keras.layers.Concatenate()([temporal_features, static_features])\n",
"\n",
" # === MLP HEAD ===\n",
" x = combined\n",
" for units in mlp_units:\n",
" x = tf.keras.layers.BatchNormalization()(x)\n",
" x = tf.keras.layers.Dense(\n",
" units,\n",
" activation=\"swish\",\n",
" kernel_regularizer=tf.keras.regularizers.l2(1e-5)\n",
" )(x)\n",
" x = tf.keras.layers.Dropout(dropout)(x)\n",
"\n",
" # Output layer\n",
" outputs = tf.keras.layers.Dense(\n",
" num_outputs,\n",
" activation='linear',\n",
" kernel_regularizer=tf.keras.regularizers.l2(1e-5)\n",
" )(x)\n",
"\n",
" # Create model\n",
" model = tf.keras.Model(\n",
" inputs={'temporal': temporal_input, 'static': static_input},\n",
" outputs=outputs,\n",
" name='OilTransformer'\n",
" )\n",
"\n",
" return model\n",
"\n",
"\n",
"def create_transformer_callbacks(target_names, val_data, val_targets):\n",
" \"\"\"\n",
" Crea i callbacks per il training del modello.\n",
" \n",
" Parameters:\n",
" -----------\n",
" target_names : list\n",
" Lista dei nomi dei target per il monitoraggio specifico\n",
" val_data : dict\n",
" Dati di validazione\n",
" val_targets : array\n",
" Target di validazione\n",
" \n",
" Returns:\n",
" --------\n",
" list\n",
" Lista dei callbacks configurati\n",
" \"\"\"\n",
"\n",
" # Custom Metric per target specifici\n",
" class TargetSpecificMetric(tf.keras.callbacks.Callback):\n",
" def __init__(self, validation_data, target_names):\n",
" super().__init__()\n",
" self.validation_data = validation_data\n",
" self.target_names = target_names\n",
"\n",
" def on_epoch_end(self, epoch, logs={}):\n",
" x_val, y_val = self.validation_data\n",
" y_pred = self.model.predict(x_val, verbose=0)\n",
"\n",
" for i, name in enumerate(self.target_names):\n",
" mae = np.mean(np.abs(y_val[:, i] - y_pred[:, i]))\n",
" logs[f'val_{name}_mae'] = mae\n",
"\n",
"\n",
" callbacks = [\n",
" # Early Stopping\n",
" tf.keras.callbacks.EarlyStopping(\n",
" monitor='val_loss',\n",
" patience=20,\n",
" restore_best_weights=True,\n",
" min_delta=0.0005,\n",
" mode='min'\n",
" ),\n",
"\n",
" # Model Checkpoint\n",
" tf.keras.callbacks.ModelCheckpoint(\n",
" filepath=f'{execute_name}_best_oil_model.h5',\n",
" monitor='val_loss',\n",
" save_best_only=True,\n",
" mode='min',\n",
" save_weights_only=True\n",
" ),\n",
"\n",
" # Metric per target specifici\n",
" TargetSpecificMetric(\n",
" validation_data=(val_data, val_targets),\n",
" target_names=target_names\n",
" ),\n",
"\n",
" # Reduce LR on Plateau\n",
" tf.keras.callbacks.ReduceLROnPlateau(\n",
" monitor='val_loss',\n",
" factor=0.5,\n",
" patience=10,\n",
" min_lr=1e-6,\n",
" verbose=1\n",
" ),\n",
"\n",
" # TensorBoard logging\n",
" tf.keras.callbacks.TensorBoard(\n",
" log_dir=f'./logs_{execute_name}',\n",
" histogram_freq=1,\n",
" write_graph=True,\n",
" update_freq='epoch'\n",
" )\n",
" ]\n",
"\n",
" return callbacks\n",
"\n",
"\n",
"def compile_model(model, learning_rate=1e-3):\n",
" \"\"\"\n",
" Compila il modello con le impostazioni standard.\n",
" \"\"\"\n",
" lr_schedule = WarmUpLearningRateSchedule(\n",
" initial_learning_rate=learning_rate,\n",
" warmup_steps=500,\n",
" decay_steps=5000\n",
" )\n",
"\n",
" model.compile(\n",
" optimizer=tf.keras.optimizers.AdamW(\n",
" learning_rate=lr_schedule,\n",
" weight_decay=0.01\n",
" ),\n",
" loss=tf.keras.losses.Huber(),\n",
" metrics=['mae']\n",
" )\n",
"\n",
" return model\n",
"\n",
"\n",
"def setup_transformer_training(train_data, train_targets, val_data, val_targets):\n",
" \"\"\"\n",
" Configura e prepara il transformer con dimensioni dinamiche basate sui dati.\n",
" \"\"\"\n",
" # Estrai le shape dai dati\n",
" temporal_shape = (train_data['temporal'].shape[1], train_data['temporal'].shape[2])\n",
" static_shape = (train_data['static'].shape[1],)\n",
" num_outputs = train_targets.shape[1]\n",
"\n",
" print(f\"Shape rilevate:\")\n",
" print(f\"- Temporal shape: {temporal_shape}\")\n",
" print(f\"- Static shape: {static_shape}\")\n",
" print(f\"- Numero di output: {num_outputs}\")\n",
"\n",
" # Target names basati sul numero di output\n",
" target_names = ['olive_prod', 'min_oil_prod', 'max_oil_prod', 'avg_oil_prod', 'total_water_need']\n",
"\n",
" # Assicurati che il numero di target names corrisponda al numero di output\n",
" assert len(target_names) == num_outputs, \\\n",
" f\"Il numero di target names ({len(target_names)}) non corrisponde al numero di output ({num_outputs})\"\n",
"\n",
" # Crea il modello con le dimensioni rilevate\n",
" model = create_olive_oil_transformer(\n",
" temporal_shape=temporal_shape,\n",
" static_shape=static_shape,\n",
" num_outputs=num_outputs\n",
" )\n",
"\n",
" # Compila il modello\n",
" model = compile_model(model)\n",
"\n",
" # Crea i callbacks\n",
" callbacks = create_transformer_callbacks(target_names, val_data, val_targets)\n",
"\n",
" return model, callbacks, target_names\n",
"\n",
"\n",
"def train_transformer(train_data, train_targets, val_data, val_targets, epochs=150, batch_size=64, save_name='final_model'):\n",
" \"\"\"\n",
" Funzione principale per l'addestramento del transformer con ottimizzazioni.\n",
" \"\"\"\n",
" # Conversione dei dati in tf.data.Dataset per una gestione più efficiente della memoria\n",
" train_dataset = tf.data.Dataset.from_tensor_slices((train_data, train_targets))\\\n",
" .cache()\\\n",
" .shuffle(buffer_size=1024)\\\n",
" .batch(batch_size)\\\n",
" .prefetch(tf.data.AUTOTUNE)\n",
"\n",
" val_dataset = tf.data.Dataset.from_tensor_slices((val_data, val_targets))\\\n",
" .cache()\\\n",
" .batch(batch_size)\\\n",
" .prefetch(tf.data.AUTOTUNE)\n",
"\n",
" # Setup del modello\n",
" strategy = tf.distribute.MirroredStrategy() if len(tf.config.list_physical_devices('GPU')) > 1 else tf.distribute.get_strategy()\n",
" \n",
" with strategy.scope():\n",
" model, callbacks, target_names = setup_transformer_training(\n",
" train_data, train_targets, val_data, val_targets\n",
" )\n",
"\n",
" # Mostra il summary del modello\n",
" model.summary()\n",
" \n",
" try:\n",
" keras.utils.plot_model(model, f\"{execute_name}_{save_name}.png\", show_shapes=True)\n",
" except Exception as e:\n",
" print(f\"Warning: Could not create model plot: {e}\")\n",
"\n",
" # Training con gestione degli errori\n",
" try:\n",
" history = model.fit(\n",
" train_dataset,\n",
" validation_data=val_dataset,\n",
" epochs=epochs,\n",
" callbacks=callbacks,\n",
" verbose=1,\n",
" workers=4,\n",
" use_multiprocessing=True\n",
" )\n",
" except tf.errors.ResourceExhaustedError:\n",
" print(\"Memoria GPU esaurita, riprovo con batch size più piccolo...\")\n",
" # Riprova con batch size più piccolo\n",
" batch_size = batch_size // 2\n",
" train_dataset = train_dataset.unbatch().batch(batch_size)\n",
" val_dataset = val_dataset.unbatch().batch(batch_size)\n",
" history = model.fit(\n",
" train_dataset,\n",
" validation_data=val_dataset,\n",
" epochs=epochs,\n",
" callbacks=callbacks,\n",
" verbose=1\n",
" )\n",
"\n",
" # Salva il modello finale\n",
" try:\n",
" save_path = f'{execute_name}_{save_name}.keras'\n",
" model.save(save_path, save_format='keras')\n",
" \n",
" os.makedirs(f'{execute_name}/weights', exist_ok=True)\n",
" model.save_weights(f'{execute_name}/weights')\n",
" print(f\"\\nModello salvato in: {save_path}\")\n",
" except Exception as e:\n",
" print(f\"Warning: Could not save model: {e}\")\n",
"\n",
" return model, history"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "35490e902e494c4a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Shape rilevate:\n",
"- Temporal shape: (41, 3)\n",
"- Static shape: (113,)\n",
"- Numero di output: 5\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2024-12-07 08:38:26.936272: I tensorflow/tsl/platform/default/subprocess.cc:304] Start cannot spawn child process: No such file or directory\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Model: \"OilTransformer\"\n",
"__________________________________________________________________________________________________\n",
" Layer (type) Output Shape Param # Connected to \n",
"==================================================================================================\n",
" temporal (InputLayer) [(None, 41, 3)] 0 [] \n",
" \n",
" layer_normalization (Layer (None, 41, 3) 6 ['temporal[0][0]'] \n",
" Normalization) \n",
" \n",
" data_augmentation (DataAug (None, 41, 3) 0 ['layer_normalization[0][0]'] \n",
" mentation) \n",
" \n",
" dense (Dense) (None, 41, 64) 256 ['data_augmentation[0][0]'] \n",
" \n",
" dropout (Dropout) (None, 41, 64) 0 ['dense[0][0]'] \n",
" \n",
" dense_1 (Dense) (None, 41, 128) 8320 ['dropout[0][0]'] \n",
" \n",
" positional_encoding (Posit (None, 41, 128) 5248 ['dense_1[0][0]'] \n",
" ionalEncoding) \n",
" \n",
" multi_head_attention (Mult (None, 41, 128) 66048 ['positional_encoding[0][0]', \n",
" iHeadAttention) 'positional_encoding[0][0]'] \n",
" \n",
" dense_2 (Dense) (None, 41, 128) 16512 ['positional_encoding[0][0]'] \n",
" \n",
" dropout_1 (Dropout) (None, 41, 128) 0 ['multi_head_attention[0][0]']\n",
" \n",
" tf.math.multiply (TFOpLamb (None, 41, 128) 0 ['dense_2[0][0]', \n",
" da) 'dropout_1[0][0]'] \n",
" \n",
" stochastic_depth (Stochast (None, 41, 128) 0 ['positional_encoding[0][0]', \n",
" icDepth) 'tf.math.multiply[0][0]'] \n",
" \n",
" layer_normalization_1 (Lay (None, 41, 128) 256 ['stochastic_depth[0][0]'] \n",
" erNormalization) \n",
" \n",
" dense_3 (Dense) (None, 41, 256) 33024 ['layer_normalization_1[0][0]'\n",
" ] \n",
" \n",
" dropout_2 (Dropout) (None, 41, 256) 0 ['dense_3[0][0]'] \n",
" \n",
" dense_4 (Dense) (None, 41, 128) 32896 ['dropout_2[0][0]'] \n",
" \n",
" dropout_3 (Dropout) (None, 41, 128) 0 ['dense_4[0][0]'] \n",
" \n",
" stochastic_depth_1 (Stocha (None, 41, 128) 0 ['layer_normalization_1[0][0]'\n",
" sticDepth) , 'dropout_3[0][0]'] \n",
" \n",
" layer_normalization_2 (Lay (None, 41, 128) 256 ['stochastic_depth_1[0][0]'] \n",
" erNormalization) \n",
" \n",
" multi_head_attention_1 (Mu (None, 41, 128) 66048 ['layer_normalization_2[0][0]'\n",
" ltiHeadAttention) , 'layer_normalization_2[0][0]\n",
" '] \n",
" \n",
" dense_5 (Dense) (None, 41, 128) 16512 ['layer_normalization_2[0][0]'\n",
" ] \n",
" \n",
" dropout_4 (Dropout) (None, 41, 128) 0 ['multi_head_attention_1[0][0]\n",
" '] \n",
" \n",
" tf.math.multiply_1 (TFOpLa (None, 41, 128) 0 ['dense_5[0][0]', \n",
" mbda) 'dropout_4[0][0]'] \n",
" \n",
" stochastic_depth_2 (Stocha (None, 41, 128) 0 ['layer_normalization_2[0][0]'\n",
" sticDepth) , 'tf.math.multiply_1[0][0]'] \n",
" \n",
" layer_normalization_3 (Lay (None, 41, 128) 256 ['stochastic_depth_2[0][0]'] \n",
" erNormalization) \n",
" \n",
" dense_6 (Dense) (None, 41, 256) 33024 ['layer_normalization_3[0][0]'\n",
" ] \n",
" \n",
" dropout_5 (Dropout) (None, 41, 256) 0 ['dense_6[0][0]'] \n",
" \n",
" dense_7 (Dense) (None, 41, 128) 32896 ['dropout_5[0][0]'] \n",
" \n",
" dropout_6 (Dropout) (None, 41, 128) 0 ['dense_7[0][0]'] \n",
" \n",
" stochastic_depth_3 (Stocha (None, 41, 128) 0 ['layer_normalization_3[0][0]'\n",
" sticDepth) , 'dropout_6[0][0]'] \n",
" \n",
" layer_normalization_4 (Lay (None, 41, 128) 256 ['stochastic_depth_3[0][0]'] \n",
" erNormalization) \n",
" \n",
" multi_head_attention_2 (Mu (None, 41, 128) 66048 ['layer_normalization_4[0][0]'\n",
" ltiHeadAttention) , 'layer_normalization_4[0][0]\n",
" '] \n",
" \n",
" dense_8 (Dense) (None, 41, 128) 16512 ['layer_normalization_4[0][0]'\n",
" ] \n",
" \n",
" dropout_7 (Dropout) (None, 41, 128) 0 ['multi_head_attention_2[0][0]\n",
" '] \n",
" \n",
" tf.math.multiply_2 (TFOpLa (None, 41, 128) 0 ['dense_8[0][0]', \n",
" mbda) 'dropout_7[0][0]'] \n",
" \n",
" stochastic_depth_4 (Stocha (None, 41, 128) 0 ['layer_normalization_4[0][0]'\n",
" sticDepth) , 'tf.math.multiply_2[0][0]'] \n",
" \n",
" layer_normalization_5 (Lay (None, 41, 128) 256 ['stochastic_depth_4[0][0]'] \n",
" erNormalization) \n",
" \n",
" dense_9 (Dense) (None, 41, 256) 33024 ['layer_normalization_5[0][0]'\n",
" ] \n",
" \n",
" dropout_8 (Dropout) (None, 41, 256) 0 ['dense_9[0][0]'] \n",
" \n",
" dense_10 (Dense) (None, 41, 128) 32896 ['dropout_8[0][0]'] \n",
" \n",
" dropout_9 (Dropout) (None, 41, 128) 0 ['dense_10[0][0]'] \n",
" \n",
" stochastic_depth_5 (Stocha (None, 41, 128) 0 ['layer_normalization_5[0][0]'\n",
" sticDepth) , 'dropout_9[0][0]'] \n",
" \n",
" layer_normalization_6 (Lay (None, 41, 128) 256 ['stochastic_depth_5[0][0]'] \n",
" erNormalization) \n",
" \n",
" multi_head_attention_3 (Mu (None, 41, 128) 66048 ['layer_normalization_6[0][0]'\n",
" ltiHeadAttention) , 'layer_normalization_6[0][0]\n",
" '] \n",
" \n",
" dense_11 (Dense) (None, 41, 128) 16512 ['layer_normalization_6[0][0]'\n",
" ] \n",
" \n",
" dropout_10 (Dropout) (None, 41, 128) 0 ['multi_head_attention_3[0][0]\n",
" '] \n",
" \n",
" tf.math.multiply_3 (TFOpLa (None, 41, 128) 0 ['dense_11[0][0]', \n",
" mbda) 'dropout_10[0][0]'] \n",
" \n",
" stochastic_depth_6 (Stocha (None, 41, 128) 0 ['layer_normalization_6[0][0]'\n",
" sticDepth) , 'tf.math.multiply_3[0][0]'] \n",
" \n",
" layer_normalization_7 (Lay (None, 41, 128) 256 ['stochastic_depth_6[0][0]'] \n",
" erNormalization) \n",
" \n",
" dense_12 (Dense) (None, 41, 256) 33024 ['layer_normalization_7[0][0]'\n",
" ] \n",
" \n",
" dropout_11 (Dropout) (None, 41, 256) 0 ['dense_12[0][0]'] \n",
" \n",
" dense_13 (Dense) (None, 41, 128) 32896 ['dropout_11[0][0]'] \n",
" \n",
" static (InputLayer) [(None, 113)] 0 [] \n",
" \n",
" dropout_12 (Dropout) (None, 41, 128) 0 ['dense_13[0][0]'] \n",
" \n",
" layer_normalization_9 (Lay (None, 113) 226 ['static[0][0]'] \n",
" erNormalization) \n",
" \n",
" stochastic_depth_7 (Stocha (None, 41, 128) 0 ['layer_normalization_7[0][0]'\n",
" sticDepth) , 'dropout_12[0][0]'] \n",
" \n",
" dense_14 (Dense) (None, 256) 29184 ['layer_normalization_9[0][0]'\n",
" ] \n",
" \n",
" layer_normalization_8 (Lay (None, 41, 128) 256 ['stochastic_depth_7[0][0]'] \n",
" erNormalization) \n",
" \n",
" dropout_13 (Dropout) (None, 256) 0 ['dense_14[0][0]'] \n",
" \n",
" stochastic_depth_8 (Stocha (None, 41, 128) 0 ['layer_normalization_8[0][0]'\n",
" sticDepth) , 'positional_encoding[0][0]']\n",
" \n",
" dense_15 (Dense) (None, 128) 32896 ['dropout_13[0][0]'] \n",
" \n",
" multi_head_attention_4 (Mu (None, 41, 128) 131968 ['stochastic_depth_8[0][0]', \n",
" ltiHeadAttention) 'stochastic_depth_8[0][0]'] \n",
" \n",
" dropout_14 (Dropout) (None, 128) 0 ['dense_15[0][0]'] \n",
" \n",
" global_average_pooling1d ( (None, 128) 0 ['multi_head_attention_4[0][0]\n",
" GlobalAveragePooling1D) '] \n",
" \n",
" global_average_pooling1d_1 (None, 128) 0 ['stochastic_depth_8[0][0]'] \n",
" (GlobalAveragePooling1D) \n",
" \n",
" global_max_pooling1d (Glob (None, 128) 0 ['stochastic_depth_8[0][0]'] \n",
" alMaxPooling1D) \n",
" \n",
" dense_16 (Dense) (None, 64) 8256 ['dropout_14[0][0]'] \n",
" \n",
" concatenate (Concatenate) (None, 384) 0 ['global_average_pooling1d[0][\n",
" 0]', \n",
" 'global_average_pooling1d_1[0\n",
" ][0]', \n",
" 'global_max_pooling1d[0][0]']\n",
" \n",
" dropout_15 (Dropout) (None, 64) 0 ['dense_16[0][0]'] \n",
" \n",
" concatenate_1 (Concatenate (None, 448) 0 ['concatenate[0][0]', \n",
" ) 'dropout_15[0][0]'] \n",
" \n",
" batch_normalization (Batch (None, 448) 1792 ['concatenate_1[0][0]'] \n",
" Normalization) \n",
" \n",
" dense_17 (Dense) (None, 256) 114944 ['batch_normalization[0][0]'] \n",
" \n",
" dropout_16 (Dropout) (None, 256) 0 ['dense_17[0][0]'] \n",
" \n",
" batch_normalization_1 (Bat (None, 256) 1024 ['dropout_16[0][0]'] \n",
" chNormalization) \n",
" \n",
" dense_18 (Dense) (None, 128) 32896 ['batch_normalization_1[0][0]'\n",
" ] \n",
" \n",
" dropout_17 (Dropout) (None, 128) 0 ['dense_18[0][0]'] \n",
" \n",
" batch_normalization_2 (Bat (None, 128) 512 ['dropout_17[0][0]'] \n",
" chNormalization) \n",
" \n",
" dense_19 (Dense) (None, 64) 8256 ['batch_normalization_2[0][0]'\n",
" ] \n",
" \n",
" dropout_18 (Dropout) (None, 64) 0 ['dense_19[0][0]'] \n",
" \n",
" dense_20 (Dense) (None, 5) 325 ['dropout_18[0][0]'] \n",
" \n",
"==================================================================================================\n",
"Total params: 972077 (3.71 MB)\n",
"Trainable params: 965165 (3.68 MB)\n",
"Non-trainable params: 6912 (27.00 KB)\n",
"__________________________________________________________________________________________________\n",
"Epoch 1/150\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2024-12-07 08:38:44.061185: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x7ade632071d0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
"2024-12-07 08:38:44.061220: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): NVIDIA L40, Compute Capability 8.9\n",
"2024-12-07 08:38:44.066715: I tensorflow/compiler/mlir/tensorflow/utils/dump_mlir_util.cc:269] disabling MLIR crash reproducer, set env var `MLIR_CRASH_REPRODUCER_DIRECTORY` to enable.\n",
"2024-12-07 08:38:44.130163: I tensorflow/compiler/xla/stream_executor/cuda/cuda_dnn.cc:442] Loaded cuDNN version 8905\n",
"2024-12-07 08:38:44.261917: I ./tensorflow/compiler/jit/device_compiler.h:186] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" 5/4977 [..............................] - ETA: 3:14 - loss: 0.7255 - mae: 1.1227 WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0329s vs `on_train_batch_end` time: 0.0391s). Check your callbacks.\n",
"4977/4977 [==============================] - 329s 62ms/step - loss: 0.0547 - mae: 0.2020 - val_loss: 0.0149 - val_mae: 0.0886 - val_olive_prod_mae: 0.0985 - val_min_oil_prod_mae: 0.0962 - val_max_oil_prod_mae: 0.0947 - val_avg_oil_prod_mae: 0.0915 - val_total_water_need_mae: 0.0625 - lr: 1.0111e-04\n",
"Epoch 2/150\n",
"4977/4977 [==============================] - 297s 59ms/step - loss: 0.0254 - mae: 0.1444 - val_loss: 0.0135 - val_mae: 0.0853 - val_olive_prod_mae: 0.0954 - val_min_oil_prod_mae: 0.0936 - val_max_oil_prod_mae: 0.0932 - val_avg_oil_prod_mae: 0.0893 - val_total_water_need_mae: 0.0550 - lr: 1.0219e-05\n",
"Epoch 3/150\n",
"4977/4977 [==============================] - 295s 59ms/step - loss: 0.0245 - mae: 0.1423 - val_loss: 0.0133 - val_mae: 0.0847 - val_olive_prod_mae: 0.0942 - val_min_oil_prod_mae: 0.0933 - val_max_oil_prod_mae: 0.0927 - val_avg_oil_prod_mae: 0.0889 - val_total_water_need_mae: 0.0545 - lr: 1.0328e-06\n",
"Epoch 4/150\n",
"4977/4977 [==============================] - 302s 61ms/step - loss: 0.0244 - mae: 0.1421 - val_loss: 0.0133 - val_mae: 0.0849 - val_olive_prod_mae: 0.0942 - val_min_oil_prod_mae: 0.0932 - val_max_oil_prod_mae: 0.0927 - val_avg_oil_prod_mae: 0.0889 - val_total_water_need_mae: 0.0554 - lr: 1.0438e-07\n",
"Epoch 5/150\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2024-12-07 08:59:07.216568: W tensorflow/tsl/framework/bfc_allocator.cc:485] Allocator (GPU_0_bfc) ran out of memory trying to allocate 26.27MiB (rounded to 27541504)requested by op OilTransformer/multi_head_attention_3/einsum/Einsum\n",
"If the cause is memory fragmentation maybe the environment variable 'TF_GPU_ALLOCATOR=cuda_malloc_async' will improve the situation. \n",
"Current allocation summary follows.\n",
"Current allocation summary follows.\n",
"2024-12-07 08:59:07.216654: I tensorflow/tsl/framework/bfc_allocator.cc:1039] BFCAllocator dump for GPU_0_bfc\n",
"2024-12-07 08:59:07.216677: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (256): \tTotal Chunks: 197, Chunks in use: 196. 49.2KiB allocated for chunks. 49.0KiB in use in bin. 3.5KiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.216687: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (512): \tTotal Chunks: 171, Chunks in use: 166. 90.5KiB allocated for chunks. 87.5KiB in use in bin. 83.4KiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.216695: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (1024): \tTotal Chunks: 63, Chunks in use: 59. 75.2KiB allocated for chunks. 70.0KiB in use in bin. 66.5KiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.216702: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (2048): \tTotal Chunks: 6, Chunks in use: 3. 12.5KiB allocated for chunks. 6.0KiB in use in bin. 5.8KiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.216711: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (4096): \tTotal Chunks: 1, Chunks in use: 0. 4.0KiB allocated for chunks. 0B in use in bin. 0B client-requested in use in bin.\n",
"2024-12-07 08:59:07.216720: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (8192): \tTotal Chunks: 1, Chunks in use: 1. 10.0KiB allocated for chunks. 10.0KiB in use in bin. 10.0KiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.216727: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (16384): \tTotal Chunks: 1, Chunks in use: 1. 20.5KiB allocated for chunks. 20.5KiB in use in bin. 20.5KiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.216735: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (32768): \tTotal Chunks: 16, Chunks in use: 16. 579.5KiB allocated for chunks. 579.5KiB in use in bin. 512.0KiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.216742: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (65536): \tTotal Chunks: 98, Chunks in use: 98. 6.74MiB allocated for chunks. 6.74MiB in use in bin. 6.54MiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.216749: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (131072): \tTotal Chunks: 66, Chunks in use: 66. 9.26MiB allocated for chunks. 9.26MiB in use in bin. 8.52MiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.216756: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (262144): \tTotal Chunks: 7, Chunks in use: 7. 2.51MiB allocated for chunks. 2.51MiB in use in bin. 2.47MiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.216763: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (524288): \tTotal Chunks: 3, Chunks in use: 3. 1.76MiB allocated for chunks. 1.76MiB in use in bin. 1.44MiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.216770: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (1048576): \tTotal Chunks: 1, Chunks in use: 1. 1.28MiB allocated for chunks. 1.28MiB in use in bin. 1.28MiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.216777: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (2097152): \tTotal Chunks: 6, Chunks in use: 5. 14.89MiB allocated for chunks. 12.81MiB in use in bin. 12.81MiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.216785: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (4194304): \tTotal Chunks: 6, Chunks in use: 6. 33.15MiB allocated for chunks. 33.15MiB in use in bin. 28.19MiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.216792: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (8388608): \tTotal Chunks: 42, Chunks in use: 42. 437.22MiB allocated for chunks. 437.22MiB in use in bin. 430.50MiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.216801: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (16777216): \tTotal Chunks: 12, Chunks in use: 12. 263.74MiB allocated for chunks. 263.74MiB in use in bin. 252.20MiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.216810: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (33554432): \tTotal Chunks: 1, Chunks in use: 1. 34.48MiB allocated for chunks. 34.48MiB in use in bin. 26.27MiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.216819: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (67108864): \tTotal Chunks: 1, Chunks in use: 1. 97.20MiB allocated for chunks. 97.20MiB in use in bin. 97.20MiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.216826: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (134217728): \tTotal Chunks: 0, Chunks in use: 0. 0B allocated for chunks. 0B in use in bin. 0B client-requested in use in bin.\n",
"2024-12-07 08:59:07.216833: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (268435456): \tTotal Chunks: 12, Chunks in use: 12. 8.62GiB allocated for chunks. 8.62GiB in use in bin. 8.62GiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.216839: I tensorflow/tsl/framework/bfc_allocator.cc:1062] Bin for 26.27MiB was 16.00MiB, Chunk State: \n",
"2024-12-07 08:59:07.216845: I tensorflow/tsl/framework/bfc_allocator.cc:1075] Next region of size 1608187904\n",
"2024-12-07 08:59:07.216855: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abdd6000000 of size 385728000 next 704\n",
"2024-12-07 08:59:07.216862: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abdecfdbe00 of size 354368000 next 653\n",
"2024-12-07 08:59:07.216867: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe021cf800 of size 385728000 next 455\n",
"2024-12-07 08:59:07.216873: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe191ab600 of size 10747904 next 89\n",
"2024-12-07 08:59:07.216880: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe19beb600 of size 10747904 next 563\n",
"2024-12-07 08:59:07.216886: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1a62b600 of size 16793600 next 544\n",
"2024-12-07 08:59:07.216892: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1b62f600 of size 27541504 next 40\n",
"2024-12-07 08:59:07.216897: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1d073600 of size 83968 next 667\n",
"2024-12-07 08:59:07.216903: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1d087e00 of size 10747904 next 615\n",
"2024-12-07 08:59:07.216909: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1dac7e00 of size 83968 next 759\n",
"2024-12-07 08:59:07.216915: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1dadc600 of size 5373952 next 103\n",
"2024-12-07 08:59:07.216921: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1dffc600 of size 2686976 next 713\n",
"2024-12-07 08:59:07.216927: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e28c600 of size 83968 next 525\n",
"2024-12-07 08:59:07.216932: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e2a0e00 of size 83968 next 705\n",
"2024-12-07 08:59:07.216938: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e2b5600 of size 83968 next 471\n",
"2024-12-07 08:59:07.216944: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e2c9e00 of size 83968 next 645\n",
"2024-12-07 08:59:07.216949: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e2de600 of size 83968 next 458\n",
"2024-12-07 08:59:07.216955: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e2f2e00 of size 83968 next 621\n",
"2024-12-07 08:59:07.216960: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7abe1e307600 of size 2183168 next 703\n",
"2024-12-07 08:59:07.216966: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e51c600 of size 10747904 next 715\n",
"2024-12-07 08:59:07.216972: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1ef5c600 of size 21495808 next 675\n",
"2024-12-07 08:59:07.216978: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe203dc600 of size 21495808 next 750\n",
"2024-12-07 08:59:07.216983: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2185c600 of size 10747904 next 588\n",
"2024-12-07 08:59:07.216989: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2229c600 of size 10747904 next 497\n",
"2024-12-07 08:59:07.216996: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe22cdc600 of size 10747904 next 722\n",
"2024-12-07 08:59:07.217001: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2371c600 of size 10747904 next 479\n",
"2024-12-07 08:59:07.217007: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2415c600 of size 10747904 next 121\n",
"2024-12-07 08:59:07.217012: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe24b9c600 of size 10747904 next 419\n",
"2024-12-07 08:59:07.217018: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe255dc600 of size 10747904 next 507\n",
"2024-12-07 08:59:07.217023: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2601c600 of size 2686976 next 721\n",
"2024-12-07 08:59:07.217029: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe262ac600 of size 8060928 next 599\n",
"2024-12-07 08:59:07.217034: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe26a5c600 of size 10747904 next 541\n",
"2024-12-07 08:59:07.217039: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2749c600 of size 16793600 next 669\n",
"2024-12-07 08:59:07.217045: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe284a0600 of size 27541504 next 719\n",
"2024-12-07 08:59:07.217051: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe29ee4600 of size 10747904 next 517\n",
"2024-12-07 08:59:07.217056: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2a924600 of size 10747904 next 681\n",
"2024-12-07 08:59:07.217062: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2b364600 of size 10747904 next 432\n",
"2024-12-07 08:59:07.217067: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2bda4600 of size 10747904 next 95\n",
"2024-12-07 08:59:07.217072: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2c7e4600 of size 21495808 next 565\n",
"2024-12-07 08:59:07.217078: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2dc64600 of size 21495808 next 724\n",
"2024-12-07 08:59:07.217084: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2f0e4600 of size 10747904 next 66\n",
"2024-12-07 08:59:07.217089: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2fb24600 of size 2686976 next 747\n",
"2024-12-07 08:59:07.217094: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2fdb4600 of size 10747904 next 533\n",
"2024-12-07 08:59:07.217100: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe307f4600 of size 10747904 next 571\n",
"2024-12-07 08:59:07.217106: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe31234600 of size 10747904 next 488\n",
"2024-12-07 08:59:07.217111: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe31c74600 of size 10747904 next 710\n",
"2024-12-07 08:59:07.217116: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe326b4600 of size 10747904 next 552\n",
"2024-12-07 08:59:07.217122: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe330f4600 of size 10747904 next 46\n",
"2024-12-07 08:59:07.217127: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe33b34600 of size 36157952 next 18446744073709551615\n",
"2024-12-07 08:59:07.217133: I tensorflow/tsl/framework/bfc_allocator.cc:1075] Next region of size 4294967296\n",
"2024-12-07 08:59:07.217139: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad3f2000000 of size 2507232000 next 4\n",
"2024-12-07 08:59:07.217145: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad487715300 of size 101920000 next 5\n",
"2024-12-07 08:59:07.217151: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848000 of size 256 next 6\n",
"2024-12-07 08:59:07.217157: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848100 of size 256 next 7\n",
"2024-12-07 08:59:07.217163: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848200 of size 256 next 8\n",
"2024-12-07 08:59:07.217168: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848300 of size 256 next 9\n",
"2024-12-07 08:59:07.217175: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848400 of size 256 next 10\n",
"2024-12-07 08:59:07.217181: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848500 of size 708736000 next 11\n",
"2024-12-07 08:59:07.217187: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4b7c2f900 of size 771456000 next 12\n",
"2024-12-07 08:59:07.217193: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e5be7500 of size 31360000 next 13\n",
"2024-12-07 08:59:07.217199: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cf900 of size 256 next 14\n",
"2024-12-07 08:59:07.217204: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cfa00 of size 256 next 15\n",
"2024-12-07 08:59:07.217210: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cfb00 of size 256 next 16\n",
"2024-12-07 08:59:07.217215: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cfc00 of size 256 next 17\n",
"2024-12-07 08:59:07.217221: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cfd00 of size 256 next 18\n",
"2024-12-07 08:59:07.217226: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cfe00 of size 256 next 19\n",
"2024-12-07 08:59:07.217232: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cff00 of size 256 next 21\n",
"2024-12-07 08:59:07.217238: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0000 of size 256 next 22\n",
"2024-12-07 08:59:07.217244: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0100 of size 256 next 20\n",
"2024-12-07 08:59:07.217249: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0200 of size 256 next 586\n",
"2024-12-07 08:59:07.217255: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0300 of size 256 next 27\n",
"2024-12-07 08:59:07.217260: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0400 of size 256 next 23\n",
"2024-12-07 08:59:07.217266: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0500 of size 256 next 26\n",
"2024-12-07 08:59:07.217272: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0600 of size 256 next 30\n",
"2024-12-07 08:59:07.217278: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0700 of size 256 next 24\n",
"2024-12-07 08:59:07.217283: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0800 of size 256 next 79\n",
"2024-12-07 08:59:07.217289: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0900 of size 256 next 592\n",
"2024-12-07 08:59:07.217296: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0a00 of size 256 next 25\n",
"2024-12-07 08:59:07.217301: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0b00 of size 256 next 31\n",
"2024-12-07 08:59:07.217307: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0c00 of size 256 next 32\n",
"2024-12-07 08:59:07.217314: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0d00 of size 256 next 57\n",
"2024-12-07 08:59:07.217320: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0e00 of size 256 next 24960\n",
"2024-12-07 08:59:07.217326: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0f00 of size 256 next 24951\n",
"2024-12-07 08:59:07.217332: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1000 of size 256 next 24929\n",
"2024-12-07 08:59:07.217338: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1100 of size 256 next 584\n",
"2024-12-07 08:59:07.217345: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1200 of size 256 next 41\n",
"2024-12-07 08:59:07.217351: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1300 of size 256 next 35\n",
"2024-12-07 08:59:07.217374: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1400 of size 256 next 36\n",
"2024-12-07 08:59:07.217380: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1500 of size 256 next 49\n",
"2024-12-07 08:59:07.217387: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1600 of size 256 next 45\n",
"2024-12-07 08:59:07.217393: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1700 of size 256 next 43\n",
"2024-12-07 08:59:07.217398: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1800 of size 256 next 44\n",
"2024-12-07 08:59:07.217406: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1900 of size 256 next 24946\n",
"2024-12-07 08:59:07.217413: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1a00 of size 256 next 604\n",
"2024-12-07 08:59:07.217419: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1b00 of size 256 next 435\n",
"2024-12-07 08:59:07.217425: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1c00 of size 256 next 564\n",
"2024-12-07 08:59:07.217432: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1d00 of size 256 next 523\n",
"2024-12-07 08:59:07.217437: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1e00 of size 256 next 48\n",
"2024-12-07 08:59:07.217444: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1f00 of size 256 next 51\n",
"2024-12-07 08:59:07.217450: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d2000 of size 256 next 52\n",
"2024-12-07 08:59:07.217457: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d2100 of size 512 next 634\n",
"2024-12-07 08:59:07.217464: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d2300 of size 1024 next 514\n",
"2024-12-07 08:59:07.217472: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d2700 of size 1792 next 96\n",
"2024-12-07 08:59:07.217478: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d2e00 of size 1024 next 647\n",
"2024-12-07 08:59:07.217485: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3200 of size 256 next 589\n",
"2024-12-07 08:59:07.217492: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3300 of size 1280 next 506\n",
"2024-12-07 08:59:07.217497: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3800 of size 256 next 611\n",
"2024-12-07 08:59:07.217504: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3900 of size 256 next 172\n",
"2024-12-07 08:59:07.217511: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3a00 of size 256 next 677\n",
"2024-12-07 08:59:07.217518: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3b00 of size 256 next 613\n",
"2024-12-07 08:59:07.217524: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3c00 of size 256 next 489\n",
"2024-12-07 08:59:07.217531: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3d00 of size 256 next 24973\n",
"2024-12-07 08:59:07.217537: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3e00 of size 256 next 124\n",
"2024-12-07 08:59:07.217544: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3f00 of size 256 next 24979\n",
"2024-12-07 08:59:07.217551: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4000 of size 256 next 453\n",
"2024-12-07 08:59:07.217557: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4100 of size 256 next 651\n",
"2024-12-07 08:59:07.217564: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4200 of size 256 next 658\n",
"2024-12-07 08:59:07.217570: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4300 of size 256 next 642\n",
"2024-12-07 08:59:07.217577: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4400 of size 768 next 135\n",
"2024-12-07 08:59:07.217584: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4700 of size 768 next 691\n",
"2024-12-07 08:59:07.217590: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4a00 of size 768 next 560\n",
"2024-12-07 08:59:07.217597: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4d00 of size 768 next 428\n",
"2024-12-07 08:59:07.217603: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5000 of size 512 next 64\n",
"2024-12-07 08:59:07.217610: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5200 of size 512 next 527\n",
"2024-12-07 08:59:07.217616: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5400 of size 256 next 143\n",
"2024-12-07 08:59:07.217623: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5500 of size 512 next 486\n",
"2024-12-07 08:59:07.217629: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5700 of size 512 next 501\n",
"2024-12-07 08:59:07.217635: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5900 of size 768 next 539\n",
"2024-12-07 08:59:07.217642: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5c00 of size 768 next 60\n",
"2024-12-07 08:59:07.217648: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5f00 of size 512 next 423\n",
"2024-12-07 08:59:07.217655: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6100 of size 256 next 173\n",
"2024-12-07 08:59:07.217662: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6200 of size 256 next 590\n",
"2024-12-07 08:59:07.217669: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6300 of size 512 next 98\n",
"2024-12-07 08:59:07.217676: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6500 of size 512 next 531\n",
"2024-12-07 08:59:07.217684: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6700 of size 768 next 663\n",
"2024-12-07 08:59:07.217690: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6a00 of size 768 next 548\n",
"2024-12-07 08:59:07.217697: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6d00 of size 512 next 131\n",
"2024-12-07 08:59:07.217704: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6f00 of size 512 next 482\n",
"2024-12-07 08:59:07.217711: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7100 of size 512 next 109\n",
"2024-12-07 08:59:07.217717: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7300 of size 256 next 115\n",
"2024-12-07 08:59:07.217724: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7400 of size 256 next 116\n",
"2024-12-07 08:59:07.217731: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7500 of size 256 next 741\n",
"2024-12-07 08:59:07.217739: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7600 of size 512 next 86\n",
"2024-12-07 08:59:07.217745: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79d7800 of size 768 next 491\n",
"2024-12-07 08:59:07.217751: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7b00 of size 256 next 502\n",
"2024-12-07 08:59:07.217758: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7c00 of size 256 next 24995\n",
"2024-12-07 08:59:07.217765: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7d00 of size 256 next 641\n",
"2024-12-07 08:59:07.217771: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7e00 of size 256 next 81\n",
"2024-12-07 08:59:07.217778: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7f00 of size 256 next 577\n",
"2024-12-07 08:59:07.217787: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8000 of size 256 next 123\n",
"2024-12-07 08:59:07.217795: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8100 of size 256 next 117\n",
"2024-12-07 08:59:07.217801: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8200 of size 256 next 118\n",
"2024-12-07 08:59:07.217807: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8300 of size 256 next 438\n",
"2024-12-07 08:59:07.217814: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8400 of size 256 next 505\n",
"2024-12-07 08:59:07.217820: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8500 of size 256 next 628\n",
"2024-12-07 08:59:07.217826: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8600 of size 256 next 127\n",
"2024-12-07 08:59:07.217833: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8700 of size 256 next 113\n",
"2024-12-07 08:59:07.217840: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8800 of size 256 next 126\n",
"2024-12-07 08:59:07.217846: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8900 of size 256 next 129\n",
"2024-12-07 08:59:07.217853: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8a00 of size 256 next 130\n",
"2024-12-07 08:59:07.217859: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8b00 of size 256 next 164\n",
"2024-12-07 08:59:07.217865: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8c00 of size 256 next 499\n",
"2024-12-07 08:59:07.217872: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8d00 of size 256 next 114\n",
"2024-12-07 08:59:07.217879: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8e00 of size 256 next 451\n",
"2024-12-07 08:59:07.217885: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8f00 of size 256 next 542\n",
"2024-12-07 08:59:07.217891: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9000 of size 256 next 593\n",
"2024-12-07 08:59:07.217898: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9100 of size 256 next 450\n",
"2024-12-07 08:59:07.217904: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9200 of size 256 next 480\n",
"2024-12-07 08:59:07.217911: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9300 of size 256 next 550\n",
"2024-12-07 08:59:07.217919: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9400 of size 512 next 102\n",
"2024-12-07 08:59:07.217926: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9600 of size 512 next 554\n",
"2024-12-07 08:59:07.217933: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9800 of size 1280 next 643\n",
"2024-12-07 08:59:07.217939: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9d00 of size 768 next 132\n",
"2024-12-07 08:59:07.217946: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79da000 of size 1792 next 139\n",
"2024-12-07 08:59:07.217952: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79da700 of size 1792 next 140\n",
"2024-12-07 08:59:07.217959: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dae00 of size 256 next 141\n",
"2024-12-07 08:59:07.217965: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79daf00 of size 256 next 142\n",
"2024-12-07 08:59:07.217971: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db000 of size 256 next 598\n",
"2024-12-07 08:59:07.217978: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db100 of size 256 next 463\n",
"2024-12-07 08:59:07.217985: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db200 of size 256 next 692\n",
"2024-12-07 08:59:07.217993: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db300 of size 256 next 467\n",
"2024-12-07 08:59:07.217999: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db400 of size 256 next 690\n",
"2024-12-07 08:59:07.218006: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db500 of size 256 next 466\n",
"2024-12-07 08:59:07.218012: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db600 of size 256 next 616\n",
"2024-12-07 08:59:07.218019: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db700 of size 256 next 24947\n",
"2024-12-07 08:59:07.218025: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db800 of size 256 next 559\n",
"2024-12-07 08:59:07.218032: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db900 of size 256 next 633\n",
"2024-12-07 08:59:07.218038: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dba00 of size 256 next 24980\n",
"2024-12-07 08:59:07.218045: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dbb00 of size 256 next 144\n",
"2024-12-07 08:59:07.218052: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dbc00 of size 1024 next 148\n",
"2024-12-07 08:59:07.218058: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dc000 of size 1024 next 149\n",
"2024-12-07 08:59:07.218065: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dc400 of size 1280 next 676\n",
"2024-12-07 08:59:07.218072: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dc900 of size 256 next 151\n",
"2024-12-07 08:59:07.218080: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dca00 of size 512 next 154\n",
"2024-12-07 08:59:07.218087: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dcc00 of size 512 next 155\n",
"2024-12-07 08:59:07.218093: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dce00 of size 256 next 156\n",
"2024-12-07 08:59:07.218100: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dcf00 of size 256 next 157\n",
"2024-12-07 08:59:07.218106: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd000 of size 256 next 158\n",
"2024-12-07 08:59:07.218113: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd100 of size 256 next 161\n",
"2024-12-07 08:59:07.218120: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd200 of size 256 next 162\n",
"2024-12-07 08:59:07.218126: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd300 of size 256 next 160\n",
"2024-12-07 08:59:07.218133: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd400 of size 256 next 169\n",
"2024-12-07 08:59:07.218139: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd500 of size 256 next 166\n",
"2024-12-07 08:59:07.218147: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd600 of size 256 next 167\n",
"2024-12-07 08:59:07.218154: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd700 of size 256 next 168\n",
"2024-12-07 08:59:07.218160: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd800 of size 256 next 163\n",
"2024-12-07 08:59:07.218167: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd900 of size 256 next 170\n",
"2024-12-07 08:59:07.218173: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dda00 of size 256 next 171\n",
"2024-12-07 08:59:07.218180: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79ddb00 of size 2048 next 165\n",
"2024-12-07 08:59:07.218186: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79de300 of size 256 next 174\n",
"2024-12-07 08:59:07.218193: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79de400 of size 256 next 175\n",
"2024-12-07 08:59:07.218200: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79de500 of size 256 next 176\n",
"2024-12-07 08:59:07.218206: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79de600 of size 768 next 177\n",
"2024-12-07 08:59:07.218212: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79de900 of size 768 next 178\n",
"2024-12-07 08:59:07.218220: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dec00 of size 256 next 179\n",
"2024-12-07 08:59:07.218226: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79ded00 of size 256 next 180\n",
"2024-12-07 08:59:07.218233: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dee00 of size 512 next 181\n",
"2024-12-07 08:59:07.218239: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79df000 of size 512 next 182\n",
"2024-12-07 08:59:07.218246: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79df200 of size 512 next 185\n",
"2024-12-07 08:59:07.218252: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79df400 of size 512 next 186\n",
"2024-12-07 08:59:07.218258: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79df600 of size 512 next 188\n",
"2024-12-07 08:59:07.218265: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79df800 of size 512 next 189\n",
"2024-12-07 08:59:07.218273: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dfa00 of size 512 next 192\n",
"2024-12-07 08:59:07.218280: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dfc00 of size 512 next 193\n",
"2024-12-07 08:59:07.218286: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dfe00 of size 512 next 196\n",
"2024-12-07 08:59:07.218293: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0000 of size 512 next 197\n",
"2024-12-07 08:59:07.218300: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0200 of size 512 next 200\n",
"2024-12-07 08:59:07.218306: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0400 of size 512 next 201\n",
"2024-12-07 08:59:07.218313: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0600 of size 512 next 202\n",
"2024-12-07 08:59:07.218319: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0800 of size 768 next 29\n",
"2024-12-07 08:59:07.218326: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0b00 of size 512 next 78\n",
"2024-12-07 08:59:07.218332: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0d00 of size 512 next 558\n",
"2024-12-07 08:59:07.218339: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0f00 of size 512 next 657\n",
"2024-12-07 08:59:07.218346: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1100 of size 768 next 528\n",
"2024-12-07 08:59:07.218353: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1400 of size 512 next 33\n",
"2024-12-07 08:59:07.218369: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1600 of size 768 next 664\n",
"2024-12-07 08:59:07.218376: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1900 of size 256 next 515\n",
"2024-12-07 08:59:07.218383: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1a00 of size 256 next 723\n",
"2024-12-07 08:59:07.218390: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1b00 of size 256 next 24991\n",
"2024-12-07 08:59:07.218397: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1c00 of size 256 next 99\n",
"2024-12-07 08:59:07.218404: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1d00 of size 512 next 152\n",
"2024-12-07 08:59:07.218410: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79e1f00 of size 1792 next 92\n",
"2024-12-07 08:59:07.218418: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2600 of size 256 next 462\n",
"2024-12-07 08:59:07.218424: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2700 of size 256 next 614\n",
"2024-12-07 08:59:07.218430: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2800 of size 256 next 557\n",
"2024-12-07 08:59:07.218437: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2900 of size 256 next 521\n",
"2024-12-07 08:59:07.218443: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2a00 of size 256 next 659\n",
"2024-12-07 08:59:07.218450: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2b00 of size 256 next 24934\n",
"2024-12-07 08:59:07.218456: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2c00 of size 256 next 543\n",
"2024-12-07 08:59:07.218463: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2d00 of size 768 next 568\n",
"2024-12-07 08:59:07.218470: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79e3000 of size 768 next 639\n",
"2024-12-07 08:59:07.218476: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e3300 of size 512 next 53\n",
"2024-12-07 08:59:07.218483: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e3500 of size 1024 next 606\n",
"2024-12-07 08:59:07.218489: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e3900 of size 256 next 575\n",
"2024-12-07 08:59:07.218495: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e3a00 of size 256 next 607\n",
"2024-12-07 08:59:07.218502: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e3b00 of size 1280 next 420\n",
"2024-12-07 08:59:07.218508: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4000 of size 256 next 689\n",
"2024-12-07 08:59:07.218515: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4100 of size 2048 next 465\n",
"2024-12-07 08:59:07.218522: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4900 of size 256 next 712\n",
"2024-12-07 08:59:07.218529: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4a00 of size 256 next 468\n",
"2024-12-07 08:59:07.218535: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4b00 of size 256 next 742\n",
"2024-12-07 08:59:07.218542: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4c00 of size 256 next 578\n",
"2024-12-07 08:59:07.218549: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4d00 of size 512 next 39\n",
"2024-12-07 08:59:07.218556: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4f00 of size 512 next 635\n",
"2024-12-07 08:59:07.218564: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e5100 of size 256 next 446\n",
"2024-12-07 08:59:07.218569: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79e5200 of size 2048 next 540\n",
"2024-12-07 08:59:07.218576: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e5a00 of size 768 next 34\n",
"2024-12-07 08:59:07.218583: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e5d00 of size 256 next 623\n",
"2024-12-07 08:59:07.218589: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e5e00 of size 512 next 492\n",
"2024-12-07 08:59:07.218596: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6000 of size 512 next 702\n",
"2024-12-07 08:59:07.218602: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6200 of size 512 next 752\n",
"2024-12-07 08:59:07.218609: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6400 of size 512 next 706\n",
"2024-12-07 08:59:07.218616: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6600 of size 1536 next 472\n",
"2024-12-07 08:59:07.218623: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6c00 of size 256 next 90\n",
"2024-12-07 08:59:07.218629: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6d00 of size 256 next 581\n",
"2024-12-07 08:59:07.218636: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6e00 of size 256 next 610\n",
"2024-12-07 08:59:07.218644: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6f00 of size 512 next 646\n",
"2024-12-07 08:59:07.218651: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7100 of size 512 next 576\n",
"2024-12-07 08:59:07.218657: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79e7300 of size 512 next 583\n",
"2024-12-07 08:59:07.218663: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7500 of size 256 next 487\n",
"2024-12-07 08:59:07.218670: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7600 of size 256 next 522\n",
"2024-12-07 08:59:07.218677: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7700 of size 256 next 459\n",
"2024-12-07 08:59:07.218683: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7800 of size 256 next 654\n",
"2024-12-07 08:59:07.218690: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7900 of size 768 next 596\n",
"2024-12-07 08:59:07.218697: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7c00 of size 512 next 648\n",
"2024-12-07 08:59:07.218703: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7e00 of size 512 next 625\n",
"2024-12-07 08:59:07.218710: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e8000 of size 1280 next 735\n",
"2024-12-07 08:59:07.218716: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e8500 of size 512 next 652\n",
"2024-12-07 08:59:07.218722: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e8700 of size 512 next 457\n",
"2024-12-07 08:59:07.218729: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e8900 of size 512 next 28\n",
"2024-12-07 08:59:07.218736: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e8b00 of size 20992 next 37\n",
"2024-12-07 08:59:07.218743: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79edd00 of size 32768 next 159\n",
"2024-12-07 08:59:07.218750: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79f5d00 of size 246784 next 619\n",
"2024-12-07 08:59:07.218756: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a32100 of size 164608 next 566\n",
"2024-12-07 08:59:07.218763: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5a400 of size 256 next 42\n",
"2024-12-07 08:59:07.218770: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5a500 of size 256 next 546\n",
"2024-12-07 08:59:07.218776: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a5a600 of size 4096 next 644\n",
"2024-12-07 08:59:07.218782: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5b600 of size 512 next 569\n",
"2024-12-07 08:59:07.218789: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a5b800 of size 1536 next 421\n",
"2024-12-07 08:59:07.218795: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5be00 of size 512 next 474\n",
"2024-12-07 08:59:07.218802: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5c000 of size 512 next 624\n",
"2024-12-07 08:59:07.218809: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a5c200 of size 2560 next 496\n",
"2024-12-07 08:59:07.218815: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5cc00 of size 512 next 437\n",
"2024-12-07 08:59:07.218822: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5ce00 of size 512 next 763\n",
"2024-12-07 08:59:07.218830: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5d000 of size 512 next 73\n",
"2024-12-07 08:59:07.218837: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5d200 of size 512 next 91\n",
"2024-12-07 08:59:07.218844: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5d400 of size 512 next 650\n",
"2024-12-07 08:59:07.218851: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5d600 of size 768 next 137\n",
"2024-12-07 08:59:07.218858: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5d900 of size 512 next 431\n",
"2024-12-07 08:59:07.218866: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5db00 of size 512 next 145\n",
"2024-12-07 08:59:07.218873: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5dd00 of size 512 next 481\n",
"2024-12-07 08:59:07.218881: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5df00 of size 512 next 464\n",
"2024-12-07 08:59:07.218888: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5e100 of size 1536 next 442\n",
"2024-12-07 08:59:07.218895: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5e700 of size 512 next 730\n",
"2024-12-07 08:59:07.218903: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5e900 of size 256 next 518\n",
"2024-12-07 08:59:07.218910: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5ea00 of size 512 next 110\n",
"2024-12-07 08:59:07.218918: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a5ec00 of size 256 next 494\n",
"2024-12-07 08:59:07.218925: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5ed00 of size 256 next 100\n",
"2024-12-07 08:59:07.218932: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5ee00 of size 32768 next 693\n",
"2024-12-07 08:59:07.218940: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a66e00 of size 1024 next 696\n",
"2024-12-07 08:59:07.218946: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a67200 of size 512 next 470\n",
"2024-12-07 08:59:07.218953: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a67400 of size 59648 next 138\n",
"2024-12-07 08:59:07.218960: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a75d00 of size 32768 next 56\n",
"2024-12-07 08:59:07.218967: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a7dd00 of size 65536 next 629\n",
"2024-12-07 08:59:07.218974: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a8dd00 of size 1024 next 666\n",
"2024-12-07 08:59:07.218981: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a8e100 of size 130560 next 493\n",
"2024-12-07 08:59:07.218988: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7aadf00 of size 65536 next 80\n",
"2024-12-07 08:59:07.218995: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7abdf00 of size 131072 next 38\n",
"2024-12-07 08:59:07.219002: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7addf00 of size 512 next 545\n",
"2024-12-07 08:59:07.219009: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ade100 of size 65536 next 697\n",
"2024-12-07 08:59:07.219017: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7aee100 of size 65536 next 637\n",
"2024-12-07 08:59:07.219024: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7afe100 of size 115712 next 58\n",
"2024-12-07 08:59:07.219031: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b1a500 of size 512 next 108\n",
"2024-12-07 08:59:07.219038: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b1a700 of size 131072 next 439\n",
"2024-12-07 08:59:07.219045: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b3a700 of size 131072 next 74\n",
"2024-12-07 08:59:07.219052: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b5a700 of size 1024 next 601\n",
"2024-12-07 08:59:07.219059: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b5ab00 of size 65536 next 424\n",
"2024-12-07 08:59:07.219066: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b6ab00 of size 512 next 609\n",
"2024-12-07 08:59:07.219072: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b6ad00 of size 131072 next 685\n",
"2024-12-07 08:59:07.219079: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b8ad00 of size 1024 next 504\n",
"2024-12-07 08:59:07.219086: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b8b100 of size 32768 next 136\n",
"2024-12-07 08:59:07.219092: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b93100 of size 1792 next 475\n",
"2024-12-07 08:59:07.219100: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b93800 of size 65536 next 67\n",
"2024-12-07 08:59:07.219106: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ba3800 of size 131072 next 672\n",
"2024-12-07 08:59:07.219114: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7bc3800 of size 512 next 580\n",
"2024-12-07 08:59:07.219121: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7bc3a00 of size 1024 next 707\n",
"2024-12-07 08:59:07.219129: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7bc3e00 of size 198656 next 600\n",
"2024-12-07 08:59:07.219136: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7bf4600 of size 1792 next 679\n",
"2024-12-07 08:59:07.219144: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7bf4d00 of size 1024 next 441\n",
"2024-12-07 08:59:07.219151: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7bf5100 of size 101376 next 106\n",
"2024-12-07 08:59:07.219158: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c0dd00 of size 65536 next 183\n",
"2024-12-07 08:59:07.219165: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c1dd00 of size 65536 next 184\n",
"2024-12-07 08:59:07.219172: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c2dd00 of size 65536 next 187\n",
"2024-12-07 08:59:07.219178: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c3dd00 of size 65536 next 112\n",
"2024-12-07 08:59:07.219185: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c4dd00 of size 65536 next 740\n",
"2024-12-07 08:59:07.219191: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c5dd00 of size 131072 next 436\n",
"2024-12-07 08:59:07.219198: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c7dd00 of size 131072 next 430\n",
"2024-12-07 08:59:07.219204: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c9dd00 of size 65536 next 526\n",
"2024-12-07 08:59:07.219211: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7cadd00 of size 65536 next 678\n",
"2024-12-07 08:59:07.219218: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7cbdd00 of size 65536 next 508\n",
"2024-12-07 08:59:07.219225: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ccdd00 of size 65536 next 731\n",
"2024-12-07 08:59:07.219231: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7cddd00 of size 65536 next 627\n",
"2024-12-07 08:59:07.219238: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7cedd00 of size 131072 next 537\n",
"2024-12-07 08:59:07.219245: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d0dd00 of size 65536 next 478\n",
"2024-12-07 08:59:07.219252: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d1dd00 of size 65536 next 503\n",
"2024-12-07 08:59:07.219258: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d2dd00 of size 65536 next 594\n",
"2024-12-07 08:59:07.219266: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d3dd00 of size 181248 next 153\n",
"2024-12-07 08:59:07.219273: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d6a100 of size 65536 next 190\n",
"2024-12-07 08:59:07.219281: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d7a100 of size 65536 next 191\n",
"2024-12-07 08:59:07.219288: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d8a100 of size 65536 next 194\n",
"2024-12-07 08:59:07.219295: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d9a100 of size 65536 next 195\n",
"2024-12-07 08:59:07.219302: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7daa100 of size 65536 next 198\n",
"2024-12-07 08:59:07.219309: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7dba100 of size 65536 next 199\n",
"2024-12-07 08:59:07.219316: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7dca100 of size 512 next 203\n",
"2024-12-07 08:59:07.219322: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7dca300 of size 512 next 204\n",
"2024-12-07 08:59:07.219329: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7dca500 of size 131072 next 205\n",
"2024-12-07 08:59:07.219336: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7dea500 of size 261120 next 147\n",
"2024-12-07 08:59:07.219343: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e2a100 of size 256 next 620\n",
"2024-12-07 08:59:07.219350: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e2a200 of size 256 next 612\n",
"2024-12-07 08:59:07.219356: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e2a300 of size 131072 next 682\n",
"2024-12-07 08:59:07.219376: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e4a300 of size 32768 next 709\n",
"2024-12-07 08:59:07.219383: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e52300 of size 32768 next 698\n",
"2024-12-07 08:59:07.219392: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e5a300 of size 115712 next 88\n",
"2024-12-07 08:59:07.219398: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e76700 of size 1280 next 456\n",
"2024-12-07 08:59:07.219406: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e76c00 of size 64256 next 125\n",
"2024-12-07 08:59:07.219412: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e86700 of size 32768 next 75\n",
"2024-12-07 08:59:07.219419: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e8e700 of size 1024 next 535\n",
"2024-12-07 08:59:07.219426: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e8eb00 of size 1024 next 562\n",
"2024-12-07 08:59:07.219433: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e8ef00 of size 1024 next 461\n",
"2024-12-07 08:59:07.219441: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e8f300 of size 1024 next 656\n",
"2024-12-07 08:59:07.219449: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e8f700 of size 43520 next 146\n",
"2024-12-07 08:59:07.219456: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e9a100 of size 1024 next 206\n",
"2024-12-07 08:59:07.219463: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e9a500 of size 1024 next 207\n",
"2024-12-07 08:59:07.219470: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e9a900 of size 131072 next 208\n",
"2024-12-07 08:59:07.219475: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7eba900 of size 131072 next 209\n",
"2024-12-07 08:59:07.219482: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7eda900 of size 512 next 210\n",
"2024-12-07 08:59:07.219488: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edab00 of size 512 next 211\n",
"2024-12-07 08:59:07.219495: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edad00 of size 512 next 212\n",
"2024-12-07 08:59:07.219501: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edaf00 of size 512 next 213\n",
"2024-12-07 08:59:07.219508: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edb100 of size 512 next 214\n",
"2024-12-07 08:59:07.219514: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edb300 of size 512 next 215\n",
"2024-12-07 08:59:07.219521: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edb500 of size 65536 next 216\n",
"2024-12-07 08:59:07.219528: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7eeb500 of size 65536 next 217\n",
"2024-12-07 08:59:07.219535: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7efb500 of size 512 next 218\n",
"2024-12-07 08:59:07.219543: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7efb700 of size 512 next 219\n",
"2024-12-07 08:59:07.219550: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7efb900 of size 65536 next 220\n",
"2024-12-07 08:59:07.219557: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f0b900 of size 65536 next 221\n",
"2024-12-07 08:59:07.219565: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f1b900 of size 512 next 222\n",
"2024-12-07 08:59:07.219572: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f1bb00 of size 512 next 223\n",
"2024-12-07 08:59:07.219580: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f1bd00 of size 65536 next 224\n",
"2024-12-07 08:59:07.219587: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f2bd00 of size 65536 next 225\n",
"2024-12-07 08:59:07.219594: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f3bd00 of size 512 next 226\n",
"2024-12-07 08:59:07.219602: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f3bf00 of size 512 next 227\n",
"2024-12-07 08:59:07.219609: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f3c100 of size 65536 next 228\n",
"2024-12-07 08:59:07.219616: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f4c100 of size 65536 next 229\n",
"2024-12-07 08:59:07.219624: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f5c100 of size 512 next 230\n",
"2024-12-07 08:59:07.219631: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f5c300 of size 512 next 231\n",
"2024-12-07 08:59:07.219639: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f5c500 of size 65536 next 232\n",
"2024-12-07 08:59:07.219646: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f6c500 of size 65536 next 233\n",
"2024-12-07 08:59:07.219653: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7c500 of size 512 next 234\n",
"2024-12-07 08:59:07.219660: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7c700 of size 512 next 235\n",
"2024-12-07 08:59:07.219668: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7c900 of size 512 next 236\n",
"2024-12-07 08:59:07.219674: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7cb00 of size 512 next 237\n",
"2024-12-07 08:59:07.219680: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7cd00 of size 512 next 238\n",
"2024-12-07 08:59:07.219687: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7cf00 of size 512 next 239\n",
"2024-12-07 08:59:07.219694: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7d100 of size 131072 next 240\n",
"2024-12-07 08:59:07.219700: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f9d100 of size 131072 next 241\n",
"2024-12-07 08:59:07.219707: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7fbd100 of size 1024 next 242\n",
"2024-12-07 08:59:07.219714: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7fbd500 of size 1024 next 243\n",
"2024-12-07 08:59:07.219721: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7fbd900 of size 131072 next 244\n",
"2024-12-07 08:59:07.219728: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7fdd900 of size 131072 next 245\n",
"2024-12-07 08:59:07.219734: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffd900 of size 512 next 246\n",
"2024-12-07 08:59:07.219741: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffdb00 of size 512 next 247\n",
"2024-12-07 08:59:07.219748: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffdd00 of size 512 next 248\n",
"2024-12-07 08:59:07.219755: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffdf00 of size 512 next 249\n",
"2024-12-07 08:59:07.219762: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffe100 of size 512 next 250\n",
"2024-12-07 08:59:07.219770: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffe300 of size 512 next 251\n",
"2024-12-07 08:59:07.219776: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffe500 of size 65536 next 252\n",
"2024-12-07 08:59:07.219784: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e800e500 of size 65536 next 253\n",
"2024-12-07 08:59:07.219791: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e801e500 of size 512 next 254\n",
"2024-12-07 08:59:07.219798: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e801e700 of size 512 next 255\n",
"2024-12-07 08:59:07.219806: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e801e900 of size 65536 next 256\n",
"2024-12-07 08:59:07.219813: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e802e900 of size 65536 next 257\n",
"2024-12-07 08:59:07.219820: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e803e900 of size 512 next 258\n",
"2024-12-07 08:59:07.219828: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e803eb00 of size 512 next 259\n",
"2024-12-07 08:59:07.219835: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e803ed00 of size 65536 next 260\n",
"2024-12-07 08:59:07.219842: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e804ed00 of size 65536 next 261\n",
"2024-12-07 08:59:07.219850: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e805ed00 of size 512 next 262\n",
"2024-12-07 08:59:07.219857: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e805ef00 of size 512 next 263\n",
"2024-12-07 08:59:07.219864: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e805f100 of size 65536 next 264\n",
"2024-12-07 08:59:07.219872: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e806f100 of size 65536 next 265\n",
"2024-12-07 08:59:07.219879: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e807f100 of size 512 next 266\n",
"2024-12-07 08:59:07.219886: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e807f300 of size 512 next 267\n",
"2024-12-07 08:59:07.219894: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e807f500 of size 65536 next 268\n",
"2024-12-07 08:59:07.219901: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e808f500 of size 65536 next 269\n",
"2024-12-07 08:59:07.219907: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809f500 of size 512 next 270\n",
"2024-12-07 08:59:07.219914: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809f700 of size 512 next 271\n",
"2024-12-07 08:59:07.219921: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809f900 of size 512 next 272\n",
"2024-12-07 08:59:07.219927: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809fb00 of size 512 next 273\n",
"2024-12-07 08:59:07.219933: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809fd00 of size 512 next 274\n",
"2024-12-07 08:59:07.219940: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809ff00 of size 512 next 275\n",
"2024-12-07 08:59:07.219947: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e80a0100 of size 131072 next 276\n",
"2024-12-07 08:59:07.219953: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e80c0100 of size 131072 next 277\n",
"2024-12-07 08:59:07.219960: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e80e0100 of size 1024 next 278\n",
"2024-12-07 08:59:07.219968: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e80e0500 of size 1024 next 279\n",
"2024-12-07 08:59:07.219975: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e80e0900 of size 131072 next 280\n",
"2024-12-07 08:59:07.219982: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8100900 of size 131072 next 281\n",
"2024-12-07 08:59:07.219990: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8120900 of size 512 next 282\n",
"2024-12-07 08:59:07.219997: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8120b00 of size 512 next 283\n",
"2024-12-07 08:59:07.220005: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8120d00 of size 512 next 284\n",
"2024-12-07 08:59:07.220012: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8120f00 of size 512 next 285\n",
"2024-12-07 08:59:07.220020: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8121100 of size 512 next 286\n",
"2024-12-07 08:59:07.220027: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8121300 of size 512 next 287\n",
"2024-12-07 08:59:07.220034: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8121500 of size 65536 next 288\n",
"2024-12-07 08:59:07.220041: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8131500 of size 65536 next 289\n",
"2024-12-07 08:59:07.220048: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8141500 of size 512 next 290\n",
"2024-12-07 08:59:07.220054: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8141700 of size 512 next 291\n",
"2024-12-07 08:59:07.220061: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8141900 of size 65536 next 292\n",
"2024-12-07 08:59:07.220068: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8151900 of size 65536 next 293\n",
"2024-12-07 08:59:07.220075: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8161900 of size 512 next 294\n",
"2024-12-07 08:59:07.220081: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8161b00 of size 512 next 295\n",
"2024-12-07 08:59:07.220088: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8161d00 of size 65536 next 296\n",
"2024-12-07 08:59:07.220095: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8171d00 of size 65536 next 297\n",
"2024-12-07 08:59:07.220102: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8181d00 of size 512 next 298\n",
"2024-12-07 08:59:07.220111: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8181f00 of size 512 next 299\n",
"2024-12-07 08:59:07.220118: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8182100 of size 65536 next 300\n",
"2024-12-07 08:59:07.220125: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8192100 of size 65536 next 301\n",
"2024-12-07 08:59:07.220131: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81a2100 of size 512 next 302\n",
"2024-12-07 08:59:07.220138: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81a2300 of size 512 next 303\n",
"2024-12-07 08:59:07.220146: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81a2500 of size 65536 next 304\n",
"2024-12-07 08:59:07.220153: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81b2500 of size 65536 next 305\n",
"2024-12-07 08:59:07.220161: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2500 of size 512 next 306\n",
"2024-12-07 08:59:07.220169: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2700 of size 512 next 307\n",
"2024-12-07 08:59:07.220178: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2900 of size 512 next 308\n",
"2024-12-07 08:59:07.220185: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2b00 of size 512 next 309\n",
"2024-12-07 08:59:07.220192: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2d00 of size 512 next 310\n",
"2024-12-07 08:59:07.220200: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2f00 of size 512 next 311\n",
"2024-12-07 08:59:07.220207: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c3100 of size 131072 next 312\n",
"2024-12-07 08:59:07.220214: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81e3100 of size 131072 next 313\n",
"2024-12-07 08:59:07.220221: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8203100 of size 1024 next 314\n",
"2024-12-07 08:59:07.220229: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8203500 of size 1024 next 315\n",
"2024-12-07 08:59:07.220236: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8203900 of size 131072 next 316\n",
"2024-12-07 08:59:07.220245: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8223900 of size 131072 next 317\n",
"2024-12-07 08:59:07.220253: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8243900 of size 512 next 318\n",
"2024-12-07 08:59:07.220261: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8243b00 of size 512 next 319\n",
"2024-12-07 08:59:07.220268: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8243d00 of size 512 next 320\n",
"2024-12-07 08:59:07.220276: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8243f00 of size 512 next 321\n",
"2024-12-07 08:59:07.220282: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8244100 of size 512 next 322\n",
"2024-12-07 08:59:07.220289: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8244300 of size 512 next 323\n",
"2024-12-07 08:59:07.220296: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8244500 of size 115712 next 324\n",
"2024-12-07 08:59:07.220303: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8260900 of size 115712 next 325\n",
"2024-12-07 08:59:07.220310: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827cd00 of size 1024 next 326\n",
"2024-12-07 08:59:07.220317: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827d100 of size 1024 next 327\n",
"2024-12-07 08:59:07.220323: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827d500 of size 512 next 328\n",
"2024-12-07 08:59:07.220330: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827d700 of size 512 next 329\n",
"2024-12-07 08:59:07.220337: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827d900 of size 512 next 330\n",
"2024-12-07 08:59:07.220344: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827db00 of size 512 next 331\n",
"2024-12-07 08:59:07.220351: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827dd00 of size 131072 next 332\n",
"2024-12-07 08:59:07.220371: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e829dd00 of size 131072 next 333\n",
"2024-12-07 08:59:07.220381: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82bdd00 of size 512 next 334\n",
"2024-12-07 08:59:07.220388: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82bdf00 of size 512 next 335\n",
"2024-12-07 08:59:07.220395: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82be100 of size 131072 next 336\n",
"2024-12-07 08:59:07.220402: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82de100 of size 131072 next 337\n",
"2024-12-07 08:59:07.220409: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82fe100 of size 1024 next 338\n",
"2024-12-07 08:59:07.220416: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82fe500 of size 1024 next 339\n",
"2024-12-07 08:59:07.220424: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82fe900 of size 131072 next 340\n",
"2024-12-07 08:59:07.220429: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e831e900 of size 131072 next 341\n",
"2024-12-07 08:59:07.220437: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e833e900 of size 1024 next 342\n",
"2024-12-07 08:59:07.220443: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e833ed00 of size 1024 next 343\n",
"2024-12-07 08:59:07.220450: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e833f100 of size 131072 next 344\n",
"2024-12-07 08:59:07.220457: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e835f100 of size 131072 next 345\n",
"2024-12-07 08:59:07.220464: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e837f100 of size 1024 next 346\n",
"2024-12-07 08:59:07.220471: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e837f500 of size 1024 next 347\n",
"2024-12-07 08:59:07.220478: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e837f900 of size 131072 next 348\n",
"2024-12-07 08:59:07.220485: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e839f900 of size 131072 next 349\n",
"2024-12-07 08:59:07.220492: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83bf900 of size 512 next 350\n",
"2024-12-07 08:59:07.220500: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83bfb00 of size 512 next 351\n",
"2024-12-07 08:59:07.220507: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83bfd00 of size 32768 next 352\n",
"2024-12-07 08:59:07.220513: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83c7d00 of size 32768 next 353\n",
"2024-12-07 08:59:07.220520: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83cfd00 of size 256 next 354\n",
"2024-12-07 08:59:07.220529: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83cfe00 of size 256 next 355\n",
"2024-12-07 08:59:07.220536: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83cff00 of size 1792 next 356\n",
"2024-12-07 08:59:07.220544: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83d0600 of size 1792 next 357\n",
"2024-12-07 08:59:07.220551: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83d0d00 of size 1792 next 358\n",
"2024-12-07 08:59:07.220558: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83d1400 of size 1792 next 359\n",
"2024-12-07 08:59:07.220566: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83d1b00 of size 458752 next 360\n",
"2024-12-07 08:59:07.220573: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8441b00 of size 458752 next 361\n",
"2024-12-07 08:59:07.220580: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b1b00 of size 1024 next 362\n",
"2024-12-07 08:59:07.220589: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b1f00 of size 1024 next 363\n",
"2024-12-07 08:59:07.220595: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b2300 of size 1024 next 364\n",
"2024-12-07 08:59:07.220602: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b2700 of size 1024 next 365\n",
"2024-12-07 08:59:07.220609: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b2b00 of size 1024 next 366\n",
"2024-12-07 08:59:07.220616: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b2f00 of size 1024 next 367\n",
"2024-12-07 08:59:07.220623: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b3300 of size 131072 next 368\n",
"2024-12-07 08:59:07.220630: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84d3300 of size 131072 next 369\n",
"2024-12-07 08:59:07.220637: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3300 of size 512 next 370\n",
"2024-12-07 08:59:07.220643: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3500 of size 512 next 371\n",
"2024-12-07 08:59:07.220650: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3700 of size 512 next 372\n",
"2024-12-07 08:59:07.220657: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3900 of size 512 next 373\n",
"2024-12-07 08:59:07.220664: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3b00 of size 512 next 374\n",
"2024-12-07 08:59:07.220672: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3d00 of size 512 next 375\n",
"2024-12-07 08:59:07.220680: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3f00 of size 32768 next 376\n",
"2024-12-07 08:59:07.220687: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84fbf00 of size 32768 next 377\n",
"2024-12-07 08:59:07.220694: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8503f00 of size 256 next 378\n",
"2024-12-07 08:59:07.220701: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504000 of size 256 next 379\n",
"2024-12-07 08:59:07.220708: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504100 of size 1280 next 380\n",
"2024-12-07 08:59:07.220714: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504600 of size 1280 next 381\n",
"2024-12-07 08:59:07.220724: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504b00 of size 256 next 382\n",
"2024-12-07 08:59:07.220732: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504c00 of size 256 next 383\n",
"2024-12-07 08:59:07.220739: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504d00 of size 256 next 384\n",
"2024-12-07 08:59:07.220746: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504e00 of size 256 next 385\n",
"2024-12-07 08:59:07.220753: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504f00 of size 256 next 386\n",
"2024-12-07 08:59:07.220761: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505000 of size 256 next 387\n",
"2024-12-07 08:59:07.220769: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505100 of size 256 next 388\n",
"2024-12-07 08:59:07.220775: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505200 of size 256 next 389\n",
"2024-12-07 08:59:07.220782: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505300 of size 256 next 390\n",
"2024-12-07 08:59:07.220790: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505400 of size 256 next 391\n",
"2024-12-07 08:59:07.220798: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505500 of size 256 next 392\n",
"2024-12-07 08:59:07.220805: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505600 of size 256 next 393\n",
"2024-12-07 08:59:07.220812: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505700 of size 256 next 394\n",
"2024-12-07 08:59:07.220818: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505800 of size 256 next 395\n",
"2024-12-07 08:59:07.220824: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505900 of size 256 next 396\n",
"2024-12-07 08:59:07.220831: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505a00 of size 256 next 397\n",
"2024-12-07 08:59:07.220838: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505b00 of size 256 next 398\n",
"2024-12-07 08:59:07.220845: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505c00 of size 256 next 399\n",
"2024-12-07 08:59:07.220852: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505d00 of size 256 next 400\n",
"2024-12-07 08:59:07.220860: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505e00 of size 256 next 401\n",
"2024-12-07 08:59:07.220867: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505f00 of size 256 next 402\n",
"2024-12-07 08:59:07.220874: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506000 of size 256 next 403\n",
"2024-12-07 08:59:07.220882: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506100 of size 256 next 404\n",
"2024-12-07 08:59:07.220888: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506200 of size 256 next 405\n",
"2024-12-07 08:59:07.220895: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506300 of size 256 next 406\n",
"2024-12-07 08:59:07.220901: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506400 of size 256 next 407\n",
"2024-12-07 08:59:07.220908: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506500 of size 256 next 408\n",
"2024-12-07 08:59:07.220914: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506600 of size 256 next 409\n",
"2024-12-07 08:59:07.220921: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506700 of size 256 next 410\n",
"2024-12-07 08:59:07.220928: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506800 of size 256 next 411\n",
"2024-12-07 08:59:07.220935: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506900 of size 256 next 412\n",
"2024-12-07 08:59:07.220942: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506a00 of size 256 next 413\n",
"2024-12-07 08:59:07.220950: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506b00 of size 256 next 414\n",
"2024-12-07 08:59:07.220958: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506c00 of size 256 next 415\n",
"2024-12-07 08:59:07.220966: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506d00 of size 256 next 416\n",
"2024-12-07 08:59:07.220975: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506e00 of size 65536 next 597\n",
"2024-12-07 08:59:07.220983: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8516e00 of size 186368 next 447\n",
"2024-12-07 08:59:07.220990: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8544600 of size 262144 next 701\n",
"2024-12-07 08:59:07.220998: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8584600 of size 251904 next 718\n",
"2024-12-07 08:59:07.221004: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e85c1e00 of size 262144 next 524\n",
"2024-12-07 08:59:07.221011: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8601e00 of size 5373952 next 570\n",
"2024-12-07 08:59:07.221018: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8b21e00 of size 5373952 next 649\n",
"2024-12-07 08:59:07.221025: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e9041e00 of size 2686976 next 725\n",
"2024-12-07 08:59:07.221031: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e92d1e00 of size 2686976 next 107\n",
"2024-12-07 08:59:07.221038: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e9561e00 of size 1343488 next 429\n",
"2024-12-07 08:59:07.221045: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e96a9e00 of size 12410880 next 700\n",
"2024-12-07 08:59:07.221053: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ea27fe00 of size 131072 next 602\n",
"2024-12-07 08:59:07.221061: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4ea29fe00 of size 512 next 500\n",
"2024-12-07 08:59:07.221069: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ea2a0000 of size 720384 next 427\n",
"2024-12-07 08:59:07.221077: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ea34fe00 of size 458752 next 661\n",
"2024-12-07 08:59:07.221085: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ea3bfe00 of size 10747904 next 476\n",
"2024-12-07 08:59:07.221093: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4eadffe00 of size 10747904 next 582\n",
"2024-12-07 08:59:07.221102: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4eb83fe00 of size 10747904 next 83\n",
"2024-12-07 08:59:07.221108: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ec27fe00 of size 10747904 next 445\n",
"2024-12-07 08:59:07.221116: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4eccbfe00 of size 10747904 next 727\n",
"2024-12-07 08:59:07.221124: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ed6ffe00 of size 10747904 next 684\n",
"2024-12-07 08:59:07.221131: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ee13fe00 of size 10747904 next 63\n",
"2024-12-07 08:59:07.221137: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4eeb7fe00 of size 10747904 next 662\n",
"2024-12-07 08:59:07.221144: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ef5bfe00 of size 10747904 next 665\n",
"2024-12-07 08:59:07.221150: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4effffe00 of size 10747904 next 50\n",
"2024-12-07 08:59:07.221156: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4f0a3fe00 of size 5373952 next 587\n",
"2024-12-07 08:59:07.221163: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4f0f5fe00 of size 83968 next 683\n",
"2024-12-07 08:59:07.221170: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4f0f74600 of size 83968 next 626\n",
"2024-12-07 08:59:07.221176: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4f0f88e00 of size 5206016 next 536\n",
"2024-12-07 08:59:07.221183: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4f147fe00 of size 12059136 next 18446744073709551615\n",
"2024-12-07 08:59:07.221190: I tensorflow/tsl/framework/bfc_allocator.cc:1075] Next region of size 4294967296\n",
"2024-12-07 08:59:07.221197: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad61e000000 of size 2303392000 next 1\n",
"2024-12-07 08:59:07.221206: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6a74af900 of size 1280 next 2\n",
"2024-12-07 08:59:07.221212: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6a74afe00 of size 354368000 next 534\n",
"2024-12-07 08:59:07.221220: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6bc6a3800 of size 385728000 next 630\n",
"2024-12-07 08:59:07.221227: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6d367f600 of size 354368000 next 498\n",
"2024-12-07 08:59:07.221234: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6e8873000 of size 385728000 next 426\n",
"2024-12-07 08:59:07.221240: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6ff84ee00 of size 354368000 next 632\n",
"2024-12-07 08:59:07.221247: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a42800 of size 1280 next 553\n",
"2024-12-07 08:59:07.221254: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a42d00 of size 32768 next 549\n",
"2024-12-07 08:59:07.221261: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a4ad00 of size 97024 next 94\n",
"2024-12-07 08:59:07.221269: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a62800 of size 65536 next 729\n",
"2024-12-07 08:59:07.221275: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a72800 of size 65536 next 556\n",
"2024-12-07 08:59:07.221282: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a82800 of size 65536 next 519\n",
"2024-12-07 08:59:07.221289: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a92800 of size 65536 next 631\n",
"2024-12-07 08:59:07.221297: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714aa2800 of size 65536 next 477\n",
"2024-12-07 08:59:07.221304: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ab2800 of size 131072 next 473\n",
"2024-12-07 08:59:07.221311: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ad2800 of size 65536 next 495\n",
"2024-12-07 08:59:07.221319: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ae2800 of size 65536 next 490\n",
"2024-12-07 08:59:07.221328: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714af2800 of size 65536 next 670\n",
"2024-12-07 08:59:07.221336: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b02800 of size 131072 next 509\n",
"2024-12-07 08:59:07.221343: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b22800 of size 65536 next 54\n",
"2024-12-07 08:59:07.221350: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b32800 of size 131072 next 440\n",
"2024-12-07 08:59:07.221356: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b52800 of size 131072 next 618\n",
"2024-12-07 08:59:07.221374: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b72800 of size 65536 next 547\n",
"2024-12-07 08:59:07.221381: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b82800 of size 99584 next 738\n",
"2024-12-07 08:59:07.221388: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b9ad00 of size 65536 next 105\n",
"2024-12-07 08:59:07.221396: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714baad00 of size 131072 next 561\n",
"2024-12-07 08:59:07.221403: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714bcad00 of size 65536 next 511\n",
"2024-12-07 08:59:07.221410: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714bdad00 of size 65536 next 516\n",
"2024-12-07 08:59:07.221417: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714bead00 of size 65536 next 485\n",
"2024-12-07 08:59:07.221423: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714bfad00 of size 131072 next 551\n",
"2024-12-07 08:59:07.221431: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c1ad00 of size 65536 next 104\n",
"2024-12-07 08:59:07.221438: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c2ad00 of size 131072 next 720\n",
"2024-12-07 08:59:07.221444: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c4ad00 of size 65536 next 739\n",
"2024-12-07 08:59:07.221451: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c5ad00 of size 65536 next 708\n",
"2024-12-07 08:59:07.221457: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c6ad00 of size 65536 next 87\n",
"2024-12-07 08:59:07.221464: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c7ad00 of size 131072 next 694\n",
"2024-12-07 08:59:07.221471: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c9ad00 of size 246784 next 425\n",
"2024-12-07 08:59:07.221479: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714cd7100 of size 65536 next 765\n",
"2024-12-07 08:59:07.221487: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ce7100 of size 131072 next 655\n",
"2024-12-07 08:59:07.221495: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d07100 of size 1792 next 422\n",
"2024-12-07 08:59:07.221502: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d07800 of size 1024 next 530\n",
"2024-12-07 08:59:07.221511: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d07c00 of size 65536 next 454\n",
"2024-12-07 08:59:07.221519: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d17c00 of size 165888 next 62\n",
"2024-12-07 08:59:07.221528: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d40400 of size 131072 next 448\n",
"2024-12-07 08:59:07.221537: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d60400 of size 131072 next 120\n",
"2024-12-07 08:59:07.221545: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d80400 of size 1024 next 671\n",
"2024-12-07 08:59:07.221551: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d80800 of size 256 next 687\n",
"2024-12-07 08:59:07.221559: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d80900 of size 256 next 449\n",
"2024-12-07 08:59:07.221566: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d80a00 of size 2048 next 513\n",
"2024-12-07 08:59:07.221573: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d81200 of size 231424 next 434\n",
"2024-12-07 08:59:07.221582: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714db9a00 of size 83968 next 733\n",
"2024-12-07 08:59:07.221589: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714dce200 of size 2048 next 591\n",
"2024-12-07 08:59:07.221596: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714dcea00 of size 272640 next 59\n",
"2024-12-07 08:59:07.221604: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714e11300 of size 65536 next 585\n",
"2024-12-07 08:59:07.221611: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714e21300 of size 131072 next 636\n",
"2024-12-07 08:59:07.221618: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714e41300 of size 131072 next 638\n",
"2024-12-07 08:59:07.221625: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714e61300 of size 458752 next 512\n",
"2024-12-07 08:59:07.221632: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ed1300 of size 10240 next 85\n",
"2024-12-07 08:59:07.221639: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ed3b00 of size 83968 next 61\n",
"2024-12-07 08:59:07.221645: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ee8300 of size 131072 next 483\n",
"2024-12-07 08:59:07.221656: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714f08300 of size 131072 next 572\n",
"2024-12-07 08:59:07.221664: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714f28300 of size 32768 next 622\n",
"2024-12-07 08:59:07.221673: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714f30300 of size 124928 next 101\n",
"2024-12-07 08:59:07.221680: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714f4eb00 of size 231424 next 520\n",
"2024-12-07 08:59:07.221687: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714f87300 of size 251904 next 668\n",
"2024-12-07 08:59:07.221694: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714fc4b00 of size 524288 next 128\n",
"2024-12-07 08:59:07.221701: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad715044b00 of size 604672 next 71\n",
"2024-12-07 08:59:07.221708: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad7150d8500 of size 131072 next 573\n",
"2024-12-07 08:59:07.221715: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad7150f8500 of size 141056 next 444\n",
"2024-12-07 08:59:07.221722: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71511ac00 of size 27541504 next 608\n",
"2024-12-07 08:59:07.221728: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad716b5ec00 of size 21495808 next 640\n",
"2024-12-07 08:59:07.221736: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad717fdec00 of size 21495808 next 84\n",
"2024-12-07 08:59:07.221742: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71945ec00 of size 10747904 next 133\n",
"2024-12-07 08:59:07.221750: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad719e9ec00 of size 10747904 next 744\n",
"2024-12-07 08:59:07.221757: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71a8dec00 of size 10747904 next 77\n",
"2024-12-07 08:59:07.221763: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71b31ec00 of size 10747904 next 510\n",
"2024-12-07 08:59:07.221769: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71bd5ec00 of size 10747904 next 150\n",
"2024-12-07 08:59:07.221776: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71c79ec00 of size 10747904 next 673\n",
"2024-12-07 08:59:07.221782: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71d1dec00 of size 14816256 next 18446744073709551615\n",
"2024-12-07 08:59:07.221789: I tensorflow/tsl/framework/bfc_allocator.cc:1100] Summary of in-use Chunks by size: \n",
"2024-12-07 08:59:07.221801: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 196 Chunks of size 256 totalling 49.0KiB\n",
"2024-12-07 08:59:07.221809: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 148 Chunks of size 512 totalling 74.0KiB\n",
"2024-12-07 08:59:07.221817: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 18 Chunks of size 768 totalling 13.5KiB\n",
"2024-12-07 08:59:07.221825: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 37 Chunks of size 1024 totalling 37.0KiB\n",
"2024-12-07 08:59:07.221833: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 10 Chunks of size 1280 totalling 12.5KiB\n",
"2024-12-07 08:59:07.221841: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 1536 totalling 3.0KiB\n",
"2024-12-07 08:59:07.221849: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 10 Chunks of size 1792 totalling 17.5KiB\n",
"2024-12-07 08:59:07.221857: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 3 Chunks of size 2048 totalling 6.0KiB\n",
"2024-12-07 08:59:07.221866: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 10240 totalling 10.0KiB\n",
"2024-12-07 08:59:07.221875: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 20992 totalling 20.5KiB\n",
"2024-12-07 08:59:07.221882: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 13 Chunks of size 32768 totalling 416.0KiB\n",
"2024-12-07 08:59:07.221890: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 43520 totalling 42.5KiB\n",
"2024-12-07 08:59:07.221898: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 59648 totalling 58.2KiB\n",
"2024-12-07 08:59:07.221907: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 64256 totalling 62.8KiB\n",
"2024-12-07 08:59:07.221916: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 77 Chunks of size 65536 totalling 4.81MiB\n",
"2024-12-07 08:59:07.221923: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 12 Chunks of size 83968 totalling 984.0KiB\n",
"2024-12-07 08:59:07.221930: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 97024 totalling 94.8KiB\n",
"2024-12-07 08:59:07.221938: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 99584 totalling 97.2KiB\n",
"2024-12-07 08:59:07.221945: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 101376 totalling 99.0KiB\n",
"2024-12-07 08:59:07.221954: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 4 Chunks of size 115712 totalling 452.0KiB\n",
"2024-12-07 08:59:07.221962: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 124928 totalling 122.0KiB\n",
"2024-12-07 08:59:07.221971: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 130560 totalling 127.5KiB\n",
"2024-12-07 08:59:07.221978: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 53 Chunks of size 131072 totalling 6.62MiB\n",
"2024-12-07 08:59:07.221986: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 141056 totalling 137.8KiB\n",
"2024-12-07 08:59:07.221993: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 164608 totalling 160.8KiB\n",
"2024-12-07 08:59:07.222001: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 165888 totalling 162.0KiB\n",
"2024-12-07 08:59:07.222008: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 181248 totalling 177.0KiB\n",
"2024-12-07 08:59:07.222015: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 186368 totalling 182.0KiB\n",
"2024-12-07 08:59:07.222023: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 198656 totalling 194.0KiB\n",
"2024-12-07 08:59:07.222030: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 231424 totalling 452.0KiB\n",
"2024-12-07 08:59:07.222038: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 246784 totalling 482.0KiB\n",
"2024-12-07 08:59:07.222045: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 251904 totalling 492.0KiB\n",
"2024-12-07 08:59:07.222052: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 261120 totalling 255.0KiB\n",
"2024-12-07 08:59:07.222060: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 262144 totalling 512.0KiB\n",
"2024-12-07 08:59:07.222071: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 272640 totalling 266.2KiB\n",
"2024-12-07 08:59:07.222078: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 4 Chunks of size 458752 totalling 1.75MiB\n",
"2024-12-07 08:59:07.222086: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 524288 totalling 512.0KiB\n",
"2024-12-07 08:59:07.222094: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 604672 totalling 590.5KiB\n",
"2024-12-07 08:59:07.222102: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 720384 totalling 703.5KiB\n",
"2024-12-07 08:59:07.222110: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 1343488 totalling 1.28MiB\n",
"2024-12-07 08:59:07.222118: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 5 Chunks of size 2686976 totalling 12.81MiB\n",
"2024-12-07 08:59:07.222125: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 5206016 totalling 4.96MiB\n",
"2024-12-07 08:59:07.222132: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 4 Chunks of size 5373952 totalling 20.50MiB\n",
"2024-12-07 08:59:07.222140: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 8060928 totalling 7.69MiB\n",
"2024-12-07 08:59:07.222148: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 39 Chunks of size 10747904 totalling 399.75MiB\n",
"2024-12-07 08:59:07.222155: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 12059136 totalling 11.50MiB\n",
"2024-12-07 08:59:07.222162: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 12410880 totalling 11.84MiB\n",
"2024-12-07 08:59:07.222170: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 14816256 totalling 14.13MiB\n",
"2024-12-07 08:59:07.222177: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 16793600 totalling 32.03MiB\n",
"2024-12-07 08:59:07.222185: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 6 Chunks of size 21495808 totalling 123.00MiB\n",
"2024-12-07 08:59:07.222192: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 3 Chunks of size 27541504 totalling 78.80MiB\n",
"2024-12-07 08:59:07.222199: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 31360000 totalling 29.91MiB\n",
"2024-12-07 08:59:07.222206: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 36157952 totalling 34.48MiB\n",
"2024-12-07 08:59:07.222212: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 101920000 totalling 97.20MiB\n",
"2024-12-07 08:59:07.222220: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 4 Chunks of size 354368000 totalling 1.32GiB\n",
"2024-12-07 08:59:07.222228: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 4 Chunks of size 385728000 totalling 1.44GiB\n",
"2024-12-07 08:59:07.222236: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 708736000 totalling 675.90MiB\n",
"2024-12-07 08:59:07.222243: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 771456000 totalling 735.72MiB\n",
"2024-12-07 08:59:07.222250: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 2303392000 totalling 2.14GiB\n",
"2024-12-07 08:59:07.222259: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 2507232000 totalling 2.33GiB\n",
"2024-12-07 08:59:07.222267: I tensorflow/tsl/framework/bfc_allocator.cc:1107] Sum Total of in-use chunks: 9.50GiB\n",
"2024-12-07 08:59:07.222275: I tensorflow/tsl/framework/bfc_allocator.cc:1109] Total bytes in pool: 10198122496 memory_limit_: 10198122496 available bytes: 0 curr_region_allocation_bytes_: 17179869184\n",
"2024-12-07 08:59:07.222287: I tensorflow/tsl/framework/bfc_allocator.cc:1114] Stats: \n",
"Limit: 10198122496\n",
"InUse: 10195919872\n",
"MaxInUse: 10195920896\n",
"NumAllocs: 43119401\n",
"MaxAllocSize: 2507232000\n",
"Reserved: 0\n",
"PeakReserved: 0\n",
"LargestFreeBlock: 0\n",
"\n",
"2024-12-07 08:59:07.222309: W tensorflow/tsl/framework/bfc_allocator.cc:497] ****************************************************************************************************\n",
"2024-12-07 08:59:07.222350: W tensorflow/core/framework/op_kernel.cc:1839] OP_REQUIRES failed at einsum_op_impl.h:604 : RESOURCE_EXHAUSTED: OOM when allocating tensor with shape[512,8,41,41] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc\n",
"2024-12-07 08:59:07.222417: W tensorflow/tsl/framework/bfc_allocator.cc:485] Allocator (GPU_0_bfc) ran out of memory trying to allocate 10.25MiB (rounded to 10747904)requested by op OilTransformer/dense_11/Tensordot/MatMul\n",
"If the cause is memory fragmentation maybe the environment variable 'TF_GPU_ALLOCATOR=cuda_malloc_async' will improve the situation. \n",
"Current allocation summary follows.\n",
"Current allocation summary follows.\n",
"2024-12-07 08:59:07.222532: I tensorflow/tsl/framework/bfc_allocator.cc:1039] BFCAllocator dump for GPU_0_bfc\n",
"2024-12-07 08:59:07.222560: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (256): \tTotal Chunks: 197, Chunks in use: 196. 49.2KiB allocated for chunks. 49.0KiB in use in bin. 3.5KiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.222573: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (512): \tTotal Chunks: 171, Chunks in use: 166. 90.5KiB allocated for chunks. 87.5KiB in use in bin. 83.4KiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.222584: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (1024): \tTotal Chunks: 63, Chunks in use: 59. 75.2KiB allocated for chunks. 70.0KiB in use in bin. 66.5KiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.222596: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (2048): \tTotal Chunks: 6, Chunks in use: 3. 12.5KiB allocated for chunks. 6.0KiB in use in bin. 5.8KiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.222607: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (4096): \tTotal Chunks: 1, Chunks in use: 0. 4.0KiB allocated for chunks. 0B in use in bin. 0B client-requested in use in bin.\n",
"2024-12-07 08:59:07.222620: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (8192): \tTotal Chunks: 1, Chunks in use: 1. 10.0KiB allocated for chunks. 10.0KiB in use in bin. 10.0KiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.222630: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (16384): \tTotal Chunks: 1, Chunks in use: 1. 20.5KiB allocated for chunks. 20.5KiB in use in bin. 20.5KiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.222641: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (32768): \tTotal Chunks: 16, Chunks in use: 16. 579.5KiB allocated for chunks. 579.5KiB in use in bin. 512.0KiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.222651: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (65536): \tTotal Chunks: 98, Chunks in use: 98. 6.74MiB allocated for chunks. 6.74MiB in use in bin. 6.54MiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.222661: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (131072): \tTotal Chunks: 66, Chunks in use: 66. 9.26MiB allocated for chunks. 9.26MiB in use in bin. 8.52MiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.222671: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (262144): \tTotal Chunks: 7, Chunks in use: 7. 2.51MiB allocated for chunks. 2.51MiB in use in bin. 2.47MiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.222681: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (524288): \tTotal Chunks: 3, Chunks in use: 3. 1.76MiB allocated for chunks. 1.76MiB in use in bin. 1.44MiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.222691: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (1048576): \tTotal Chunks: 1, Chunks in use: 1. 1.28MiB allocated for chunks. 1.28MiB in use in bin. 1.28MiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.222701: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (2097152): \tTotal Chunks: 6, Chunks in use: 5. 14.89MiB allocated for chunks. 12.81MiB in use in bin. 12.81MiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.222711: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (4194304): \tTotal Chunks: 6, Chunks in use: 6. 33.15MiB allocated for chunks. 33.15MiB in use in bin. 28.19MiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.222721: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (8388608): \tTotal Chunks: 42, Chunks in use: 42. 437.22MiB allocated for chunks. 437.22MiB in use in bin. 430.50MiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.222731: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (16777216): \tTotal Chunks: 12, Chunks in use: 12. 263.74MiB allocated for chunks. 263.74MiB in use in bin. 252.20MiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.222741: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (33554432): \tTotal Chunks: 1, Chunks in use: 1. 34.48MiB allocated for chunks. 34.48MiB in use in bin. 26.27MiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.222751: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (67108864): \tTotal Chunks: 1, Chunks in use: 1. 97.20MiB allocated for chunks. 97.20MiB in use in bin. 97.20MiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.222761: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (134217728): \tTotal Chunks: 0, Chunks in use: 0. 0B allocated for chunks. 0B in use in bin. 0B client-requested in use in bin.\n",
"2024-12-07 08:59:07.222770: I tensorflow/tsl/framework/bfc_allocator.cc:1046] Bin (268435456): \tTotal Chunks: 12, Chunks in use: 12. 8.62GiB allocated for chunks. 8.62GiB in use in bin. 8.62GiB client-requested in use in bin.\n",
"2024-12-07 08:59:07.222783: I tensorflow/tsl/framework/bfc_allocator.cc:1062] Bin for 10.25MiB was 8.00MiB, Chunk State: \n",
"2024-12-07 08:59:07.222796: I tensorflow/tsl/framework/bfc_allocator.cc:1075] Next region of size 1608187904\n",
"2024-12-07 08:59:07.222809: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abdd6000000 of size 385728000 next 704\n",
"2024-12-07 08:59:07.222818: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abdecfdbe00 of size 354368000 next 653\n",
"2024-12-07 08:59:07.222828: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe021cf800 of size 385728000 next 455\n",
"2024-12-07 08:59:07.222837: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe191ab600 of size 10747904 next 89\n",
"2024-12-07 08:59:07.222847: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe19beb600 of size 10747904 next 563\n",
"2024-12-07 08:59:07.222856: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1a62b600 of size 16793600 next 544\n",
"2024-12-07 08:59:07.222865: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1b62f600 of size 27541504 next 40\n",
"2024-12-07 08:59:07.222876: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1d073600 of size 83968 next 667\n",
"2024-12-07 08:59:07.222884: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1d087e00 of size 10747904 next 615\n",
"2024-12-07 08:59:07.222893: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1dac7e00 of size 83968 next 759\n",
"2024-12-07 08:59:07.222902: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1dadc600 of size 5373952 next 103\n",
"2024-12-07 08:59:07.222911: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1dffc600 of size 2686976 next 713\n",
"2024-12-07 08:59:07.222920: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e28c600 of size 83968 next 525\n",
"2024-12-07 08:59:07.222929: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e2a0e00 of size 83968 next 705\n",
"2024-12-07 08:59:07.222938: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e2b5600 of size 83968 next 471\n",
"2024-12-07 08:59:07.222947: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e2c9e00 of size 83968 next 645\n",
"2024-12-07 08:59:07.222955: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e2de600 of size 83968 next 458\n",
"2024-12-07 08:59:07.222963: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e2f2e00 of size 83968 next 621\n",
"2024-12-07 08:59:07.222972: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7abe1e307600 of size 2183168 next 703\n",
"2024-12-07 08:59:07.222980: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1e51c600 of size 10747904 next 715\n",
"2024-12-07 08:59:07.222989: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe1ef5c600 of size 21495808 next 675\n",
"2024-12-07 08:59:07.222997: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe203dc600 of size 21495808 next 750\n",
"2024-12-07 08:59:07.223006: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2185c600 of size 10747904 next 588\n",
"2024-12-07 08:59:07.223015: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2229c600 of size 10747904 next 497\n",
"2024-12-07 08:59:07.223023: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe22cdc600 of size 10747904 next 722\n",
"2024-12-07 08:59:07.223032: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2371c600 of size 10747904 next 479\n",
"2024-12-07 08:59:07.223041: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2415c600 of size 10747904 next 121\n",
"2024-12-07 08:59:07.223049: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe24b9c600 of size 10747904 next 419\n",
"2024-12-07 08:59:07.223056: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe255dc600 of size 10747904 next 507\n",
"2024-12-07 08:59:07.223065: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2601c600 of size 2686976 next 721\n",
"2024-12-07 08:59:07.223074: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe262ac600 of size 8060928 next 599\n",
"2024-12-07 08:59:07.223082: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe26a5c600 of size 10747904 next 541\n",
"2024-12-07 08:59:07.223091: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2749c600 of size 16793600 next 669\n",
"2024-12-07 08:59:07.223100: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe284a0600 of size 27541504 next 719\n",
"2024-12-07 08:59:07.223108: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe29ee4600 of size 10747904 next 517\n",
"2024-12-07 08:59:07.223118: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2a924600 of size 10747904 next 681\n",
"2024-12-07 08:59:07.223126: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2b364600 of size 10747904 next 432\n",
"2024-12-07 08:59:07.223135: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2bda4600 of size 10747904 next 95\n",
"2024-12-07 08:59:07.223144: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2c7e4600 of size 21495808 next 565\n",
"2024-12-07 08:59:07.223152: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2dc64600 of size 21495808 next 724\n",
"2024-12-07 08:59:07.223160: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2f0e4600 of size 10747904 next 66\n",
"2024-12-07 08:59:07.223168: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2fb24600 of size 2686976 next 747\n",
"2024-12-07 08:59:07.223177: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe2fdb4600 of size 10747904 next 533\n",
"2024-12-07 08:59:07.223185: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe307f4600 of size 10747904 next 571\n",
"2024-12-07 08:59:07.223193: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe31234600 of size 10747904 next 488\n",
"2024-12-07 08:59:07.223201: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe31c74600 of size 10747904 next 710\n",
"2024-12-07 08:59:07.223210: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe326b4600 of size 10747904 next 552\n",
"2024-12-07 08:59:07.223219: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe330f4600 of size 10747904 next 46\n",
"2024-12-07 08:59:07.223227: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7abe33b34600 of size 36157952 next 18446744073709551615\n",
"2024-12-07 08:59:07.223236: I tensorflow/tsl/framework/bfc_allocator.cc:1075] Next region of size 4294967296\n",
"2024-12-07 08:59:07.223244: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad3f2000000 of size 2507232000 next 4\n",
"2024-12-07 08:59:07.223253: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad487715300 of size 101920000 next 5\n",
"2024-12-07 08:59:07.223265: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848000 of size 256 next 6\n",
"2024-12-07 08:59:07.223273: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848100 of size 256 next 7\n",
"2024-12-07 08:59:07.223281: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848200 of size 256 next 8\n",
"2024-12-07 08:59:07.223290: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848300 of size 256 next 9\n",
"2024-12-07 08:59:07.223299: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848400 of size 256 next 10\n",
"2024-12-07 08:59:07.223308: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad48d848500 of size 708736000 next 11\n",
"2024-12-07 08:59:07.223318: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4b7c2f900 of size 771456000 next 12\n",
"2024-12-07 08:59:07.223327: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e5be7500 of size 31360000 next 13\n",
"2024-12-07 08:59:07.223336: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cf900 of size 256 next 14\n",
"2024-12-07 08:59:07.223345: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cfa00 of size 256 next 15\n",
"2024-12-07 08:59:07.223352: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cfb00 of size 256 next 16\n",
"2024-12-07 08:59:07.223374: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cfc00 of size 256 next 17\n",
"2024-12-07 08:59:07.223383: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cfd00 of size 256 next 18\n",
"2024-12-07 08:59:07.223391: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cfe00 of size 256 next 19\n",
"2024-12-07 08:59:07.223400: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79cff00 of size 256 next 21\n",
"2024-12-07 08:59:07.223407: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0000 of size 256 next 22\n",
"2024-12-07 08:59:07.223416: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0100 of size 256 next 20\n",
"2024-12-07 08:59:07.223424: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0200 of size 256 next 586\n",
"2024-12-07 08:59:07.223433: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0300 of size 256 next 27\n",
"2024-12-07 08:59:07.223441: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0400 of size 256 next 23\n",
"2024-12-07 08:59:07.223450: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0500 of size 256 next 26\n",
"2024-12-07 08:59:07.223459: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0600 of size 256 next 30\n",
"2024-12-07 08:59:07.223468: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0700 of size 256 next 24\n",
"2024-12-07 08:59:07.223475: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0800 of size 256 next 79\n",
"2024-12-07 08:59:07.223484: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0900 of size 256 next 592\n",
"2024-12-07 08:59:07.223493: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0a00 of size 256 next 25\n",
"2024-12-07 08:59:07.223502: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0b00 of size 256 next 31\n",
"2024-12-07 08:59:07.223510: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0c00 of size 256 next 32\n",
"2024-12-07 08:59:07.223519: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0d00 of size 256 next 57\n",
"2024-12-07 08:59:07.223527: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0e00 of size 256 next 24960\n",
"2024-12-07 08:59:07.223536: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d0f00 of size 256 next 24951\n",
"2024-12-07 08:59:07.223545: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1000 of size 256 next 24929\n",
"2024-12-07 08:59:07.223553: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1100 of size 256 next 584\n",
"2024-12-07 08:59:07.223561: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1200 of size 256 next 41\n",
"2024-12-07 08:59:07.223569: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1300 of size 256 next 35\n",
"2024-12-07 08:59:07.223578: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1400 of size 256 next 36\n",
"2024-12-07 08:59:07.223586: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1500 of size 256 next 49\n",
"2024-12-07 08:59:07.223595: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1600 of size 256 next 45\n",
"2024-12-07 08:59:07.223603: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1700 of size 256 next 43\n",
"2024-12-07 08:59:07.223610: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1800 of size 256 next 44\n",
"2024-12-07 08:59:07.223619: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1900 of size 256 next 24946\n",
"2024-12-07 08:59:07.223627: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1a00 of size 256 next 604\n",
"2024-12-07 08:59:07.223636: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1b00 of size 256 next 435\n",
"2024-12-07 08:59:07.223646: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1c00 of size 256 next 564\n",
"2024-12-07 08:59:07.223655: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1d00 of size 256 next 523\n",
"2024-12-07 08:59:07.223664: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1e00 of size 256 next 48\n",
"2024-12-07 08:59:07.223672: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d1f00 of size 256 next 51\n",
"2024-12-07 08:59:07.223681: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d2000 of size 256 next 52\n",
"2024-12-07 08:59:07.223689: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d2100 of size 512 next 634\n",
"2024-12-07 08:59:07.223698: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d2300 of size 1024 next 514\n",
"2024-12-07 08:59:07.223707: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d2700 of size 1792 next 96\n",
"2024-12-07 08:59:07.223715: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d2e00 of size 1024 next 647\n",
"2024-12-07 08:59:07.223724: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3200 of size 256 next 589\n",
"2024-12-07 08:59:07.223732: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3300 of size 1280 next 506\n",
"2024-12-07 08:59:07.223742: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3800 of size 256 next 611\n",
"2024-12-07 08:59:07.223751: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3900 of size 256 next 172\n",
"2024-12-07 08:59:07.223760: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3a00 of size 256 next 677\n",
"2024-12-07 08:59:07.223768: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3b00 of size 256 next 613\n",
"2024-12-07 08:59:07.223776: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3c00 of size 256 next 489\n",
"2024-12-07 08:59:07.223785: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3d00 of size 256 next 24973\n",
"2024-12-07 08:59:07.223792: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3e00 of size 256 next 124\n",
"2024-12-07 08:59:07.223801: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d3f00 of size 256 next 24979\n",
"2024-12-07 08:59:07.223810: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4000 of size 256 next 453\n",
"2024-12-07 08:59:07.223819: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4100 of size 256 next 651\n",
"2024-12-07 08:59:07.223829: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4200 of size 256 next 658\n",
"2024-12-07 08:59:07.223847: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4300 of size 256 next 642\n",
"2024-12-07 08:59:07.223855: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4400 of size 768 next 135\n",
"2024-12-07 08:59:07.223864: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4700 of size 768 next 691\n",
"2024-12-07 08:59:07.223873: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4a00 of size 768 next 560\n",
"2024-12-07 08:59:07.223881: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d4d00 of size 768 next 428\n",
"2024-12-07 08:59:07.223890: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5000 of size 512 next 64\n",
"2024-12-07 08:59:07.223898: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5200 of size 512 next 527\n",
"2024-12-07 08:59:07.223907: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5400 of size 256 next 143\n",
"2024-12-07 08:59:07.223916: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5500 of size 512 next 486\n",
"2024-12-07 08:59:07.223925: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5700 of size 512 next 501\n",
"2024-12-07 08:59:07.223934: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5900 of size 768 next 539\n",
"2024-12-07 08:59:07.223943: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5c00 of size 768 next 60\n",
"2024-12-07 08:59:07.223951: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d5f00 of size 512 next 423\n",
"2024-12-07 08:59:07.223960: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6100 of size 256 next 173\n",
"2024-12-07 08:59:07.223968: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6200 of size 256 next 590\n",
"2024-12-07 08:59:07.223977: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6300 of size 512 next 98\n",
"2024-12-07 08:59:07.223986: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6500 of size 512 next 531\n",
"2024-12-07 08:59:07.223999: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6700 of size 768 next 663\n",
"2024-12-07 08:59:07.224008: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6a00 of size 768 next 548\n",
"2024-12-07 08:59:07.224016: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6d00 of size 512 next 131\n",
"2024-12-07 08:59:07.224025: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d6f00 of size 512 next 482\n",
"2024-12-07 08:59:07.224035: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7100 of size 512 next 109\n",
"2024-12-07 08:59:07.224043: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7300 of size 256 next 115\n",
"2024-12-07 08:59:07.224052: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7400 of size 256 next 116\n",
"2024-12-07 08:59:07.224061: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7500 of size 256 next 741\n",
"2024-12-07 08:59:07.224069: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7600 of size 512 next 86\n",
"2024-12-07 08:59:07.224078: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79d7800 of size 768 next 491\n",
"2024-12-07 08:59:07.224088: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7b00 of size 256 next 502\n",
"2024-12-07 08:59:07.224099: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7c00 of size 256 next 24995\n",
"2024-12-07 08:59:07.224108: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7d00 of size 256 next 641\n",
"2024-12-07 08:59:07.224117: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7e00 of size 256 next 81\n",
"2024-12-07 08:59:07.224126: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d7f00 of size 256 next 577\n",
"2024-12-07 08:59:07.224133: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8000 of size 256 next 123\n",
"2024-12-07 08:59:07.224142: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8100 of size 256 next 117\n",
"2024-12-07 08:59:07.224151: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8200 of size 256 next 118\n",
"2024-12-07 08:59:07.224164: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8300 of size 256 next 438\n",
"2024-12-07 08:59:07.224173: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8400 of size 256 next 505\n",
"2024-12-07 08:59:07.224182: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8500 of size 256 next 628\n",
"2024-12-07 08:59:07.224190: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8600 of size 256 next 127\n",
"2024-12-07 08:59:07.224199: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8700 of size 256 next 113\n",
"2024-12-07 08:59:07.224208: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8800 of size 256 next 126\n",
"2024-12-07 08:59:07.224218: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8900 of size 256 next 129\n",
"2024-12-07 08:59:07.224227: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8a00 of size 256 next 130\n",
"2024-12-07 08:59:07.224235: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8b00 of size 256 next 164\n",
"2024-12-07 08:59:07.224244: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8c00 of size 256 next 499\n",
"2024-12-07 08:59:07.224253: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8d00 of size 256 next 114\n",
"2024-12-07 08:59:07.224262: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8e00 of size 256 next 451\n",
"2024-12-07 08:59:07.224271: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d8f00 of size 256 next 542\n",
"2024-12-07 08:59:07.224279: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9000 of size 256 next 593\n",
"2024-12-07 08:59:07.224288: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9100 of size 256 next 450\n",
"2024-12-07 08:59:07.224297: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9200 of size 256 next 480\n",
"2024-12-07 08:59:07.224306: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9300 of size 256 next 550\n",
"2024-12-07 08:59:07.224315: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9400 of size 512 next 102\n",
"2024-12-07 08:59:07.224323: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9600 of size 512 next 554\n",
"2024-12-07 08:59:07.224332: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9800 of size 1280 next 643\n",
"2024-12-07 08:59:07.224340: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79d9d00 of size 768 next 132\n",
"2024-12-07 08:59:07.224349: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79da000 of size 1792 next 139\n",
"2024-12-07 08:59:07.224374: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79da700 of size 1792 next 140\n",
"2024-12-07 08:59:07.224384: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dae00 of size 256 next 141\n",
"2024-12-07 08:59:07.224393: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79daf00 of size 256 next 142\n",
"2024-12-07 08:59:07.224402: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db000 of size 256 next 598\n",
"2024-12-07 08:59:07.224410: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db100 of size 256 next 463\n",
"2024-12-07 08:59:07.224419: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db200 of size 256 next 692\n",
"2024-12-07 08:59:07.224428: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db300 of size 256 next 467\n",
"2024-12-07 08:59:07.224436: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db400 of size 256 next 690\n",
"2024-12-07 08:59:07.224445: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db500 of size 256 next 466\n",
"2024-12-07 08:59:07.224454: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db600 of size 256 next 616\n",
"2024-12-07 08:59:07.224462: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db700 of size 256 next 24947\n",
"2024-12-07 08:59:07.224471: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db800 of size 256 next 559\n",
"2024-12-07 08:59:07.224479: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79db900 of size 256 next 633\n",
"2024-12-07 08:59:07.224488: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dba00 of size 256 next 24980\n",
"2024-12-07 08:59:07.224497: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dbb00 of size 256 next 144\n",
"2024-12-07 08:59:07.224506: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dbc00 of size 1024 next 148\n",
"2024-12-07 08:59:07.224516: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dc000 of size 1024 next 149\n",
"2024-12-07 08:59:07.224524: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dc400 of size 1280 next 676\n",
"2024-12-07 08:59:07.224533: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dc900 of size 256 next 151\n",
"2024-12-07 08:59:07.224542: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dca00 of size 512 next 154\n",
"2024-12-07 08:59:07.224551: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dcc00 of size 512 next 155\n",
"2024-12-07 08:59:07.224559: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dce00 of size 256 next 156\n",
"2024-12-07 08:59:07.224567: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dcf00 of size 256 next 157\n",
"2024-12-07 08:59:07.224576: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd000 of size 256 next 158\n",
"2024-12-07 08:59:07.224584: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd100 of size 256 next 161\n",
"2024-12-07 08:59:07.224593: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd200 of size 256 next 162\n",
"2024-12-07 08:59:07.224601: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd300 of size 256 next 160\n",
"2024-12-07 08:59:07.224609: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd400 of size 256 next 169\n",
"2024-12-07 08:59:07.224618: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd500 of size 256 next 166\n",
"2024-12-07 08:59:07.224627: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd600 of size 256 next 167\n",
"2024-12-07 08:59:07.224635: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd700 of size 256 next 168\n",
"2024-12-07 08:59:07.224644: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd800 of size 256 next 163\n",
"2024-12-07 08:59:07.224652: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dd900 of size 256 next 170\n",
"2024-12-07 08:59:07.224661: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dda00 of size 256 next 171\n",
"2024-12-07 08:59:07.224670: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79ddb00 of size 2048 next 165\n",
"2024-12-07 08:59:07.224678: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79de300 of size 256 next 174\n",
"2024-12-07 08:59:07.224687: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79de400 of size 256 next 175\n",
"2024-12-07 08:59:07.224696: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79de500 of size 256 next 176\n",
"2024-12-07 08:59:07.224704: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79de600 of size 768 next 177\n",
"2024-12-07 08:59:07.224713: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79de900 of size 768 next 178\n",
"2024-12-07 08:59:07.224722: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dec00 of size 256 next 179\n",
"2024-12-07 08:59:07.224731: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79ded00 of size 256 next 180\n",
"2024-12-07 08:59:07.224739: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dee00 of size 512 next 181\n",
"2024-12-07 08:59:07.224748: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79df000 of size 512 next 182\n",
"2024-12-07 08:59:07.224756: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79df200 of size 512 next 185\n",
"2024-12-07 08:59:07.224765: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79df400 of size 512 next 186\n",
"2024-12-07 08:59:07.224774: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79df600 of size 512 next 188\n",
"2024-12-07 08:59:07.224782: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79df800 of size 512 next 189\n",
"2024-12-07 08:59:07.224790: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dfa00 of size 512 next 192\n",
"2024-12-07 08:59:07.224798: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dfc00 of size 512 next 193\n",
"2024-12-07 08:59:07.224807: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79dfe00 of size 512 next 196\n",
"2024-12-07 08:59:07.224815: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0000 of size 512 next 197\n",
"2024-12-07 08:59:07.224823: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0200 of size 512 next 200\n",
"2024-12-07 08:59:07.224832: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0400 of size 512 next 201\n",
"2024-12-07 08:59:07.224840: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0600 of size 512 next 202\n",
"2024-12-07 08:59:07.224848: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0800 of size 768 next 29\n",
"2024-12-07 08:59:07.224857: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0b00 of size 512 next 78\n",
"2024-12-07 08:59:07.224865: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0d00 of size 512 next 558\n",
"2024-12-07 08:59:07.224874: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e0f00 of size 512 next 657\n",
"2024-12-07 08:59:07.224883: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1100 of size 768 next 528\n",
"2024-12-07 08:59:07.224891: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1400 of size 512 next 33\n",
"2024-12-07 08:59:07.224899: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1600 of size 768 next 664\n",
"2024-12-07 08:59:07.224907: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1900 of size 256 next 515\n",
"2024-12-07 08:59:07.224916: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1a00 of size 256 next 723\n",
"2024-12-07 08:59:07.224924: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1b00 of size 256 next 24991\n",
"2024-12-07 08:59:07.224933: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1c00 of size 256 next 99\n",
"2024-12-07 08:59:07.224941: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e1d00 of size 512 next 152\n",
"2024-12-07 08:59:07.224950: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79e1f00 of size 1792 next 92\n",
"2024-12-07 08:59:07.224966: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2600 of size 256 next 462\n",
"2024-12-07 08:59:07.224974: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2700 of size 256 next 614\n",
"2024-12-07 08:59:07.224982: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2800 of size 256 next 557\n",
"2024-12-07 08:59:07.224991: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2900 of size 256 next 521\n",
"2024-12-07 08:59:07.224999: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2a00 of size 256 next 659\n",
"2024-12-07 08:59:07.225007: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2b00 of size 256 next 24934\n",
"2024-12-07 08:59:07.225016: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2c00 of size 256 next 543\n",
"2024-12-07 08:59:07.225026: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e2d00 of size 768 next 568\n",
"2024-12-07 08:59:07.225034: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79e3000 of size 768 next 639\n",
"2024-12-07 08:59:07.225042: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e3300 of size 512 next 53\n",
"2024-12-07 08:59:07.225051: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e3500 of size 1024 next 606\n",
"2024-12-07 08:59:07.225060: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e3900 of size 256 next 575\n",
"2024-12-07 08:59:07.225069: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e3a00 of size 256 next 607\n",
"2024-12-07 08:59:07.225078: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e3b00 of size 1280 next 420\n",
"2024-12-07 08:59:07.225087: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4000 of size 256 next 689\n",
"2024-12-07 08:59:07.225099: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4100 of size 2048 next 465\n",
"2024-12-07 08:59:07.225108: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4900 of size 256 next 712\n",
"2024-12-07 08:59:07.225116: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4a00 of size 256 next 468\n",
"2024-12-07 08:59:07.225124: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4b00 of size 256 next 742\n",
"2024-12-07 08:59:07.225133: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4c00 of size 256 next 578\n",
"2024-12-07 08:59:07.225142: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4d00 of size 512 next 39\n",
"2024-12-07 08:59:07.225151: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e4f00 of size 512 next 635\n",
"2024-12-07 08:59:07.225159: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e5100 of size 256 next 446\n",
"2024-12-07 08:59:07.225168: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79e5200 of size 2048 next 540\n",
"2024-12-07 08:59:07.225176: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e5a00 of size 768 next 34\n",
"2024-12-07 08:59:07.225185: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e5d00 of size 256 next 623\n",
"2024-12-07 08:59:07.225194: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e5e00 of size 512 next 492\n",
"2024-12-07 08:59:07.225203: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6000 of size 512 next 702\n",
"2024-12-07 08:59:07.225212: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6200 of size 512 next 752\n",
"2024-12-07 08:59:07.225220: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6400 of size 512 next 706\n",
"2024-12-07 08:59:07.225229: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6600 of size 1536 next 472\n",
"2024-12-07 08:59:07.225238: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6c00 of size 256 next 90\n",
"2024-12-07 08:59:07.225246: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6d00 of size 256 next 581\n",
"2024-12-07 08:59:07.225255: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6e00 of size 256 next 610\n",
"2024-12-07 08:59:07.225263: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e6f00 of size 512 next 646\n",
"2024-12-07 08:59:07.225271: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7100 of size 512 next 576\n",
"2024-12-07 08:59:07.225280: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e79e7300 of size 512 next 583\n",
"2024-12-07 08:59:07.225289: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7500 of size 256 next 487\n",
"2024-12-07 08:59:07.225297: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7600 of size 256 next 522\n",
"2024-12-07 08:59:07.225306: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7700 of size 256 next 459\n",
"2024-12-07 08:59:07.225314: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7800 of size 256 next 654\n",
"2024-12-07 08:59:07.225323: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7900 of size 768 next 596\n",
"2024-12-07 08:59:07.225335: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7c00 of size 512 next 648\n",
"2024-12-07 08:59:07.225344: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e7e00 of size 512 next 625\n",
"2024-12-07 08:59:07.225354: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e8000 of size 1280 next 735\n",
"2024-12-07 08:59:07.225373: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e8500 of size 512 next 652\n",
"2024-12-07 08:59:07.225382: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e8700 of size 512 next 457\n",
"2024-12-07 08:59:07.225391: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e8900 of size 512 next 28\n",
"2024-12-07 08:59:07.225400: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79e8b00 of size 20992 next 37\n",
"2024-12-07 08:59:07.225409: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79edd00 of size 32768 next 159\n",
"2024-12-07 08:59:07.225418: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e79f5d00 of size 246784 next 619\n",
"2024-12-07 08:59:07.225426: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a32100 of size 164608 next 566\n",
"2024-12-07 08:59:07.225434: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5a400 of size 256 next 42\n",
"2024-12-07 08:59:07.225448: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5a500 of size 256 next 546\n",
"2024-12-07 08:59:07.225457: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a5a600 of size 4096 next 644\n",
"2024-12-07 08:59:07.225466: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5b600 of size 512 next 569\n",
"2024-12-07 08:59:07.225474: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a5b800 of size 1536 next 421\n",
"2024-12-07 08:59:07.225482: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5be00 of size 512 next 474\n",
"2024-12-07 08:59:07.225490: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5c000 of size 512 next 624\n",
"2024-12-07 08:59:07.225498: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a5c200 of size 2560 next 496\n",
"2024-12-07 08:59:07.225507: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5cc00 of size 512 next 437\n",
"2024-12-07 08:59:07.225515: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5ce00 of size 512 next 763\n",
"2024-12-07 08:59:07.225525: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5d000 of size 512 next 73\n",
"2024-12-07 08:59:07.225534: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5d200 of size 512 next 91\n",
"2024-12-07 08:59:07.225542: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5d400 of size 512 next 650\n",
"2024-12-07 08:59:07.225549: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5d600 of size 768 next 137\n",
"2024-12-07 08:59:07.225554: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5d900 of size 512 next 431\n",
"2024-12-07 08:59:07.225561: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5db00 of size 512 next 145\n",
"2024-12-07 08:59:07.225567: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5dd00 of size 512 next 481\n",
"2024-12-07 08:59:07.225573: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5df00 of size 512 next 464\n",
"2024-12-07 08:59:07.225579: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5e100 of size 1536 next 442\n",
"2024-12-07 08:59:07.225585: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5e700 of size 512 next 730\n",
"2024-12-07 08:59:07.225591: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5e900 of size 256 next 518\n",
"2024-12-07 08:59:07.225597: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5ea00 of size 512 next 110\n",
"2024-12-07 08:59:07.225603: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a5ec00 of size 256 next 494\n",
"2024-12-07 08:59:07.225609: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5ed00 of size 256 next 100\n",
"2024-12-07 08:59:07.225615: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a5ee00 of size 32768 next 693\n",
"2024-12-07 08:59:07.225621: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a66e00 of size 1024 next 696\n",
"2024-12-07 08:59:07.225627: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a67200 of size 512 next 470\n",
"2024-12-07 08:59:07.225634: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a67400 of size 59648 next 138\n",
"2024-12-07 08:59:07.225641: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a75d00 of size 32768 next 56\n",
"2024-12-07 08:59:07.225648: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a7dd00 of size 65536 next 629\n",
"2024-12-07 08:59:07.225653: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7a8dd00 of size 1024 next 666\n",
"2024-12-07 08:59:07.225660: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7a8e100 of size 130560 next 493\n",
"2024-12-07 08:59:07.225667: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7aadf00 of size 65536 next 80\n",
"2024-12-07 08:59:07.225673: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7abdf00 of size 131072 next 38\n",
"2024-12-07 08:59:07.225683: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7addf00 of size 512 next 545\n",
"2024-12-07 08:59:07.225689: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ade100 of size 65536 next 697\n",
"2024-12-07 08:59:07.225696: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7aee100 of size 65536 next 637\n",
"2024-12-07 08:59:07.225702: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7afe100 of size 115712 next 58\n",
"2024-12-07 08:59:07.225709: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b1a500 of size 512 next 108\n",
"2024-12-07 08:59:07.225715: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b1a700 of size 131072 next 439\n",
"2024-12-07 08:59:07.225721: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b3a700 of size 131072 next 74\n",
"2024-12-07 08:59:07.225728: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b5a700 of size 1024 next 601\n",
"2024-12-07 08:59:07.225733: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b5ab00 of size 65536 next 424\n",
"2024-12-07 08:59:07.225739: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b6ab00 of size 512 next 609\n",
"2024-12-07 08:59:07.225746: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b6ad00 of size 131072 next 685\n",
"2024-12-07 08:59:07.225752: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b8ad00 of size 1024 next 504\n",
"2024-12-07 08:59:07.225758: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b8b100 of size 32768 next 136\n",
"2024-12-07 08:59:07.225764: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b93100 of size 1792 next 475\n",
"2024-12-07 08:59:07.225770: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7b93800 of size 65536 next 67\n",
"2024-12-07 08:59:07.225777: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ba3800 of size 131072 next 672\n",
"2024-12-07 08:59:07.225782: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4e7bc3800 of size 512 next 580\n",
"2024-12-07 08:59:07.225789: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7bc3a00 of size 1024 next 707\n",
"2024-12-07 08:59:07.225795: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7bc3e00 of size 198656 next 600\n",
"2024-12-07 08:59:07.225802: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7bf4600 of size 1792 next 679\n",
"2024-12-07 08:59:07.225808: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7bf4d00 of size 1024 next 441\n",
"2024-12-07 08:59:07.225814: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7bf5100 of size 101376 next 106\n",
"2024-12-07 08:59:07.225820: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c0dd00 of size 65536 next 183\n",
"2024-12-07 08:59:07.225827: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c1dd00 of size 65536 next 184\n",
"2024-12-07 08:59:07.225833: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c2dd00 of size 65536 next 187\n",
"2024-12-07 08:59:07.225840: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c3dd00 of size 65536 next 112\n",
"2024-12-07 08:59:07.225846: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c4dd00 of size 65536 next 740\n",
"2024-12-07 08:59:07.225852: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c5dd00 of size 131072 next 436\n",
"2024-12-07 08:59:07.225861: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c7dd00 of size 131072 next 430\n",
"2024-12-07 08:59:07.225868: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7c9dd00 of size 65536 next 526\n",
"2024-12-07 08:59:07.225874: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7cadd00 of size 65536 next 678\n",
"2024-12-07 08:59:07.225880: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7cbdd00 of size 65536 next 508\n",
"2024-12-07 08:59:07.225886: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ccdd00 of size 65536 next 731\n",
"2024-12-07 08:59:07.225892: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7cddd00 of size 65536 next 627\n",
"2024-12-07 08:59:07.225899: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7cedd00 of size 131072 next 537\n",
"2024-12-07 08:59:07.225905: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d0dd00 of size 65536 next 478\n",
"2024-12-07 08:59:07.225911: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d1dd00 of size 65536 next 503\n",
"2024-12-07 08:59:07.225917: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d2dd00 of size 65536 next 594\n",
"2024-12-07 08:59:07.225923: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d3dd00 of size 181248 next 153\n",
"2024-12-07 08:59:07.225930: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d6a100 of size 65536 next 190\n",
"2024-12-07 08:59:07.225937: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d7a100 of size 65536 next 191\n",
"2024-12-07 08:59:07.225942: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d8a100 of size 65536 next 194\n",
"2024-12-07 08:59:07.225949: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7d9a100 of size 65536 next 195\n",
"2024-12-07 08:59:07.225954: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7daa100 of size 65536 next 198\n",
"2024-12-07 08:59:07.225961: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7dba100 of size 65536 next 199\n",
"2024-12-07 08:59:07.225967: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7dca100 of size 512 next 203\n",
"2024-12-07 08:59:07.225972: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7dca300 of size 512 next 204\n",
"2024-12-07 08:59:07.225979: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7dca500 of size 131072 next 205\n",
"2024-12-07 08:59:07.225985: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7dea500 of size 261120 next 147\n",
"2024-12-07 08:59:07.225993: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e2a100 of size 256 next 620\n",
"2024-12-07 08:59:07.225999: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e2a200 of size 256 next 612\n",
"2024-12-07 08:59:07.226005: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e2a300 of size 131072 next 682\n",
"2024-12-07 08:59:07.226011: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e4a300 of size 32768 next 709\n",
"2024-12-07 08:59:07.226017: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e52300 of size 32768 next 698\n",
"2024-12-07 08:59:07.226023: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e5a300 of size 115712 next 88\n",
"2024-12-07 08:59:07.226030: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e76700 of size 1280 next 456\n",
"2024-12-07 08:59:07.226036: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e76c00 of size 64256 next 125\n",
"2024-12-07 08:59:07.226042: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e86700 of size 32768 next 75\n",
"2024-12-07 08:59:07.226052: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e8e700 of size 1024 next 535\n",
"2024-12-07 08:59:07.226058: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e8eb00 of size 1024 next 562\n",
"2024-12-07 08:59:07.226065: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e8ef00 of size 1024 next 461\n",
"2024-12-07 08:59:07.226071: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e8f300 of size 1024 next 656\n",
"2024-12-07 08:59:07.226077: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e8f700 of size 43520 next 146\n",
"2024-12-07 08:59:07.226083: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e9a100 of size 1024 next 206\n",
"2024-12-07 08:59:07.226090: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e9a500 of size 1024 next 207\n",
"2024-12-07 08:59:07.226096: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7e9a900 of size 131072 next 208\n",
"2024-12-07 08:59:07.226102: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7eba900 of size 131072 next 209\n",
"2024-12-07 08:59:07.226111: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7eda900 of size 512 next 210\n",
"2024-12-07 08:59:07.226117: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edab00 of size 512 next 211\n",
"2024-12-07 08:59:07.226123: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edad00 of size 512 next 212\n",
"2024-12-07 08:59:07.226129: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edaf00 of size 512 next 213\n",
"2024-12-07 08:59:07.226135: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edb100 of size 512 next 214\n",
"2024-12-07 08:59:07.226141: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edb300 of size 512 next 215\n",
"2024-12-07 08:59:07.226147: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7edb500 of size 65536 next 216\n",
"2024-12-07 08:59:07.226154: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7eeb500 of size 65536 next 217\n",
"2024-12-07 08:59:07.226160: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7efb500 of size 512 next 218\n",
"2024-12-07 08:59:07.226166: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7efb700 of size 512 next 219\n",
"2024-12-07 08:59:07.226172: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7efb900 of size 65536 next 220\n",
"2024-12-07 08:59:07.226178: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f0b900 of size 65536 next 221\n",
"2024-12-07 08:59:07.226185: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f1b900 of size 512 next 222\n",
"2024-12-07 08:59:07.226191: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f1bb00 of size 512 next 223\n",
"2024-12-07 08:59:07.226197: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f1bd00 of size 65536 next 224\n",
"2024-12-07 08:59:07.226204: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f2bd00 of size 65536 next 225\n",
"2024-12-07 08:59:07.226210: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f3bd00 of size 512 next 226\n",
"2024-12-07 08:59:07.226220: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f3bf00 of size 512 next 227\n",
"2024-12-07 08:59:07.226226: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f3c100 of size 65536 next 228\n",
"2024-12-07 08:59:07.226233: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f4c100 of size 65536 next 229\n",
"2024-12-07 08:59:07.226239: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f5c100 of size 512 next 230\n",
"2024-12-07 08:59:07.226245: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f5c300 of size 512 next 231\n",
"2024-12-07 08:59:07.226250: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f5c500 of size 65536 next 232\n",
"2024-12-07 08:59:07.226257: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f6c500 of size 65536 next 233\n",
"2024-12-07 08:59:07.226263: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7c500 of size 512 next 234\n",
"2024-12-07 08:59:07.226270: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7c700 of size 512 next 235\n",
"2024-12-07 08:59:07.226275: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7c900 of size 512 next 236\n",
"2024-12-07 08:59:07.226282: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7cb00 of size 512 next 237\n",
"2024-12-07 08:59:07.226288: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7cd00 of size 512 next 238\n",
"2024-12-07 08:59:07.226294: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7cf00 of size 512 next 239\n",
"2024-12-07 08:59:07.226300: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f7d100 of size 131072 next 240\n",
"2024-12-07 08:59:07.226306: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7f9d100 of size 131072 next 241\n",
"2024-12-07 08:59:07.226313: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7fbd100 of size 1024 next 242\n",
"2024-12-07 08:59:07.226319: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7fbd500 of size 1024 next 243\n",
"2024-12-07 08:59:07.226325: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7fbd900 of size 131072 next 244\n",
"2024-12-07 08:59:07.226332: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7fdd900 of size 131072 next 245\n",
"2024-12-07 08:59:07.226338: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffd900 of size 512 next 246\n",
"2024-12-07 08:59:07.226344: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffdb00 of size 512 next 247\n",
"2024-12-07 08:59:07.226350: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffdd00 of size 512 next 248\n",
"2024-12-07 08:59:07.226356: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffdf00 of size 512 next 249\n",
"2024-12-07 08:59:07.226372: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffe100 of size 512 next 250\n",
"2024-12-07 08:59:07.226378: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffe300 of size 512 next 251\n",
"2024-12-07 08:59:07.226384: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e7ffe500 of size 65536 next 252\n",
"2024-12-07 08:59:07.226391: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e800e500 of size 65536 next 253\n",
"2024-12-07 08:59:07.226397: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e801e500 of size 512 next 254\n",
"2024-12-07 08:59:07.226403: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e801e700 of size 512 next 255\n",
"2024-12-07 08:59:07.226409: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e801e900 of size 65536 next 256\n",
"2024-12-07 08:59:07.226415: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e802e900 of size 65536 next 257\n",
"2024-12-07 08:59:07.226421: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e803e900 of size 512 next 258\n",
"2024-12-07 08:59:07.226427: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e803eb00 of size 512 next 259\n",
"2024-12-07 08:59:07.226434: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e803ed00 of size 65536 next 260\n",
"2024-12-07 08:59:07.226440: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e804ed00 of size 65536 next 261\n",
"2024-12-07 08:59:07.226446: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e805ed00 of size 512 next 262\n",
"2024-12-07 08:59:07.226452: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e805ef00 of size 512 next 263\n",
"2024-12-07 08:59:07.226458: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e805f100 of size 65536 next 264\n",
"2024-12-07 08:59:07.226464: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e806f100 of size 65536 next 265\n",
"2024-12-07 08:59:07.226470: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e807f100 of size 512 next 266\n",
"2024-12-07 08:59:07.226477: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e807f300 of size 512 next 267\n",
"2024-12-07 08:59:07.226482: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e807f500 of size 65536 next 268\n",
"2024-12-07 08:59:07.226489: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e808f500 of size 65536 next 269\n",
"2024-12-07 08:59:07.226497: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809f500 of size 512 next 270\n",
"2024-12-07 08:59:07.226505: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809f700 of size 512 next 271\n",
"2024-12-07 08:59:07.226513: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809f900 of size 512 next 272\n",
"2024-12-07 08:59:07.226522: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809fb00 of size 512 next 273\n",
"2024-12-07 08:59:07.226530: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809fd00 of size 512 next 274\n",
"2024-12-07 08:59:07.226539: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e809ff00 of size 512 next 275\n",
"2024-12-07 08:59:07.226548: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e80a0100 of size 131072 next 276\n",
"2024-12-07 08:59:07.226556: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e80c0100 of size 131072 next 277\n",
"2024-12-07 08:59:07.226565: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e80e0100 of size 1024 next 278\n",
"2024-12-07 08:59:07.226573: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e80e0500 of size 1024 next 279\n",
"2024-12-07 08:59:07.226580: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e80e0900 of size 131072 next 280\n",
"2024-12-07 08:59:07.226589: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8100900 of size 131072 next 281\n",
"2024-12-07 08:59:07.226598: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8120900 of size 512 next 282\n",
"2024-12-07 08:59:07.226606: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8120b00 of size 512 next 283\n",
"2024-12-07 08:59:07.226615: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8120d00 of size 512 next 284\n",
"2024-12-07 08:59:07.226629: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8120f00 of size 512 next 285\n",
"2024-12-07 08:59:07.226637: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8121100 of size 512 next 286\n",
"2024-12-07 08:59:07.226645: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8121300 of size 512 next 287\n",
"2024-12-07 08:59:07.226653: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8121500 of size 65536 next 288\n",
"2024-12-07 08:59:07.226662: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8131500 of size 65536 next 289\n",
"2024-12-07 08:59:07.226671: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8141500 of size 512 next 290\n",
"2024-12-07 08:59:07.226680: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8141700 of size 512 next 291\n",
"2024-12-07 08:59:07.226688: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8141900 of size 65536 next 292\n",
"2024-12-07 08:59:07.226696: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8151900 of size 65536 next 293\n",
"2024-12-07 08:59:07.226705: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8161900 of size 512 next 294\n",
"2024-12-07 08:59:07.226714: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8161b00 of size 512 next 295\n",
"2024-12-07 08:59:07.226723: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8161d00 of size 65536 next 296\n",
"2024-12-07 08:59:07.226736: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8171d00 of size 65536 next 297\n",
"2024-12-07 08:59:07.226745: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8181d00 of size 512 next 298\n",
"2024-12-07 08:59:07.226753: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8181f00 of size 512 next 299\n",
"2024-12-07 08:59:07.226760: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8182100 of size 65536 next 300\n",
"2024-12-07 08:59:07.226769: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8192100 of size 65536 next 301\n",
"2024-12-07 08:59:07.226778: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81a2100 of size 512 next 302\n",
"2024-12-07 08:59:07.226786: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81a2300 of size 512 next 303\n",
"2024-12-07 08:59:07.226795: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81a2500 of size 65536 next 304\n",
"2024-12-07 08:59:07.226803: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81b2500 of size 65536 next 305\n",
"2024-12-07 08:59:07.226811: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2500 of size 512 next 306\n",
"2024-12-07 08:59:07.226820: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2700 of size 512 next 307\n",
"2024-12-07 08:59:07.226828: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2900 of size 512 next 308\n",
"2024-12-07 08:59:07.226835: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2b00 of size 512 next 309\n",
"2024-12-07 08:59:07.226844: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2d00 of size 512 next 310\n",
"2024-12-07 08:59:07.226853: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c2f00 of size 512 next 311\n",
"2024-12-07 08:59:07.226862: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81c3100 of size 131072 next 312\n",
"2024-12-07 08:59:07.226870: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e81e3100 of size 131072 next 313\n",
"2024-12-07 08:59:07.226879: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8203100 of size 1024 next 314\n",
"2024-12-07 08:59:07.226887: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8203500 of size 1024 next 315\n",
"2024-12-07 08:59:07.226896: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8203900 of size 131072 next 316\n",
"2024-12-07 08:59:07.226904: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8223900 of size 131072 next 317\n",
"2024-12-07 08:59:07.226912: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8243900 of size 512 next 318\n",
"2024-12-07 08:59:07.226921: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8243b00 of size 512 next 319\n",
"2024-12-07 08:59:07.226929: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8243d00 of size 512 next 320\n",
"2024-12-07 08:59:07.226937: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8243f00 of size 512 next 321\n",
"2024-12-07 08:59:07.226945: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8244100 of size 512 next 322\n",
"2024-12-07 08:59:07.226953: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8244300 of size 512 next 323\n",
"2024-12-07 08:59:07.226962: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8244500 of size 115712 next 324\n",
"2024-12-07 08:59:07.226970: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8260900 of size 115712 next 325\n",
"2024-12-07 08:59:07.226978: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827cd00 of size 1024 next 326\n",
"2024-12-07 08:59:07.226987: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827d100 of size 1024 next 327\n",
"2024-12-07 08:59:07.226995: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827d500 of size 512 next 328\n",
"2024-12-07 08:59:07.227004: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827d700 of size 512 next 329\n",
"2024-12-07 08:59:07.227012: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827d900 of size 512 next 330\n",
"2024-12-07 08:59:07.227020: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827db00 of size 512 next 331\n",
"2024-12-07 08:59:07.227029: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e827dd00 of size 131072 next 332\n",
"2024-12-07 08:59:07.227037: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e829dd00 of size 131072 next 333\n",
"2024-12-07 08:59:07.227045: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82bdd00 of size 512 next 334\n",
"2024-12-07 08:59:07.227054: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82bdf00 of size 512 next 335\n",
"2024-12-07 08:59:07.227062: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82be100 of size 131072 next 336\n",
"2024-12-07 08:59:07.227071: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82de100 of size 131072 next 337\n",
"2024-12-07 08:59:07.227079: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82fe100 of size 1024 next 338\n",
"2024-12-07 08:59:07.227087: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82fe500 of size 1024 next 339\n",
"2024-12-07 08:59:07.227096: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e82fe900 of size 131072 next 340\n",
"2024-12-07 08:59:07.227110: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e831e900 of size 131072 next 341\n",
"2024-12-07 08:59:07.227118: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e833e900 of size 1024 next 342\n",
"2024-12-07 08:59:07.227126: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e833ed00 of size 1024 next 343\n",
"2024-12-07 08:59:07.227134: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e833f100 of size 131072 next 344\n",
"2024-12-07 08:59:07.227143: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e835f100 of size 131072 next 345\n",
"2024-12-07 08:59:07.227151: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e837f100 of size 1024 next 346\n",
"2024-12-07 08:59:07.227158: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e837f500 of size 1024 next 347\n",
"2024-12-07 08:59:07.227167: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e837f900 of size 131072 next 348\n",
"2024-12-07 08:59:07.227176: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e839f900 of size 131072 next 349\n",
"2024-12-07 08:59:07.227185: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83bf900 of size 512 next 350\n",
"2024-12-07 08:59:07.227193: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83bfb00 of size 512 next 351\n",
"2024-12-07 08:59:07.227201: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83bfd00 of size 32768 next 352\n",
"2024-12-07 08:59:07.227209: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83c7d00 of size 32768 next 353\n",
"2024-12-07 08:59:07.227218: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83cfd00 of size 256 next 354\n",
"2024-12-07 08:59:07.227226: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83cfe00 of size 256 next 355\n",
"2024-12-07 08:59:07.227235: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83cff00 of size 1792 next 356\n",
"2024-12-07 08:59:07.227243: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83d0600 of size 1792 next 357\n",
"2024-12-07 08:59:07.227251: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83d0d00 of size 1792 next 358\n",
"2024-12-07 08:59:07.227260: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83d1400 of size 1792 next 359\n",
"2024-12-07 08:59:07.227269: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e83d1b00 of size 458752 next 360\n",
"2024-12-07 08:59:07.227277: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8441b00 of size 458752 next 361\n",
"2024-12-07 08:59:07.227286: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b1b00 of size 1024 next 362\n",
"2024-12-07 08:59:07.227295: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b1f00 of size 1024 next 363\n",
"2024-12-07 08:59:07.227303: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b2300 of size 1024 next 364\n",
"2024-12-07 08:59:07.227311: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b2700 of size 1024 next 365\n",
"2024-12-07 08:59:07.227320: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b2b00 of size 1024 next 366\n",
"2024-12-07 08:59:07.227329: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b2f00 of size 1024 next 367\n",
"2024-12-07 08:59:07.227337: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84b3300 of size 131072 next 368\n",
"2024-12-07 08:59:07.227349: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84d3300 of size 131072 next 369\n",
"2024-12-07 08:59:07.227367: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3300 of size 512 next 370\n",
"2024-12-07 08:59:07.227377: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3500 of size 512 next 371\n",
"2024-12-07 08:59:07.227385: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3700 of size 512 next 372\n",
"2024-12-07 08:59:07.227393: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3900 of size 512 next 373\n",
"2024-12-07 08:59:07.227402: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3b00 of size 512 next 374\n",
"2024-12-07 08:59:07.227410: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3d00 of size 512 next 375\n",
"2024-12-07 08:59:07.227418: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84f3f00 of size 32768 next 376\n",
"2024-12-07 08:59:07.227427: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e84fbf00 of size 32768 next 377\n",
"2024-12-07 08:59:07.227436: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8503f00 of size 256 next 378\n",
"2024-12-07 08:59:07.227445: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504000 of size 256 next 379\n",
"2024-12-07 08:59:07.227453: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504100 of size 1280 next 380\n",
"2024-12-07 08:59:07.227461: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504600 of size 1280 next 381\n",
"2024-12-07 08:59:07.227469: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504b00 of size 256 next 382\n",
"2024-12-07 08:59:07.227478: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504c00 of size 256 next 383\n",
"2024-12-07 08:59:07.227487: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504d00 of size 256 next 384\n",
"2024-12-07 08:59:07.227495: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504e00 of size 256 next 385\n",
"2024-12-07 08:59:07.227503: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8504f00 of size 256 next 386\n",
"2024-12-07 08:59:07.227513: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505000 of size 256 next 387\n",
"2024-12-07 08:59:07.227522: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505100 of size 256 next 388\n",
"2024-12-07 08:59:07.227531: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505200 of size 256 next 389\n",
"2024-12-07 08:59:07.227540: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505300 of size 256 next 390\n",
"2024-12-07 08:59:07.227547: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505400 of size 256 next 391\n",
"2024-12-07 08:59:07.227556: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505500 of size 256 next 392\n",
"2024-12-07 08:59:07.227565: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505600 of size 256 next 393\n",
"2024-12-07 08:59:07.227573: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505700 of size 256 next 394\n",
"2024-12-07 08:59:07.227581: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505800 of size 256 next 395\n",
"2024-12-07 08:59:07.227589: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505900 of size 256 next 396\n",
"2024-12-07 08:59:07.227598: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505a00 of size 256 next 397\n",
"2024-12-07 08:59:07.227606: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505b00 of size 256 next 398\n",
"2024-12-07 08:59:07.227615: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505c00 of size 256 next 399\n",
"2024-12-07 08:59:07.227624: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505d00 of size 256 next 400\n",
"2024-12-07 08:59:07.227632: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505e00 of size 256 next 401\n",
"2024-12-07 08:59:07.227639: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8505f00 of size 256 next 402\n",
"2024-12-07 08:59:07.227648: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506000 of size 256 next 403\n",
"2024-12-07 08:59:07.227657: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506100 of size 256 next 404\n",
"2024-12-07 08:59:07.227666: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506200 of size 256 next 405\n",
"2024-12-07 08:59:07.227674: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506300 of size 256 next 406\n",
"2024-12-07 08:59:07.227682: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506400 of size 256 next 407\n",
"2024-12-07 08:59:07.227690: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506500 of size 256 next 408\n",
"2024-12-07 08:59:07.227699: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506600 of size 256 next 409\n",
"2024-12-07 08:59:07.227708: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506700 of size 256 next 410\n",
"2024-12-07 08:59:07.227717: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506800 of size 256 next 411\n",
"2024-12-07 08:59:07.227730: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506900 of size 256 next 412\n",
"2024-12-07 08:59:07.227738: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506a00 of size 256 next 413\n",
"2024-12-07 08:59:07.227747: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506b00 of size 256 next 414\n",
"2024-12-07 08:59:07.227755: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506c00 of size 256 next 415\n",
"2024-12-07 08:59:07.227764: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506d00 of size 256 next 416\n",
"2024-12-07 08:59:07.227772: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8506e00 of size 65536 next 597\n",
"2024-12-07 08:59:07.227781: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8516e00 of size 186368 next 447\n",
"2024-12-07 08:59:07.227790: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8544600 of size 262144 next 701\n",
"2024-12-07 08:59:07.227799: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8584600 of size 251904 next 718\n",
"2024-12-07 08:59:07.227808: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e85c1e00 of size 262144 next 524\n",
"2024-12-07 08:59:07.227816: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8601e00 of size 5373952 next 570\n",
"2024-12-07 08:59:07.227824: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e8b21e00 of size 5373952 next 649\n",
"2024-12-07 08:59:07.227832: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e9041e00 of size 2686976 next 725\n",
"2024-12-07 08:59:07.227841: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e92d1e00 of size 2686976 next 107\n",
"2024-12-07 08:59:07.227849: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e9561e00 of size 1343488 next 429\n",
"2024-12-07 08:59:07.227857: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4e96a9e00 of size 12410880 next 700\n",
"2024-12-07 08:59:07.227867: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ea27fe00 of size 131072 next 602\n",
"2024-12-07 08:59:07.227877: I tensorflow/tsl/framework/bfc_allocator.cc:1095] Free at 7ad4ea29fe00 of size 512 next 500\n",
"2024-12-07 08:59:07.227886: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ea2a0000 of size 720384 next 427\n",
"2024-12-07 08:59:07.227898: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ea34fe00 of size 458752 next 661\n",
"2024-12-07 08:59:07.227906: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ea3bfe00 of size 10747904 next 476\n",
"2024-12-07 08:59:07.227914: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4eadffe00 of size 10747904 next 582\n",
"2024-12-07 08:59:07.227923: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4eb83fe00 of size 10747904 next 83\n",
"2024-12-07 08:59:07.227932: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ec27fe00 of size 10747904 next 445\n",
"2024-12-07 08:59:07.227940: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4eccbfe00 of size 10747904 next 727\n",
"2024-12-07 08:59:07.227948: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ed6ffe00 of size 10747904 next 684\n",
"2024-12-07 08:59:07.227957: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ee13fe00 of size 10747904 next 63\n",
"2024-12-07 08:59:07.227966: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4eeb7fe00 of size 10747904 next 662\n",
"2024-12-07 08:59:07.227975: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4ef5bfe00 of size 10747904 next 665\n",
"2024-12-07 08:59:07.227982: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4effffe00 of size 10747904 next 50\n",
"2024-12-07 08:59:07.227990: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4f0a3fe00 of size 5373952 next 587\n",
"2024-12-07 08:59:07.227999: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4f0f5fe00 of size 83968 next 683\n",
"2024-12-07 08:59:07.228008: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4f0f74600 of size 83968 next 626\n",
"2024-12-07 08:59:07.228017: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4f0f88e00 of size 5206016 next 536\n",
"2024-12-07 08:59:07.228027: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad4f147fe00 of size 12059136 next 18446744073709551615\n",
"2024-12-07 08:59:07.228035: I tensorflow/tsl/framework/bfc_allocator.cc:1075] Next region of size 4294967296\n",
"2024-12-07 08:59:07.228045: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad61e000000 of size 2303392000 next 1\n",
"2024-12-07 08:59:07.228054: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6a74af900 of size 1280 next 2\n",
"2024-12-07 08:59:07.228062: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6a74afe00 of size 354368000 next 534\n",
"2024-12-07 08:59:07.228071: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6bc6a3800 of size 385728000 next 630\n",
"2024-12-07 08:59:07.228079: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6d367f600 of size 354368000 next 498\n",
"2024-12-07 08:59:07.228089: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6e8873000 of size 385728000 next 426\n",
"2024-12-07 08:59:07.228096: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad6ff84ee00 of size 354368000 next 632\n",
"2024-12-07 08:59:07.228105: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a42800 of size 1280 next 553\n",
"2024-12-07 08:59:07.228114: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a42d00 of size 32768 next 549\n",
"2024-12-07 08:59:07.228122: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a4ad00 of size 97024 next 94\n",
"2024-12-07 08:59:07.228130: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a62800 of size 65536 next 729\n",
"2024-12-07 08:59:07.228138: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a72800 of size 65536 next 556\n",
"2024-12-07 08:59:07.228147: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a82800 of size 65536 next 519\n",
"2024-12-07 08:59:07.228156: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714a92800 of size 65536 next 631\n",
"2024-12-07 08:59:07.228164: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714aa2800 of size 65536 next 477\n",
"2024-12-07 08:59:07.228173: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ab2800 of size 131072 next 473\n",
"2024-12-07 08:59:07.228182: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ad2800 of size 65536 next 495\n",
"2024-12-07 08:59:07.228190: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ae2800 of size 65536 next 490\n",
"2024-12-07 08:59:07.228197: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714af2800 of size 65536 next 670\n",
"2024-12-07 08:59:07.228206: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b02800 of size 131072 next 509\n",
"2024-12-07 08:59:07.228215: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b22800 of size 65536 next 54\n",
"2024-12-07 08:59:07.228223: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b32800 of size 131072 next 440\n",
"2024-12-07 08:59:07.228232: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b52800 of size 131072 next 618\n",
"2024-12-07 08:59:07.228240: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b72800 of size 65536 next 547\n",
"2024-12-07 08:59:07.228249: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b82800 of size 99584 next 738\n",
"2024-12-07 08:59:07.228258: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714b9ad00 of size 65536 next 105\n",
"2024-12-07 08:59:07.228266: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714baad00 of size 131072 next 561\n",
"2024-12-07 08:59:07.228274: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714bcad00 of size 65536 next 511\n",
"2024-12-07 08:59:07.228283: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714bdad00 of size 65536 next 516\n",
"2024-12-07 08:59:07.228292: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714bead00 of size 65536 next 485\n",
"2024-12-07 08:59:07.228300: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714bfad00 of size 131072 next 551\n",
"2024-12-07 08:59:07.228309: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c1ad00 of size 65536 next 104\n",
"2024-12-07 08:59:07.228318: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c2ad00 of size 131072 next 720\n",
"2024-12-07 08:59:07.228327: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c4ad00 of size 65536 next 739\n",
"2024-12-07 08:59:07.228335: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c5ad00 of size 65536 next 708\n",
"2024-12-07 08:59:07.228344: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c6ad00 of size 65536 next 87\n",
"2024-12-07 08:59:07.228352: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c7ad00 of size 131072 next 694\n",
"2024-12-07 08:59:07.228371: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714c9ad00 of size 246784 next 425\n",
"2024-12-07 08:59:07.228381: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714cd7100 of size 65536 next 765\n",
"2024-12-07 08:59:07.228389: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ce7100 of size 131072 next 655\n",
"2024-12-07 08:59:07.228398: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d07100 of size 1792 next 422\n",
"2024-12-07 08:59:07.228405: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d07800 of size 1024 next 530\n",
"2024-12-07 08:59:07.228414: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d07c00 of size 65536 next 454\n",
"2024-12-07 08:59:07.228423: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d17c00 of size 165888 next 62\n",
"2024-12-07 08:59:07.228431: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d40400 of size 131072 next 448\n",
"2024-12-07 08:59:07.228440: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d60400 of size 131072 next 120\n",
"2024-12-07 08:59:07.228448: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d80400 of size 1024 next 671\n",
"2024-12-07 08:59:07.228456: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d80800 of size 256 next 687\n",
"2024-12-07 08:59:07.228465: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d80900 of size 256 next 449\n",
"2024-12-07 08:59:07.228473: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d80a00 of size 2048 next 513\n",
"2024-12-07 08:59:07.228482: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714d81200 of size 231424 next 434\n",
"2024-12-07 08:59:07.228491: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714db9a00 of size 83968 next 733\n",
"2024-12-07 08:59:07.228500: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714dce200 of size 2048 next 591\n",
"2024-12-07 08:59:07.228509: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714dcea00 of size 272640 next 59\n",
"2024-12-07 08:59:07.228517: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714e11300 of size 65536 next 585\n",
"2024-12-07 08:59:07.228525: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714e21300 of size 131072 next 636\n",
"2024-12-07 08:59:07.228534: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714e41300 of size 131072 next 638\n",
"2024-12-07 08:59:07.228542: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714e61300 of size 458752 next 512\n",
"2024-12-07 08:59:07.228551: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ed1300 of size 10240 next 85\n",
"2024-12-07 08:59:07.228559: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ed3b00 of size 83968 next 61\n",
"2024-12-07 08:59:07.228568: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714ee8300 of size 131072 next 483\n",
"2024-12-07 08:59:07.228576: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714f08300 of size 131072 next 572\n",
"2024-12-07 08:59:07.228589: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714f28300 of size 32768 next 622\n",
"2024-12-07 08:59:07.228598: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714f30300 of size 124928 next 101\n",
"2024-12-07 08:59:07.228607: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714f4eb00 of size 231424 next 520\n",
"2024-12-07 08:59:07.228615: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714f87300 of size 251904 next 668\n",
"2024-12-07 08:59:07.228624: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad714fc4b00 of size 524288 next 128\n",
"2024-12-07 08:59:07.228633: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad715044b00 of size 604672 next 71\n",
"2024-12-07 08:59:07.228642: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad7150d8500 of size 131072 next 573\n",
"2024-12-07 08:59:07.228651: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad7150f8500 of size 141056 next 444\n",
"2024-12-07 08:59:07.228660: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71511ac00 of size 27541504 next 608\n",
"2024-12-07 08:59:07.228668: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad716b5ec00 of size 21495808 next 640\n",
"2024-12-07 08:59:07.228677: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad717fdec00 of size 21495808 next 84\n",
"2024-12-07 08:59:07.228686: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71945ec00 of size 10747904 next 133\n",
"2024-12-07 08:59:07.228694: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad719e9ec00 of size 10747904 next 744\n",
"2024-12-07 08:59:07.228703: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71a8dec00 of size 10747904 next 77\n",
"2024-12-07 08:59:07.228711: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71b31ec00 of size 10747904 next 510\n",
"2024-12-07 08:59:07.228719: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71bd5ec00 of size 10747904 next 150\n",
"2024-12-07 08:59:07.228728: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71c79ec00 of size 10747904 next 673\n",
"2024-12-07 08:59:07.228736: I tensorflow/tsl/framework/bfc_allocator.cc:1095] InUse at 7ad71d1dec00 of size 14816256 next 18446744073709551615\n",
"2024-12-07 08:59:07.228744: I tensorflow/tsl/framework/bfc_allocator.cc:1100] Summary of in-use Chunks by size: \n",
"2024-12-07 08:59:07.228755: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 196 Chunks of size 256 totalling 49.0KiB\n",
"2024-12-07 08:59:07.228764: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 148 Chunks of size 512 totalling 74.0KiB\n",
"2024-12-07 08:59:07.228773: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 18 Chunks of size 768 totalling 13.5KiB\n",
"2024-12-07 08:59:07.228781: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 37 Chunks of size 1024 totalling 37.0KiB\n",
"2024-12-07 08:59:07.228790: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 10 Chunks of size 1280 totalling 12.5KiB\n",
"2024-12-07 08:59:07.228798: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 1536 totalling 3.0KiB\n",
"2024-12-07 08:59:07.228807: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 10 Chunks of size 1792 totalling 17.5KiB\n",
"2024-12-07 08:59:07.228815: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 3 Chunks of size 2048 totalling 6.0KiB\n",
"2024-12-07 08:59:07.228824: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 10240 totalling 10.0KiB\n",
"2024-12-07 08:59:07.228833: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 20992 totalling 20.5KiB\n",
"2024-12-07 08:59:07.228842: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 13 Chunks of size 32768 totalling 416.0KiB\n",
"2024-12-07 08:59:07.228855: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 43520 totalling 42.5KiB\n",
"2024-12-07 08:59:07.228863: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 59648 totalling 58.2KiB\n",
"2024-12-07 08:59:07.228872: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 64256 totalling 62.8KiB\n",
"2024-12-07 08:59:07.228880: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 77 Chunks of size 65536 totalling 4.81MiB\n",
"2024-12-07 08:59:07.228889: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 12 Chunks of size 83968 totalling 984.0KiB\n",
"2024-12-07 08:59:07.228897: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 97024 totalling 94.8KiB\n",
"2024-12-07 08:59:07.228906: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 99584 totalling 97.2KiB\n",
"2024-12-07 08:59:07.228914: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 101376 totalling 99.0KiB\n",
"2024-12-07 08:59:07.228923: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 4 Chunks of size 115712 totalling 452.0KiB\n",
"2024-12-07 08:59:07.228931: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 124928 totalling 122.0KiB\n",
"2024-12-07 08:59:07.228940: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 130560 totalling 127.5KiB\n",
"2024-12-07 08:59:07.228948: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 53 Chunks of size 131072 totalling 6.62MiB\n",
"2024-12-07 08:59:07.228957: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 141056 totalling 137.8KiB\n",
"2024-12-07 08:59:07.228966: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 164608 totalling 160.8KiB\n",
"2024-12-07 08:59:07.228974: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 165888 totalling 162.0KiB\n",
"2024-12-07 08:59:07.228982: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 181248 totalling 177.0KiB\n",
"2024-12-07 08:59:07.228991: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 186368 totalling 182.0KiB\n",
"2024-12-07 08:59:07.228999: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 198656 totalling 194.0KiB\n",
"2024-12-07 08:59:07.229008: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 231424 totalling 452.0KiB\n",
"2024-12-07 08:59:07.229017: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 246784 totalling 482.0KiB\n",
"2024-12-07 08:59:07.229025: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 251904 totalling 492.0KiB\n",
"2024-12-07 08:59:07.229033: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 261120 totalling 255.0KiB\n",
"2024-12-07 08:59:07.229042: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 262144 totalling 512.0KiB\n",
"2024-12-07 08:59:07.229050: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 272640 totalling 266.2KiB\n",
"2024-12-07 08:59:07.229059: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 4 Chunks of size 458752 totalling 1.75MiB\n",
"2024-12-07 08:59:07.229067: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 524288 totalling 512.0KiB\n",
"2024-12-07 08:59:07.229075: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 604672 totalling 590.5KiB\n",
"2024-12-07 08:59:07.229084: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 720384 totalling 703.5KiB\n",
"2024-12-07 08:59:07.229092: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 1343488 totalling 1.28MiB\n",
"2024-12-07 08:59:07.229101: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 5 Chunks of size 2686976 totalling 12.81MiB\n",
"2024-12-07 08:59:07.229109: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 5206016 totalling 4.96MiB\n",
"2024-12-07 08:59:07.229117: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 4 Chunks of size 5373952 totalling 20.50MiB\n",
"2024-12-07 08:59:07.229126: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 8060928 totalling 7.69MiB\n",
"2024-12-07 08:59:07.229134: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 39 Chunks of size 10747904 totalling 399.75MiB\n",
"2024-12-07 08:59:07.229143: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 12059136 totalling 11.50MiB\n",
"2024-12-07 08:59:07.229151: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 12410880 totalling 11.84MiB\n",
"2024-12-07 08:59:07.229160: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 14816256 totalling 14.13MiB\n",
"2024-12-07 08:59:07.229169: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 2 Chunks of size 16793600 totalling 32.03MiB\n",
"2024-12-07 08:59:07.229177: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 6 Chunks of size 21495808 totalling 123.00MiB\n",
"2024-12-07 08:59:07.229190: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 3 Chunks of size 27541504 totalling 78.80MiB\n",
"2024-12-07 08:59:07.229199: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 31360000 totalling 29.91MiB\n",
"2024-12-07 08:59:07.229207: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 36157952 totalling 34.48MiB\n",
"2024-12-07 08:59:07.229216: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 101920000 totalling 97.20MiB\n",
"2024-12-07 08:59:07.229224: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 4 Chunks of size 354368000 totalling 1.32GiB\n",
"2024-12-07 08:59:07.229232: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 4 Chunks of size 385728000 totalling 1.44GiB\n",
"2024-12-07 08:59:07.229241: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 708736000 totalling 675.90MiB\n",
"2024-12-07 08:59:07.229250: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 771456000 totalling 735.72MiB\n",
"2024-12-07 08:59:07.229258: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 2303392000 totalling 2.14GiB\n",
"2024-12-07 08:59:07.229266: I tensorflow/tsl/framework/bfc_allocator.cc:1103] 1 Chunks of size 2507232000 totalling 2.33GiB\n",
"2024-12-07 08:59:07.229275: I tensorflow/tsl/framework/bfc_allocator.cc:1107] Sum Total of in-use chunks: 9.50GiB\n",
"2024-12-07 08:59:07.229284: I tensorflow/tsl/framework/bfc_allocator.cc:1109] Total bytes in pool: 10198122496 memory_limit_: 10198122496 available bytes: 0 curr_region_allocation_bytes_: 17179869184\n",
"2024-12-07 08:59:07.229298: I tensorflow/tsl/framework/bfc_allocator.cc:1114] Stats: \n",
"Limit: 10198122496\n",
"InUse: 10195919872\n",
"MaxInUse: 10195920896\n",
"NumAllocs: 43119401\n",
"MaxAllocSize: 2507232000\n",
"Reserved: 0\n",
"PeakReserved: 0\n",
"LargestFreeBlock: 0\n",
"\n",
"2024-12-07 08:59:07.229328: W tensorflow/tsl/framework/bfc_allocator.cc:497] ****************************************************************************************************\n",
"2024-12-07 08:59:07.229377: W tensorflow/core/framework/op_kernel.cc:1839] OP_REQUIRES failed at matmul_op_impl.h:908 : RESOURCE_EXHAUSTED: OOM when allocating tensor with shape[20992,128] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Memoria GPU esaurita, riprovo con batch size più piccolo...\n",
"Epoch 1/150\n",
" 5/Unknown - 1s 38ms/step - loss: 0.0238 - mae: 0.1432WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0342s vs `on_train_batch_end` time: 0.0350s). Check your callbacks.\n",
" 9953/Unknown - 294s 29ms/step - loss: 0.0258 - mae: 0.1480"
]
}
],
"source": [
"model, history = train_transformer(train_data, train_targets, val_data, val_targets, 150, 512)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3e2fb5a5341dac92",
"metadata": {},
"outputs": [],
"source": [
"percentage_errors, absolute_errors = calculate_real_error(model, val_data, val_targets, scaler_y)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "4af58aa9bbc156f5",
"metadata": {},
"outputs": [],
"source": [
"def evaluate_model_performance(model, data, targets, set_name=\"\"):\n",
" \"\"\"\n",
" Valuta le performance del modello su un set di dati specifico.\n",
" \"\"\"\n",
" predictions = model.predict(data, verbose=0)\n",
"\n",
" target_names = ['olive_prod', 'min_oil_prod', 'max_oil_prod', 'avg_oil_prod', 'total_water_need']\n",
" metrics = {}\n",
"\n",
" for i, name in enumerate(target_names):\n",
" mae = np.mean(np.abs(targets[:, i] - predictions[:, i]))\n",
" mse = np.mean(np.square(targets[:, i] - predictions[:, i]))\n",
" rmse = np.sqrt(mse)\n",
" mape = np.mean(np.abs((targets[:, i] - predictions[:, i]) / (targets[:, i] + 1e-7))) * 100\n",
"\n",
" metrics[f\"{name}_mae\"] = mae\n",
" metrics[f\"{name}_rmse\"] = rmse\n",
" metrics[f\"{name}_mape\"] = mape\n",
"\n",
" if set_name:\n",
" print(f\"\\nPerformance sul set {set_name}:\")\n",
" for metric, value in metrics.items():\n",
" print(f\"{metric}: {value:.4f}\")\n",
"\n",
" return metrics\n",
"\n",
"\n",
"def retrain_model(base_model, train_data, train_targets,\n",
" val_data, val_targets,\n",
" test_data, test_targets,\n",
" epochs=50, batch_size=128):\n",
" \"\"\"\n",
" Implementa il retraining del modello con i dati combinati.\n",
" \"\"\"\n",
" print(\"Valutazione performance iniziali del modello...\")\n",
" initial_metrics = {\n",
" 'train': evaluate_model_performance(base_model, train_data, train_targets, \"training\"),\n",
" 'val': evaluate_model_performance(base_model, val_data, val_targets, \"validazione\"),\n",
" 'test': evaluate_model_performance(base_model, test_data, test_targets, \"test\")\n",
" }\n",
"\n",
" # Combina i dati per il retraining\n",
" combined_data = {\n",
" 'temporal': np.concatenate([train_data['temporal'], val_data['temporal'], test_data['temporal']]),\n",
" 'static': np.concatenate([train_data['static'], val_data['static'], test_data['static']])\n",
" }\n",
" combined_targets = np.concatenate([train_targets, val_targets, test_targets])\n",
"\n",
" # Crea una nuova suddivisione per la validazione\n",
" indices = np.arange(len(combined_targets))\n",
" np.random.shuffle(indices)\n",
"\n",
" split_idx = int(len(indices) * 0.9)\n",
" train_idx, val_idx = indices[:split_idx], indices[split_idx:]\n",
"\n",
" # Prepara i dati per il retraining\n",
" retrain_data = {k: v[train_idx] for k, v in combined_data.items()}\n",
" retrain_targets = combined_targets[train_idx]\n",
" retrain_val_data = {k: v[val_idx] for k, v in combined_data.items()}\n",
" retrain_val_targets = combined_targets[val_idx]\n",
"\n",
" # Configura callbacks\n",
" callbacks = [\n",
" tf.keras.callbacks.EarlyStopping(\n",
" monitor='val_loss',\n",
" patience=10,\n",
" restore_best_weights=True,\n",
" min_delta=0.0001\n",
" ),\n",
" tf.keras.callbacks.ReduceLROnPlateau(\n",
" monitor='val_loss',\n",
" factor=0.2,\n",
" patience=5,\n",
" min_lr=1e-6,\n",
" verbose=1\n",
" ),\n",
" tf.keras.callbacks.ModelCheckpoint(\n",
" filepath=f'{execute_name}_retrained_best_oil_model.h5',\n",
" monitor='val_loss',\n",
" save_best_only=True,\n",
" mode='min',\n",
" save_weights_only=True\n",
" )\n",
" ]\n",
"\n",
" # Imposta learning rate per il fine-tuning\n",
" optimizer = tf.keras.optimizers.AdamW(\n",
" learning_rate=tf.keras.optimizers.schedules.ExponentialDecay(\n",
" initial_learning_rate=1e-4,\n",
" decay_steps=1000,\n",
" decay_rate=0.9\n",
" ),\n",
" weight_decay=0.01\n",
" )\n",
"\n",
" # Ricompila il modello con il nuovo optimizer\n",
" base_model.compile(\n",
" optimizer=optimizer,\n",
" loss=tf.keras.losses.Huber(),\n",
" metrics=['mae']\n",
" )\n",
"\n",
" print(\"\\nAvvio retraining...\")\n",
" history = base_model.fit(\n",
" retrain_data,\n",
" retrain_targets,\n",
" validation_data=(retrain_val_data, retrain_val_targets),\n",
" epochs=epochs,\n",
" batch_size=batch_size,\n",
" callbacks=callbacks,\n",
" verbose=1\n",
" )\n",
"\n",
" print(\"\\nValutazione performance finali...\")\n",
" final_metrics = {\n",
" 'train': evaluate_model_performance(base_model, train_data, train_targets, \"training\"),\n",
" 'val': evaluate_model_performance(base_model, val_data, val_targets, \"validazione\"),\n",
" 'test': evaluate_model_performance(base_model, test_data, test_targets, \"test\")\n",
" }\n",
"\n",
" # Salva il modello finale\n",
" save_path = f'{execute_name}_retrained_model.keras'\n",
" os.makedirs(f'{execute_name}_retrained/weights', exist_ok=True)\n",
" \n",
" base_model.save_weights(f'{execute_name}_retrained/weights')\n",
" base_model.save(save_path, save_format='keras')\n",
" print(f\"\\nModello riaddestrato salvato in: {save_path}\")\n",
"\n",
" # Report miglioramenti\n",
" print(\"\\nMiglioramenti delle performance:\")\n",
" for dataset in ['train', 'val', 'test']:\n",
" print(f\"\\nSet {dataset}:\")\n",
" for metric in initial_metrics[dataset].keys():\n",
" initial = initial_metrics[dataset][metric]\n",
" final = final_metrics[dataset][metric]\n",
" improvement = ((initial - final) / initial) * 100\n",
" print(f\"{metric}: {improvement:.2f}% di miglioramento\")\n",
"\n",
" return base_model, history, final_metrics\n",
"\n",
"\n",
"def start_retraining(model_path, train_data, train_targets,\n",
" val_data, val_targets,\n",
" test_data, test_targets,\n",
" epochs=50, batch_size=128):\n",
" \"\"\"\n",
" Avvia il processo di retraining in modo sicuro.\n",
" \"\"\"\n",
" try:\n",
" print(\"Caricamento del modello...\")\n",
" base_model = tf.keras.models.load_model(model_path, compile=False)\n",
" print(\"Modello caricato con successo!\")\n",
"\n",
" return retrain_model(\n",
" base_model=base_model,\n",
" train_data=train_data,\n",
" train_targets=train_targets,\n",
" val_data=val_data,\n",
" val_targets=val_targets,\n",
" test_data=test_data,\n",
" test_targets=test_targets,\n",
" epochs=epochs,\n",
" batch_size=batch_size\n",
" )\n",
" except Exception as e:\n",
" print(f\"Errore durante il retraining: {str(e)}\")\n",
" raise"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "588c7e49371f4a0c",
"metadata": {},
"outputs": [],
"source": [
"model_path = f'{execute_name}_final_model.keras'\n",
"\n",
"retrained_model, retrain_history, final_metrics = start_retraining(\n",
" model_path=model_path,\n",
" train_data=train_data,\n",
" train_targets=train_targets,\n",
" val_data=val_data,\n",
" val_targets=val_targets,\n",
" test_data=test_data,\n",
" test_targets=test_targets,\n",
" epochs=50,\n",
" batch_size=256\n",
")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a95606bc-c4bc-418a-acdb-2e24c30dfa81",
"metadata": {},
"outputs": [],
"source": [
"percentage_errors, absolute_errors = calculate_real_error(retrained_model, val_data, val_targets, scaler_y)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e6f357cb-56a4-4f19-a4e8-77b73a28329d",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import tensorflow as tf\n",
"import matplotlib.pyplot as plt\n",
"from typing import List, Dict, Tuple, Union\n",
"\n",
"def analyze_feature_importance(model: tf.keras.Model, \n",
" test_data: dict, \n",
" feature_names: List[str]) -> Dict[str, float]:\n",
" \"\"\"\n",
" Analizza l'importanza delle feature usando perturbazione.\n",
" \n",
" Args:\n",
" model: Modello TensorFlow addestrato\n",
" test_data: Dizionario con chiavi 'temporal' e 'static' contenenti i dati\n",
" feature_names: Lista dei nomi delle feature\n",
" \n",
" Returns:\n",
" dict: Dizionario con l'importanza relativa di ogni feature\n",
" \"\"\"\n",
" # Estrai i dati temporali e statici\n",
" temporal_data = test_data['temporal']\n",
" static_data = test_data['static']\n",
" \n",
" # Ottieni la predizione base\n",
" base_prediction = model.predict(test_data)\n",
" feature_importance = {}\n",
" \n",
" # Per ogni feature temporale\n",
" for i, feature in enumerate(feature_names):\n",
" if feature in ['temp_mean', 'precip_sum', 'solar_energy_sum']:\n",
" # Crea copia perturbata dei dati\n",
" perturbed_data = {\n",
" 'temporal': temporal_data.copy(),\n",
" 'static': static_data.copy()\n",
" }\n",
" \n",
" # Trova l'indice della feature temporale\n",
" temp_idx = ['temp_mean', 'precip_sum', 'solar_energy_sum'].index(feature)\n",
" \n",
" # Crea rumore per la feature temporale\n",
" feature_values = temporal_data[..., temp_idx]\n",
" noise = np.random.normal(0, np.std(feature_values) * 0.1, \n",
" size=feature_values.shape)\n",
" \n",
" # Applica il rumore alla feature temporale\n",
" perturbed_temporal = perturbed_data['temporal'].copy()\n",
" perturbed_temporal[..., temp_idx] = feature_values + noise\n",
" perturbed_data['temporal'] = perturbed_temporal\n",
" \n",
" else: # Feature statiche\n",
" # Crea copia perturbata dei dati\n",
" perturbed_data = {\n",
" 'temporal': temporal_data.copy(),\n",
" 'static': static_data.copy()\n",
" }\n",
" \n",
" # Trova l'indice della feature statica\n",
" static_idx = ['ha'].index(feature)\n",
" \n",
" # Crea rumore per la feature statica\n",
" feature_values = static_data[..., static_idx]\n",
" noise = np.random.normal(0, np.std(feature_values) * 0.1, \n",
" size=feature_values.shape)\n",
" \n",
" # Applica il rumore alla feature statica\n",
" perturbed_static = perturbed_data['static'].copy()\n",
" perturbed_static[..., static_idx] = feature_values + noise\n",
" perturbed_data['static'] = perturbed_static\n",
" \n",
" # Calcola nuova predizione\n",
" perturbed_prediction = model.predict(perturbed_data)\n",
" \n",
" # Calcola impatto della perturbazione\n",
" impact = np.mean(np.abs(perturbed_prediction - base_prediction))\n",
" feature_importance[feature] = float(impact)\n",
" \n",
" # Normalizza le importanze\n",
" total_importance = sum(feature_importance.values())\n",
" feature_importance = {k: v/total_importance \n",
" for k, v in feature_importance.items()}\n",
" \n",
" return feature_importance\n",
"\n",
"class ProbabilityFunctions:\n",
" @staticmethod\n",
" def calculate_statistics(data: Union[np.ndarray, tf.Tensor]) -> Dict[str, float]:\n",
" \"\"\"\n",
" Calcola statistiche di base usando TensorFlow.\n",
" \n",
" Args:\n",
" data: Tensor o array dei dati\n",
" \n",
" Returns:\n",
" dict: Dizionario con le statistiche\n",
" \"\"\"\n",
" if not isinstance(data, tf.Tensor):\n",
" data = tf.convert_to_tensor(data, dtype=tf.float32)\n",
" \n",
" mean = tf.reduce_mean(data)\n",
" # Calcola varianza manualmente\n",
" squared_deviations = tf.square(data - mean)\n",
" variance = tf.reduce_mean(squared_deviations)\n",
" std = tf.sqrt(variance)\n",
" \n",
" # Ordina il tensor per il calcolo della mediana\n",
" sorted_data = tf.sort(data)\n",
" size = tf.size(data)\n",
" mid_index = size // 2\n",
" median = sorted_data[mid_index]\n",
" \n",
" return {\n",
" 'mean': mean.numpy(),\n",
" 'variance': variance.numpy(),\n",
" 'std': std.numpy(),\n",
" 'min': tf.reduce_min(data).numpy(),\n",
" 'max': tf.reduce_max(data).numpy(),\n",
" 'median': median.numpy()\n",
" }\n",
"\n",
" @staticmethod\n",
" def calculate_pmf(data: np.ndarray, bins: int = 50) -> Tuple[np.ndarray, np.ndarray, np.ndarray]:\n",
" \"\"\"\n",
" Calcola la Probability Mass Function (PMF) dei dati.\n",
" \n",
" Args:\n",
" data: Array di dati\n",
" bins: Numero di bin per l'istogramma\n",
" \n",
" Returns:\n",
" tuple: (bin_centers, pmf, bin_edges)\n",
" \"\"\"\n",
" # Calcola l'istogramma\n",
" hist, bin_edges = np.histogram(data, bins=bins, density=True)\n",
" \n",
" # Calcola i centri dei bin\n",
" bin_centers = (bin_edges[:-1] + bin_edges[1:]) / 2\n",
" \n",
" # Normalizza per ottenere la PMF\n",
" pmf = hist / np.sum(hist)\n",
" \n",
" return bin_centers, pmf, bin_edges\n",
"\n",
" @staticmethod\n",
" def calculate_cmf(pmf: np.ndarray) -> np.ndarray:\n",
" \"\"\"\n",
" Calcola la Cumulative Mass Function (CMF) dalla PMF.\n",
" \n",
" Args:\n",
" pmf: Probability Mass Function\n",
" \n",
" Returns:\n",
" array: Cumulative Mass Function\n",
" \"\"\"\n",
" return np.cumsum(pmf)\n",
"\n",
" def plot_distributions(self, data: np.ndarray, \n",
" bins: int = 50, \n",
" title: str = \"Distribuzione\") -> Tuple[np.ndarray, np.ndarray, np.ndarray]:\n",
" \"\"\"\n",
" Calcola e visualizza PMF e CMF delle distribuzioni.\n",
" \n",
" Args:\n",
" data: Array di dati da analizzare\n",
" bins: Numero di bin per l'istogramma\n",
" title: Titolo del grafico\n",
" \n",
" Returns:\n",
" tuple: (bin_centers, pmf, cmf)\n",
" \"\"\"\n",
" # Calcola PMF e CMF\n",
" bin_centers, pmf, bin_edges = self.calculate_pmf(data, bins)\n",
" cmf = self.calculate_cmf(pmf)\n",
" \n",
" # Crea il plot\n",
" fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(10, 8))\n",
" \n",
" # Plot PMF\n",
" width = np.diff(bin_edges)\n",
" ax1.bar(bin_centers, pmf, width=width, alpha=0.5, label='PMF')\n",
" ax1.set_title('Probability Mass Function')\n",
" ax1.set_ylabel('Probability')\n",
" ax1.grid(True, alpha=0.3)\n",
" ax1.legend()\n",
" \n",
" # Plot CMF\n",
" ax2.plot(bin_centers, cmf, 'r-', label='CMF')\n",
" ax2.set_title('Cumulative Mass Function')\n",
" ax2.set_xlabel('Value')\n",
" ax2.set_ylabel('Cumulative Probability')\n",
" ax2.grid(True, alpha=0.3)\n",
" ax2.legend()\n",
" \n",
" # Imposta il titolo generale\n",
" fig.suptitle(title, y=1.02)\n",
" plt.tight_layout()\n",
" plt.show()\n",
" \n",
" return bin_centers, pmf, cmf\n",
"\n",
"def analyze_model_predictions(model: tf.keras.Model, \n",
" test_data: np.ndarray,\n",
" test_targets: np.ndarray,\n",
" scaler_y) -> None:\n",
" \"\"\"\n",
" Analizza le distribuzioni di probabilità delle predizioni del modello.\n",
" \n",
" Args:\n",
" model: Modello TensorFlow addestrato\n",
" test_data: Dati di test\n",
" test_targets: Target di test\n",
" scaler_y: Scaler usato per denormalizzare i target\n",
" \"\"\"\n",
" # Ottieni le predizioni\n",
" predictions = model.predict(test_data)\n",
" \n",
" # Denormalizza predizioni e target\n",
" predictions_real = scaler_y.inverse_transform(predictions)\n",
" targets_real = scaler_y.inverse_transform(test_targets)\n",
" \n",
" # Inizializza la classe per l'analisi delle probabilità\n",
" prob = ProbabilityFunctions()\n",
" \n",
" # Analizza ogni target\n",
" target_names = ['olive_prod', 'min_oil_prod', 'max_oil_prod', \n",
" 'avg_oil_prod', 'total_water_need']\n",
" \n",
" for i, target in enumerate(target_names):\n",
" print(f\"\\nAnalisi per {target}\")\n",
" print(\"-\" * 50)\n",
" \n",
" # Calcola errori\n",
" errors = predictions_real[:, i] - targets_real[:, i]\n",
" \n",
" # Calcola statistiche degli errori\n",
" error_stats = prob.calculate_statistics(errors)\n",
" print(\"\\nStatistiche degli Errori:\")\n",
" for key, value in error_stats.items():\n",
" print(f\"{key}: {value:.3f}\")\n",
" \n",
" # Visualizza le distribuzioni degli errori\n",
" bin_centers, pmf, cmf = prob.plot_distributions(\n",
" errors, \n",
" bins=50,\n",
" title=f\"Distribuzione degli Errori - {target}\"\n",
" )\n",
" \n",
" # Calcola intervalli di confidenza\n",
" confidence_levels = [0.68, 0.95, 0.99] # 1σ, 2σ, 3σ\n",
" for level in confidence_levels:\n",
" lower_idx = np.searchsorted(cmf, (1 - level) / 2)\n",
" upper_idx = np.searchsorted(cmf, (1 + level) / 2)\n",
" \n",
" print(f\"\\nIntervallo di Confidenza {level*100}%:\")\n",
" print(f\"Range: [{bin_centers[lower_idx]:.2f}, {bin_centers[upper_idx]:.2f}]\")\n",
"\n",
"def run_comprehensive_analysis(retrained_model, test_data, test_targets, scaler_y):\n",
" \"\"\"\n",
" Esegue un'analisi completa del modello includendo errori,\n",
" importanza delle feature e distribuzioni.\n",
" \"\"\"\n",
" print(\"=== ANALISI COMPLETA DEL MODELLO ===\")\n",
" \n",
" # 1. Analisi degli errori\n",
" print(\"\\n1. ANALISI DEGLI ERRORI\")\n",
" print(\"-\" * 50)\n",
" analyze_model_predictions(retrained_model, test_data, test_targets, scaler_y)\n",
" \n",
" # 2. Analisi dell'importanza delle feature\n",
" print(\"\\n2. IMPORTANZA DELLE FEATURE\")\n",
" print(\"-\" * 50)\n",
" \n",
" # Definisci i nomi delle feature\n",
" temporal_features = ['temp_mean', 'precip_sum', 'solar_energy_sum']\n",
" static_features = ['ha']\n",
" \n",
" all_features = temporal_features + static_features\n",
" importance = analyze_feature_importance(retrained_model, test_data, all_features)\n",
" \n",
" print(\"\\nImportanza relativa delle feature:\")\n",
" for feature, imp in sorted(importance.items(), key=lambda x: x[1], reverse=True):\n",
" print(f\"{feature}: {imp:.4f}\")\n",
" \n",
" # 3. Analisi distribuzionale\n",
" print(\"\\n3. ANALISI DISTRIBUZIONALE\")\n",
" print(\"-\" * 50)\n",
" \n",
" prob = ProbabilityFunctions()\n",
" predictions = retrained_model.predict(test_data)\n",
" predictions_real = scaler_y.inverse_transform(predictions)\n",
" targets_real = scaler_y.inverse_transform(test_targets)\n",
" \n",
" target_names = ['olive_prod', 'min_oil_prod', 'max_oil_prod', \n",
" 'avg_oil_prod', 'total_water_need']\n",
" \n",
" for i, target in enumerate(target_names):\n",
" print(f\"\\nAnalisi distribuzionale per {target}\")\n",
" \n",
" # Statistiche\n",
" stats_pred = prob.calculate_statistics(predictions_real[:, i])\n",
" stats_true = prob.calculate_statistics(targets_real[:, i])\n",
" \n",
" print(\"\\nStatistiche Predizioni:\")\n",
" for key, value in stats_pred.items():\n",
" print(f\"{key}: {value:.3f}\")\n",
" \n",
" print(\"\\nStatistiche Target Reali:\")\n",
" for key, value in stats_true.items():\n",
" print(f\"{key}: {value:.3f}\")\n",
" \n",
" # Visualizza distribuzioni\n",
" prob.plot_distributions(predictions_real[:, i], bins=50,\n",
" title=f\"Distribuzione Predizioni - {target}\")\n",
" prob.plot_distributions(targets_real[:, i], bins=50,\n",
" title=f\"Distribuzione Target Reali - {target}\")\n",
"\n",
"def analyze_model_predictions(model, test_data, test_targets, scaler_y):\n",
" \"\"\"\n",
" Analizza le distribuzioni di probabilità delle predizioni del modello.\n",
" \n",
" Args:\n",
" model: Modello TensorFlow addestrato\n",
" test_data: Dati di test\n",
" test_targets: Target di test\n",
" scaler_y: Scaler usato per denormalizzare i target\n",
" \"\"\"\n",
" # Ottieni le predizioni\n",
" predictions = model.predict(test_data)\n",
" \n",
" # Denormalizza predizioni e target\n",
" predictions_real = scaler_y.inverse_transform(predictions)\n",
" targets_real = scaler_y.inverse_transform(test_targets)\n",
" \n",
" # Inizializza la classe per l'analisi delle probabilità\n",
" prob = ProbabilityFunctions()\n",
" \n",
" # Analizza ogni target\n",
" target_names = ['olive_prod', 'min_oil_prod', 'max_oil_prod', \n",
" 'avg_oil_prod', 'total_water_need']\n",
" \n",
" for i, target in enumerate(target_names):\n",
" print(f\"\\nAnalisi per {target}\")\n",
" print(\"-\" * 50)\n",
" \n",
" # Calcola errori\n",
" errors = predictions_real[:, i] - targets_real[:, i]\n",
" \n",
" # Calcola statistiche degli errori\n",
" error_stats = prob.calculate_statistics(errors)\n",
" print(\"\\nStatistiche degli Errori:\")\n",
" for key, value in error_stats.items():\n",
" print(f\"{key}: {value:.3f}\")\n",
" \n",
" # Visualizza le distribuzioni degli errori\n",
" bin_centers, pmf, cmf = prob.plot_distributions(\n",
" errors, \n",
" bins=50,\n",
" title=f\"Distribuzione degli Errori - {target}\"\n",
" )\n",
" \n",
" # Calcola intervalli di confidenza\n",
" confidence_levels = [0.80,0.85, 0.90, 0.95, 0.99] # 1σ, 2σ, 3σ\n",
" for level in confidence_levels:\n",
" lower_idx = np.searchsorted(cmf, (1 - level) / 2)\n",
" upper_idx = np.searchsorted(cmf, (1 + level) / 2)\n",
" \n",
" print(f\"\\nIntervallo di Confidenza {level*100}%:\")\n",
" print(f\"Range: [{bin_centers[lower_idx]:.2f}, {bin_centers[upper_idx]:.2f}]\")\n",
"\n",
"class ProbabilityFunctions:\n",
" @staticmethod\n",
" def calculate_statistics(data):\n",
" \"\"\"\n",
" Calcola statistiche di base usando TensorFlow.\n",
" \n",
" Args:\n",
" data: Tensor dei dati\n",
" \n",
" Returns:\n",
" dict: Dizionario con le statistiche\n",
" \"\"\"\n",
" if not isinstance(data, tf.Tensor):\n",
" data = tf.convert_to_tensor(data, dtype=tf.float32)\n",
" \n",
" mean = tf.reduce_mean(data)\n",
" # Calculate variance manually\n",
" squared_deviations = tf.square(data - mean)\n",
" variance = tf.reduce_mean(squared_deviations)\n",
" std = tf.sqrt(variance)\n",
" \n",
" # Sort the tensor for median calculation\n",
" sorted_data = tf.sort(data)\n",
" size = tf.size(data)\n",
" mid_index = size // 2\n",
" median = sorted_data[mid_index]\n",
" \n",
" return {\n",
" 'mean': mean.numpy(),\n",
" 'variance': variance.numpy(),\n",
" 'std': std.numpy(),\n",
" 'min': tf.reduce_min(data).numpy(),\n",
" 'max': tf.reduce_max(data).numpy(),\n",
" 'median': median.numpy()\n",
" }\n",
"\n",
" @staticmethod\n",
" def calculate_pmf(data, bins=50):\n",
" \"\"\"\n",
" Calcola la Probability Mass Function (PMF) dei dati.\n",
" \n",
" Args:\n",
" data: Array di dati\n",
" bins: Numero di bin per l'istogramma\n",
" \n",
" Returns:\n",
" tuple: (bin_centers, pmf, bin_edges)\n",
" \"\"\"\n",
" # Calcola l'istogramma\n",
" hist, bin_edges = np.histogram(data, bins=bins, density=True)\n",
" \n",
" # Calcola i centri dei bin\n",
" bin_centers = (bin_edges[:-1] + bin_edges[1:]) / 2\n",
" \n",
" # Normalizza per ottenere la PMF\n",
" pmf = hist / np.sum(hist)\n",
" \n",
" return bin_centers, pmf, bin_edges\n",
"\n",
" @staticmethod\n",
" def calculate_cmf(pmf):\n",
" \"\"\"\n",
" Calcola la Cumulative Mass Function (CMF) dalla PMF.\n",
" \n",
" Args:\n",
" pmf: Probability Mass Function\n",
" \n",
" Returns:\n",
" array: Cumulative Mass Function\n",
" \"\"\"\n",
" return np.cumsum(pmf)\n",
"\n",
" def plot_distributions(self, data, bins=50, title=\"Distribuzione\"):\n",
" \"\"\"\n",
" Calcola e visualizza PMF e CMF delle distribuzioni.\n",
" \n",
" Args:\n",
" data: Array di dati da analizzare\n",
" bins: Numero di bin per l'istogramma\n",
" title: Titolo del grafico\n",
" \n",
" Returns:\n",
" tuple: (bin_centers, pmf, cmf)\n",
" \"\"\"\n",
" # Calcola PMF e CMF\n",
" bin_centers, pmf, bin_edges = self.calculate_pmf(data, bins)\n",
" cmf = self.calculate_cmf(pmf)\n",
" \n",
" # Crea il plot\n",
" fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(10, 8))\n",
" \n",
" # Plot PMF\n",
" width = np.diff(bin_edges)\n",
" ax1.bar(bin_centers, pmf, width=width, alpha=0.5, label='PMF')\n",
" ax1.set_title('Probability Mass Function')\n",
" ax1.set_ylabel('Probability')\n",
" ax1.grid(True, alpha=0.3)\n",
" ax1.legend()\n",
" \n",
" # Plot CMF\n",
" ax2.plot(bin_centers, cmf, 'r-', label='CMF')\n",
" ax2.set_title('Cumulative Mass Function')\n",
" ax2.set_xlabel('Value')\n",
" ax2.set_ylabel('Cumulative Probability')\n",
" ax2.grid(True, alpha=0.3)\n",
" ax2.legend()\n",
" \n",
" # Set overall title\n",
" fig.suptitle(title, y=1.02)\n",
" plt.tight_layout()\n",
" plt.show()\n",
" \n",
" return bin_centers, pmf, cmf"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b98f2a45-ba6f-4519-acaa-0138b4ee7812",
"metadata": {},
"outputs": [],
"source": [
"run_comprehensive_analysis(retrained_model, test_data, test_targets, scaler_y)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.0rc1"
}
},
"nbformat": 4,
"nbformat_minor": 5
}